0601df0049
These matches look like they should be "or" (if any of these images is already there, fail), not "and". This caused some confusion when the image was being leaked (I722ba599fbc690d6cb967070c05215b98a73dcaf) as this wasn't triggering. Change-Id: Ic6dad7bbf9013e994eb80a54bc5191a96bd4be94
94 lines
2.5 KiB
YAML
94 lines
2.5 KiB
YAML
# Test push and pull from the buildset registry
|
|
|
|
- name: Create new docker daemon config
|
|
set_fact:
|
|
new_daemon_config:
|
|
registry-mirrors:
|
|
- "https://localhost:9000"
|
|
|
|
- name: Write docker daemon configuration
|
|
copy:
|
|
content: "{{ new_daemon_config | to_nice_json }}"
|
|
dest: /etc/docker/daemon.json
|
|
become: true
|
|
|
|
- name: Restart docker daemon
|
|
service:
|
|
name: docker
|
|
state: restarted
|
|
become: true
|
|
register: docker_restart
|
|
failed_when: docker_restart is failed and not 'Could not find the requested service' in docker_restart.msg
|
|
|
|
- name: Start the registry
|
|
shell:
|
|
cmd: docker-compose up -d
|
|
chdir: "{{ ansible_user_dir }}/src/opendev.org/zuul/zuul-registry/playbooks/functional-test"
|
|
|
|
- name: Wait for registry to come up
|
|
uri:
|
|
url: https://localhost:9000/v2/
|
|
validate_certs: false
|
|
status_code: 401
|
|
register: result
|
|
until: result.status is defined and result.status == 401
|
|
delay: 1
|
|
retries: 120
|
|
|
|
- name: Create new docker user config
|
|
set_fact:
|
|
new_user_config: {}
|
|
|
|
- name: Write docker user configuration
|
|
copy:
|
|
content: "{{ new_user_config | to_nice_json }}"
|
|
dest: ~/.docker/config.json
|
|
|
|
- name: Copy the test image into the buildset registry
|
|
command: >
|
|
skopeo copy --dest-creds testuser:testpass
|
|
docker-archive:{{ workspace }}/test.img
|
|
docker://localhost:9000/test/image:latest
|
|
|
|
- name: Print list of images
|
|
command: docker image ls --all --digests --no-trunc
|
|
register: image_list
|
|
failed_when: >
|
|
('test/image' in image_list.stdout) or
|
|
('alpine' in image_list.stdout)
|
|
|
|
- name: Pull the image from the buildset registry
|
|
command: docker pull test/image
|
|
|
|
- name: Print list of images
|
|
command: docker image ls --all --digests --no-trunc
|
|
register: image_list
|
|
failed_when: "'test/image' not in image_list.stdout"
|
|
|
|
- name: Try to pull an image that does not exist
|
|
command: docker pull test/dne
|
|
register: result
|
|
failed_when: result.rc != 1
|
|
|
|
- name: Pull an image from upstream
|
|
command: docker pull alpine
|
|
|
|
- name: Print list of images
|
|
command: docker image ls --all --digests --no-trunc
|
|
register: image_list
|
|
failed_when: "'alpine' not in image_list.stdout"
|
|
|
|
- name: Remove the test image from the local cache
|
|
command: docker rmi test/image
|
|
|
|
- name: Remove the test image from the local cache
|
|
command: docker rmi alpine
|
|
|
|
- name: Stop the registry
|
|
shell:
|
|
cmd: docker-compose down
|
|
chdir: "{{ ansible_user_dir }}/src/opendev.org/zuul/zuul-registry/playbooks/functional-test"
|
|
|
|
- name: Clean up docker volumes
|
|
command: docker volume prune -f
|