# Test push and pull from the buildset registry - name: Create new registries.conf copy: dest: /etc/containers/registries.conf src: files/registries.conf become: true - 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: Write containers auth configuration copy: content: "{{ new_user_config | to_nice_json }}" dest: "/run/user/{{ ansible_user_uid }}/auth.json" - name: Copy the test image into the registry command: > skopeo copy --dest-creds testuser:testpass docker-archive:{{ workspace }}/test.img docker://localhost:9000/test/image:latest - name: Copy the test image into the registry command: > skopeo copy --dest-creds testuser:testpass docker-archive:{{ workspace }}/test.img docker://localhost:9000/quay.io/test/quay-image:latest - name: Print list of images command: podman image ls --all --digests --no-trunc register: image_list failed_when: > ('test/image' in image_list.stdout) or ('test/quay-image' in image_list.stdout) or ('alpine' in image_list.stdout) - name: Pull the shadowed docker image from the registry command: podman pull test/image - name: Print list of images command: podman image ls --all --digests --no-trunc register: image_list # Pulling the short-name test/image should result in a pull of # "docker.io/test/image" from the localhost:9000 mirror thanks to # unqualified-serach-registries being set to "docker.io" in # /etc/containers/registries.conf - name: Show images debug: var: image_list.stdout - name: Check for test image fail: msg: 'docker.io/test/image not found in podman image list' when: "'docker.io/test/image' not in image_list.stdout" - name: Remove the test image from the local cache command: podman rmi docker.io/test/image - name: Pull the shadowed quay image from the registry command: podman pull quay.io/test/quay-image - name: Print list of images command: podman image ls --all --digests --no-trunc register: image_list failed_when: "'quay.io/test/quay-image' not in image_list.stdout" - name: Remove the test image from the local cache command: podman rmi quay.io/test/quay-image - name: Try to pull an image that does not exist command: podman pull test/dne register: result failed_when: result.rc != 125 - name: Pull an image from docker.io command: podman pull alpine - name: Print list of images command: podman image ls --all --digests --no-trunc register: image_list failed_when: "'docker.io/library/alpine' not in image_list.stdout" - name: Remove the test image from the local cache command: podman rmi docker.io/library/alpine - name: Pull an image from quay.io command: podman pull quay.io/0xff/alpine-sshd - name: Print list of images command: podman image ls --all --digests --no-trunc register: image_list failed_when: "'quay.io/0xff/alpine-sshd' not in image_list.stdout" - name: Remove the test image from the local cache command: podman rmi quay.io/0xff/alpine-sshd - 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