RETIRED, Ansible role to deploy a container registry
Go to file
Kevin Carter 1217799b1b
Add molecule testing
This change adds molecule testing using a simple base job and pre|run playbooks.
The test will be executed via a native zuul job and will ensure we're exercising
all of the available code path's as provide by this role.

Two molecule scenarios will be executed whenever any change is made to this role

* default - runs through the typical main code path
* login - tests a secure docker registry ensuring our login capabilities are
          never broken.

Documentation in the readme has been added to show how local testing can be run.

A bindep.txt file has been added to ensure zuul knows how to install our
required base packages.

Closes-Bug: #1835657
Related-Bug: #1833584
Change-Id: I48f74b69c5d29dce4a576fa96e79563a4b484469
Signed-off-by: Kevin Carter <kecarter@redhat.com>
2019-07-10 18:42:16 -05:00
ci-scripts Fix linting issues 2019-01-14 09:51:40 -07:00
defaults Add docker login support 2019-06-20 15:33:31 -06:00
handlers Fix become for tasks and handlers 2019-01-29 13:08:16 -07:00
meta meta/main: add role description 2018-04-16 12:58:31 -07:00
molecule Add molecule testing 2019-07-10 18:42:16 -05:00
tasks Add molecule testing 2019-07-10 18:42:16 -05:00
templates Restore old task for docker-daemon.json 2018-04-16 17:27:04 -07:00
tests Update role name in test.yml 2018-04-16 17:49:34 -07:00
vars docker: add support for additional sockets 2018-05-07 21:49:45 +00:00
zuul.d Add molecule testing 2019-07-10 18:42:16 -05:00
.gitignore First commit in Gerrit 2018-04-26 09:09:06 -07:00
.gitreview OpenDev Migration Patch 2019-04-19 19:30:05 +00:00
.yamllint Add molecule testing 2019-07-10 18:42:16 -05:00
LICENSE first commit 2018-04-13 13:38:32 -07:00
README.rst Add molecule testing 2019-07-10 18:42:16 -05:00
ansible-requirements.txt First commit in Gerrit 2018-04-26 09:09:06 -07:00
ansible.cfg Fix ansible role name in cfg files 2018-04-26 12:33:07 -07:00
bindep.txt Add molecule testing 2019-07-10 18:42:16 -05:00
requirements.txt First commit in Gerrit 2018-04-26 09:09:06 -07:00
setup.cfg Update to opendev 2019-04-23 10:30:49 +08:00
setup.py First commit in Gerrit 2018-04-26 09:09:06 -07:00
test-requirements.txt First commit in Gerrit 2018-04-26 09:09:06 -07:00
tox.ini Update to opendev 2019-04-23 10:30:49 +08:00

README.rst

ansible-role-container-registry

A role to deploy a container registry. For now, the role only support Docker Registry v2.

Role Variables

Variables used for container registry
Name Default Value Description
container_registry_debug false Enable debug option in Docker
container_registry_deploy_docker true Whether or not to deploy Docker
container_registry_deploy_docker_distribution true Whether or not to deploy Docker Distribution
container_registry_deployment_user centos User which needs to manage containers
container_registry_docker_options --log-driver=journald --signature-verification=false --iptables=false --live-restore Options given to Docker configuration
container_registry_insecure_registries [] Array of insecure registries
container_registry_network_options [undefined] Docker networking options
container_registry_host localhost Docker registry host
container_registry_port 8787 Docker registry port
container_registry_mirror [undefined] Docker registry mirror
container_registry_storage_options -s overlay2 Docker storage options
container_registry_selinux false Whether or not SElinux is enabled for containers
container_registry_additional_sockets [undefined] Additional sockets for containers
container_registry_skip_reconfiguration false Do not perform container registry reconfiguration if it's already configured
container_registry_logins [] A dictionary containing registries and a username and a password associated with the registry. Example: {'docker.io': {'myusername': 'mypassword'}, 'registry.example.com:8787': {'otheruser': 'otherpass'}}

Requirements

  • ansible >= 2.4
  • python >= 2.6

Dependencies

None

Example Playbooks

Modify Image

The following playbook will deploy a Docker registry:

- hosts: localhost
  become: true
  roles:
    - container-registry

License

Apache 2.0

Running local testing

Local testing of this role can be done in a number of ways.

Mimic Zuul

Sometimes its nessisary to setup a test that will mimic what the OpenStack gate will do (Zuul). To run tests that minic the gate, python-virtualenv git, gcc, and ansible are required.

$ sudo yum install python-virtualenv git gcc

Once the packages are installed, create a python virtual environment.

$ python -m virtualenv --system-site-packages ~/test-python
$ ~/test-python/bin/pip install pip setuptools --upgrade

Now install the latest Ansible

$ ~/test-python/bin/pip install ansible

With Ansible installed, activate the virtual environment and run the run-local.yml test playbook.

$ source ~/test-python/bin/activate
(test-python) $ ansible-playbook -i 'localhost,' \
                                 -e "tripleo_src=$(realpath --relative-to="${HOME}" "$(pwd)")" \
                                 -e "ansible_user=${USER}" \
                                 -e "ansible_user_dir=${HOME}" \
                                 -e "ansible_connection=local" \
                                 zuul.d/playbooks/run-local.yml

Running Molecule directly

It is also possible to test this role using molecule directly. When running tests directly it is assumed all of the dependencies are setup and ready to run on the local workstation. When

$ molecule test --all