From 1f91624c3cf1d3cbba1c4d11f5bbbc225f571ded Mon Sep 17 00:00:00 2001 From: Hari Sekhon Date: Fri, 10 Dec 2021 11:50:53 +0000 Subject: [PATCH] added aws_ecr_alternate_tags.sh --- aws_ecr_alternate_tags.sh | 71 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 aws_ecr_alternate_tags.sh diff --git a/aws_ecr_alternate_tags.sh b/aws_ecr_alternate_tags.sh new file mode 100755 index 00000000..9a6f2340 --- /dev/null +++ b/aws_ecr_alternate_tags.sh @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# vim:ts=4:sts=4:sw=4:et +# args: haritest:1.0 stable +# +# Author: Hari Sekhon +# Date: 2021-12-10 11:30:51 +0000 (Fri, 10 Dec 2021) +# +# https://github.com/HariSekhon/bash-tools +# +# License: see accompanying Hari Sekhon LICENSE file +# +# If you're using my code you're welcome to connect with me on LinkedIn and optionally send me feedback to help steer this or other code I publish +# +# https://www.linkedin.com/in/HariSekhon +# + +# https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-retag.html + +set -euo pipefail +[ -n "${DEBUG:-}" ] && set -x +srcdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# shellcheck disable=SC1090 +. "$srcdir/lib/aws.sh" + +# shellcheck disable=SC2034,SC2154 +usage_description=" +Lists all alternative tags for the given specific GCR docker image:tag + +If a container has multiple tags (eg. latest, v1, hashref), you can supply ':latest' to see which version has been tagged to 'latest' + +Each tag for the given : is output on a separate line for easy further piping and filtering, including the originally supplied tag + +If no tag is given, assumes 'latest' + +If the image isn't found in GCR, will return nothing and no error code since this is the default GCloud SDK behaviour + +$usage_aws_cli_required + + +If you want to remove an extra tag from an existing image: + + aws ecr batch-delete-image --repository-name --image-ids \"imageTag=\" + + +Similar scripts: + + aws_ecr_*.sh - scripts for AWS Elastic Container Registry + + gcr_*.sh - scripts for Google Container Registry +" + +# used by usage() in lib/utils.sh +# shellcheck disable=SC2034 +usage_args=":" + +help_usage "$@" + +num_args 1 "$@" + +image_tag="$1" + +image="${image_tag%%:*}" +tag="${image_tag##*:}" +if [ -z "$tag" ] || [ "$tag" = "$image" ]; then + tag="latest" +fi + +aws ecr describe-images --repository-name "$image" --image-ids "imageTag=$tag" | +jq -r '.imageDetails[].imageTags[]' | +sort