diff options
| author | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-11-09 14:50:41 -0700 |
|---|---|---|
| committer | Carlos Konstanski <ckonstanski@pippiandcarlos.com> | 2017-11-09 14:50:41 -0700 |
| commit | 93394479e21f1f9a4cc49dd23b4230e37824b914 (patch) | |
| tree | d899ca0b14678e8b5d8cdf71fac646eb29172215 /salt | |
| parent | 848a294c3d2c75e538fa1d86ac7ed4c21bb140d3 (diff) | |
Openbook CI: autoclean docker registry
Closes-Bug: OB-1089
Diffstat (limited to 'salt')
| -rw-r--r-- | salt/openbook/ansible/files/docker-compose.yaml | 1 | ||||
| -rw-r--r-- | salt/openbook/ci/files/build.sh | 28 |
2 files changed, 23 insertions, 6 deletions
diff --git a/salt/openbook/ansible/files/docker-compose.yaml b/salt/openbook/ansible/files/docker-compose.yaml index befd77f..48f5b6e 100644 --- a/salt/openbook/ansible/files/docker-compose.yaml +++ b/salt/openbook/ansible/files/docker-compose.yaml @@ -12,5 +12,6 @@ registry: - 127.0.0.1:5000:5000 environment: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data + REGISTRY_STORAGE_DELETE_ENABLED: "true" volumes: - ./data:/data diff --git a/salt/openbook/ci/files/build.sh b/salt/openbook/ci/files/build.sh index abcba51..b440e6e 100644 --- a/salt/openbook/ci/files/build.sh +++ b/salt/openbook/ci/files/build.sh @@ -2,6 +2,14 @@ artifact="${1}" +delete_old_image() { + image_name="${1}" + curl_cmd="curl -u '{{ pillar["registry"]["username"] }}:{{ pillar["registry"]["password"] }}' -H 'Accept: application/vnd.docker.distribution.manifest.v2+json'" + digest=$(${curl_cmd} https://{{ pillar["registry"]["url"] }}/v2/${image_name}/manifests/latest | jq '.config.digest' | awk -F\" '{print $2}') + ${curl_cmd} -X DELETE https://{{ pillar["registry"]["url"] }}/v2/${image_name}/manifests/${digest} + done +} + for i in $(docker images | grep -v CREATED | awk '{print $3}'); do docker rmi --force $i done @@ -12,27 +20,35 @@ pushd {{ pillar["ci"]["build_dir"] }} 2>/dev/null echo "Login to docker registry" docker login --username {{ pillar["registry"]["username"] }} --password {{ pillar["registry"]["password"] }} {{ pillar["registry"]["url"] }} -# for i in $(curl -u '{{ pillar["registry"]["username"] }}:{{ pillar["registry"]["password"] }}' https://{{ pillar["registry"]["url"] }}/v2/_catalog | jq '.repositories' | fgrep 'openbook' | awk -F\" '{print $2}'); do -# # get reference digest -# digest=$(curl -u '{{ pillar["registry"]["username"] }}:{{ pillar["registry"]["password"] }}' -H "Accept: application/vnd.docker.distribution.manifest.v2+json" https://{{ pillar["registry"]["url"] }}/v2/${i}/manifests/latest | jq '.config | .digest' | awk -F\" '{print $2}') -# curl -u '{{ pillar["registry"]["username"] }}:{{ pillar["registry"]["password"] }}' -X DELETE https://{{ pillar["registry"]["url"] }}/v2/${i}/manifests/${digest} -# done - if [ "${artifact}" == "database" ]; then + delete_old_image("{{ pillar["database"]["image_name"] }}") {{ pillar["database"]["build_dir"] }}/build.sh elif [ "${artifact}" == "admin-api-server" ]; then + delete_old_image("{{ pillar["admin_api_server"]["image_name"] }}") {{ pillar["admin_api_server"]["build_dir"] }}/build.sh elif [ "${artifact}" == "customer-api-server" ]; then + delete_old_image("{{ pillar["customer_api_server"]["image_name"] }}") {{ pillar["customer_api_server"]["build_dir"] }}/build.sh elif [ "${artifact}" == "admin-web-ui" ]; then + delete_old_image("{{ pillar["admin_web_ui"]["image_name"] }}") {{ pillar["admin_web_ui"]["build_dir"] }}/build.sh elif [ "${artifact}" == "customer-web-ui" ]; then + delete_old_image("{{ pillar["customer_web_ui"]["image_name"] }}") {{ pillar["customer_web_ui"]["build_dir"] }}/build.sh elif [ "${artifact}" == "job-scheduler-server" ]; then + delete_old_image("{{ pillar["job_scheduler_server"]["image_name"] }}") {{ pillar["job_scheduler_server"]["build_dir"] }}/build.sh elif [ "${artifact}" == "workflow-server" ]; then + delete_old_image("{{ pillar["workflow_server"]["image_name"] }}") {{ pillar["workflow_server"]["build_dir"] }}/build.sh else + delete_old_image("{{ pillar["database"]["image_name"] }}") + delete_old_image("{{ pillar["admin_api_server"]["image_name"] }}") + delete_old_image("{{ pillar["customer_api_server"]["image_name"] }}") + delete_old_image("{{ pillar["admin_web_ui"]["image_name"] }}") + delete_old_image("{{ pillar["customer_web_ui"]["image_name"] }}") + delete_old_image("{{ pillar["job_scheduler_server"]["image_name"] }}") + delete_old_image("{{ pillar["workflow_server"]["image_name"] }}") {{ pillar["database"]["build_dir"] }}/build.sh {{ pillar["admin_api_server"]["build_dir"] }}/build.sh {{ pillar["customer_api_server"]["build_dir"] }}/build.sh |
