dc3a577652
With the switch to tripleo_free in stable/train, we can no longer reliably use handlers. That being said, handlers don't make sense when you are forcing them to run with a flush handlers anyway. So this change takes the code we used in the handler and makes them explicit tasks in the required locations where we used to do a flush handlers. This change should also improve the scope of some tasks to only occur when necessary. Change-Id: I1e31af24a4c1b9356a5971c6c1cb717d39d1e9b2 Closes-Bug: #1909750 |
||
---|---|---|
ci-scripts | ||
defaults | ||
handlers | ||
meta | ||
molecule | ||
tasks | ||
templates | ||
tests | ||
vars | ||
zuul.d | ||
.gitignore | ||
.gitreview | ||
.yamllint | ||
LICENSE | ||
README.rst | ||
ansible-requirements.txt | ||
ansible.cfg | ||
bindep.txt | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini |
README.rst
ansible-role-container-registry
A role to deploy a container registry and provide methods to login to it. For now, the role only support Docker Registry v2. The login currently doesn't work with hub.docker.com.
Role Variables
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_docker_disable_iptables | false | Adds --iptables=false to /etc/sysconfig/docker-network config |
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