zuul-registry/playbooks/functional-test/restricted.yaml
Clark Boylan 8dfb9dc968 Add more robust testing of the registry
We use a non trivial image now (the registry's image in fact) and then
push with 4 processes at a time every time we push to the test registry.
The idea here is we're generating concurrency in the system that should
trip over the bugs that we are finding if they still exist.

Change-Id: I4f03132fa0fad6f40806030b14d429d29036a42f
2022-02-28 14:19:03 -08:00

74 lines
2.3 KiB
YAML

# Test push and pull from the registry in restricted mode (read access
# restricted)
- name: Start the registry
shell:
cmd: docker-compose up -d
chdir: "{{ ansible_user_dir }}/src/opendev.org/zuul/zuul-registry/playbooks/functional-test/restricted"
- name: Print list of images
command: docker image ls --all --digests --no-trunc
register: image_list
failed_when: "'test/image' in image_list.stdout"
- name: Copy the test image into local docker image storage
command: >
skopeo copy
docker-archive:{{ workspace }}/test.img
docker-daemon:localhost:9000/test/image:latest
- name: Log in to registry
command: docker login localhost:9000 -u writeuser -p writepass
- name: Push the test image to the registry
# Use a lot of concurrency to check registry with concurrent pushes
shell: printf "1\n2\n3\n4\n" | xargs -P 4 -I DNE docker push localhost:9000/test/image
args:
executable: /bin/bash
- name: Remove the test image from the local cache
command: docker rmi localhost:9000/test/image
- name: Log out of registry
command: docker logout localhost:9000
- name: Try to pull the image from the registry unauthenticated
command: docker pull localhost:9000/test/image
register: result
failed_when: result.rc != 1
- name: Log in to registry
command: docker login localhost:9000 -u readuser -p readpass
- name: Print list of images
command: docker image ls --all --digests --no-trunc
register: image_list
failed_when: "'test/image' in image_list.stdout"
- name: Pull the image from the registry
command: docker pull localhost:9000/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 localhost:9000/test/dne
register: result
failed_when: result.rc != 1
- name: Remove the test image from the local cache
command: docker rmi localhost:9000/test/image
- name: Stop the registry
shell:
cmd: docker-compose down
chdir: "{{ ansible_user_dir }}/src/opendev.org/zuul/zuul-registry/playbooks/functional-test/restricted"
- name: Clean up docker volumes
command: docker volume prune -f
- name: Log out of registry
command: docker logout localhost:9000