From 2dc89d8347b1cf39aed033e59e98413f4624a681 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Wed, 22 Jul 2020 08:39:54 -0700 Subject: [PATCH] Reinstate docker tag cleanup This uses a new method of calculating the cutoff time which does not require executing code on the executor. Change-Id: I92e71727e24281a31cb7caf0b78dd17a5aaae129 Co-Authored-By: Clark Boylan --- .../tasks/promote-cleanup.yaml | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/roles/promote-docker-image/tasks/promote-cleanup.yaml b/roles/promote-docker-image/tasks/promote-cleanup.yaml index 385cd8eed..d1fe1b307 100644 --- a/roles/promote-docker-image/tasks/promote-cleanup.yaml +++ b/roles/promote-docker-image/tasks/promote-cleanup.yaml @@ -3,18 +3,18 @@ url: "https://hub.docker.com/v2/repositories/{{ zj_image.repository }}/tags?page_size=1000" status_code: 200 register: tags -# - name: Set cutoff timestamp to 24 hours ago -# command: "python3 -c \"import datetime; print((datetime.datetime.utcnow()-datetime.timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%fZ'))\"" -# register: cutoff -# - name: Delete all change tags older than the cutoff -# no_log: true -# loop: "{{ tags.json.results }}" -# loop_control: -# loop_var: zj_docker_tag -# when: zj_docker_tag.last_updated < cutoff.stdout and zj_docker_tag.name.startswith('change_') -# uri: -# url: "https://hub.docker.com/v2/repositories/{{ zj_image.repository }}/tags/{{ zj_docker_tag.name }}/" -# method: DELETE -# status_code: [200, 204] -# headers: -# Authorization: "JWT {{ jwt_token.json.token }}" +- name: Delete all change tags older than the cutoff + no_log: true + loop: "{{ tags.json.results }}" + loop_control: + loop_var: zj_docker_tag + when: + - zj_docker_tag.name.startswith('change_') + # Was updated > 24 hours ago: + - "{{ ((ansible_date_time.iso8601 | regex_replace('^(....-..-..)T(..:..:..).*Z', '\\1 \\2') | to_datetime) - (zj_docker_tag.last_updated | regex_replace('^(....-..-..)T(..:..:..).*Z', '\\1 \\2') | to_datetime)).seconds > 86400 }}" + uri: + url: "https://hub.docker.com/v2/repositories/{{ zj_image.repository }}/tags/{{ zj_docker_tag.name }}/" + method: DELETE + status_code: [200, 204] + headers: + Authorization: "JWT {{ jwt_token.json.token }}"