sigs.k8s.io/cluster-api-provider-azure@v1.17.0/hack/ensure-azcli.sh (about) 1 #!/usr/bin/env bash 2 3 # Copyright 2020 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 set -o errexit 18 set -o nounset 19 set -o pipefail 20 21 if [[ -z "$(command -v az)" ]]; then 22 echo "installing Azure CLI" 23 apt-get update && apt-get install -y ca-certificates curl apt-transport-https lsb-release gnupg 24 curl --retry 3 -sL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null 25 AZ_REPO=$(lsb_release -cs) 26 echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ ${AZ_REPO} main" | tee /etc/apt/sources.list.d/azure-cli.list 27 apt-get update && apt-get install -y azure-cli 28 29 if [[ -n "${AZURE_FEDERATED_TOKEN_FILE:-}" ]]; then 30 echo "Logging in with federated token" 31 # AZURE_CLIENT_ID has been overloaded with Azure Workload ID in the preset-azure-cred-wi. 32 # This is done to avoid exporting Azure Workload ID as AZURE_CLIENT_ID in the test scenarios. 33 az login --service-principal -u "${AZURE_CLIENT_ID}" -t "${AZURE_TENANT_ID}" --federated-token "$(cat "${AZURE_FEDERATED_TOKEN_FILE}")" > /dev/null 34 else 35 echo "AZURE_FEDERATED_TOKEN_FILE environment variable must be set to path location of token file" 36 exit 1 37 fi 38 fi