sigs.k8s.io/gateway-api@v1.0.0/hack/update-conformance-image-refs.sh (about)

     1  #!/bin/bash
     2  
     3  # Copyright 2023 The Kubernetes Authors.
     4  #
     5  # Licensed under the Apache License, Version 2.0 (the "License");
     6  # you may not use this file except in compliance with the License.
     7  # You may obtain a copy of the License at
     8  #
     9  #     http://www.apache.org/licenses/LICENSE-2.0
    10  #
    11  # Unless required by applicable law or agreed to in writing, software
    12  # distributed under the License is distributed on an "AS IS" BASIS,
    13  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  # See the License for the specific language governing permissions and
    15  # limitations under the License.
    16  
    17  
    18  set -o errexit
    19  set -o nounset
    20  set -o pipefail
    21  
    22  # Wrap sed to deal with GNU and BSD sed flags.
    23  run::sed() {
    24      local -r vers="$(sed --version < /dev/null 2>&1 | grep -q GNU && echo gnu || echo bsd)"
    25      case "$vers" in
    26          gnu) sed -i "$@" ;;
    27          *) sed -i '' "$@" ;;
    28  esac
    29  }
    30  
    31  IMAGES=(
    32    "${REGISTRY}/echo-advanced"
    33    "${REGISTRY}/echo-basic"
    34  )
    35  
    36  # Export so we can use run::sed in subshells
    37  # https://stackoverflow.com/questions/4321456/find-exec-a-shell-function-in-linux
    38  export -f run::sed
    39  
    40  for IMAGE in ${IMAGES[@]}; do
    41    echo "Fetching latest tags for $IMAGE"
    42    TAG_FILE=$(mktemp)
    43    go run github.com/google/go-containerregistry/cmd/gcrane@latest ls "$IMAGE" --json \
    44      | jq -r '.tags[]' \
    45      | grep -v latest \
    46      | sort -rV \
    47      | head -n1 > "$TAG_FILE"
    48  
    49    export REPO=${IMAGE#"${REGISTRY}"}
    50    export IMAGE_TAG=$(cat "$TAG_FILE")
    51    export IMAGE
    52    echo "Found tag $IMAGE_TAG - updating manifests..."
    53    find . -type f -name "*.yaml" -exec bash -c 'run::sed -e "s,image:.*${REPO}.*$,image: ${IMAGE}:${IMAGE_TAG},g" "$0"' {} \;
    54  done
    55  
    56