From 2f35f6129910efd6d0efa0ec411d145b8472ccd1 Mon Sep 17 00:00:00 2001 From: GuyTempleton Date: Tue, 14 Jun 2022 17:01:55 +0100 Subject: [PATCH] CA - Push Image script - Support newer docker versions --- cluster-autoscaler/push_image.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/cluster-autoscaler/push_image.sh b/cluster-autoscaler/push_image.sh index 3cdba27b1993..685a022ac46f 100755 --- a/cluster-autoscaler/push_image.sh +++ b/cluster-autoscaler/push_image.sh @@ -14,15 +14,28 @@ # See the License for the specific language governing permissions and # limitations under the License. +# See: https://cloud.google.com/container-registry/docs/support/deprecation-notices#gcloud-docker +MAX_DOCKER_MAJOR_VERSION_FOR_GCLOUD=18 +MAX_DOCKER_MINOR_VERSION_FOR_GCLOUD=03 + IMAGE_TO_PUSH=$1 if [ -z $IMAGE_TO_PUSH ]; then echo No image passed exit 1 fi +docker_client_version=$(docker version -f "{{.Client.Version}}") +docker_client_major_version=$(echo "$docker_client_version" | cut -d'.' -f 1) +docker_client_minor_version=$(echo "$docker_client_version" | cut -d'.' -f 2) + docker_push_cmd=("docker") if [[ "${IMAGE_TO_PUSH}" == "gcr.io/"* ]] || [[ "${IMAGE_TO_PUSH}" == "staging-k8s.gcr.io/"* ]] ; then - docker_push_cmd=("gcloud" "docker" "--") + if [[ "$docker_client_major_version" -lt "$MAX_DOCKER_MAJOR_VERSION_FOR_GCLOUD" ]] || [[ "$docker_client_major_version" -eq "$MAX_DOCKER_MAJOR_VERSION_FOR_GCLOUD" && "$docker_client_minor_version" -le "$MAX_DOCKER_MINOR_VERSION_FOR_GCLOUD" ]]; then + echo "Docker version <= $MAX_DOCKER_MAJOR_VERSION_FOR_GCLOUD.$MAX_DOCKER_MINOR_VERSION_FOR_GCLOUD, using gcloud command" + docker_push_cmd=("gcloud" "docker" "--") + else + echo "Docker version > $MAX_DOCKER_MAJOR_VERSION_FOR_GCLOUD.$MAX_DOCKER_MINOR_VERSION_FOR_GCLOUD, ensure you have run gcloud auth configure-docker" + fi fi echo "About to push image $IMAGE_TO_PUSH"