summaryrefslogtreecommitdiff
path: root/salt
diff options
context:
space:
mode:
authorCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-09 14:50:41 -0700
committerCarlos Konstanski <ckonstanski@pippiandcarlos.com>2017-11-09 14:50:41 -0700
commit93394479e21f1f9a4cc49dd23b4230e37824b914 (patch)
treed899ca0b14678e8b5d8cdf71fac646eb29172215 /salt
parent848a294c3d2c75e538fa1d86ac7ed4c21bb140d3 (diff)
Openbook CI: autoclean docker registry
Closes-Bug: OB-1089
Diffstat (limited to 'salt')
-rw-r--r--salt/openbook/ansible/files/docker-compose.yaml1
-rw-r--r--salt/openbook/ci/files/build.sh28
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