#!/bin/bash
readonly clusterName="aksscaling"
masterResourceGroup=$(az aks list -o tsv --query "[?name == '${clusterName}'].resourceGroup")
az aks get-credentials -g ${masterResourceGroup} -n ${clusterName}
nodeResourceGroup=$(az aks show -g ${masterResourceGroup} -n ${clusterName} --query 'nodeResourceGroup' -o tsv)
subID=$(az account show -o tsv --query id)
tenantID=$(az account show -o tsv --query tenantId)
spName="sp-for-k8s-cluster-autoscaler"
az ad sp delete --id http://$spName
clientSecret=$(az ad sp create-for-rbac --name ${spName} --role="Contributor" --scopes="/subscriptions/${subID}" --query password --output tsv)
clientID=$(az ad sp show --id http://$spName --query appId --output tsv)
clientID64=$(echo $clientID|base64)
clientSecret64=$(echo $clientSecret|base64)
resourceGroup64=$(echo $masterResourceGroup|base64)
subID64=$(echo $subID|base64)
tenantID64=$(echo $tenantID|base64)
clusterName64=$(echo $clusterName|base64)
nodeResourceGroup64=$(echo $nodeResourceGroup|base64)
manifest=$(curl -o - https://raw.githubusercontent.com/kubernetes/autoscaler/master/cluster-autoscaler/cloudprovider/azure/cluster-autoscaler-containerservice.yaml)
manifest=$(echo -e "$manifest" | \
sed -e 's/{{ ca_version }}/v1.3.0/' \
-e 's/<base64\-encoded\-client\-id>/'$clientID64'/' \
-e 's/<base64\-encoded\-client\-secret>/'$clientSecret64'/' \
-e 's/<base64\-encoded\-resource\-group>/'$resourceGroup64'/' \
-e 's/<base64\-encode\-subscription\-id>/'$subID64'/' \
-e 's/<base64\-encoded\-tenant\-id>/'$tenantID64'/' \
-e 's/<base64\-encoded\-clustername>/'$clusterName64'/' \
-e 's/<base64\-encoded\-node\-resource\-group>/'$nodeResourceGroup64'/')
echo -e "$manifest" | kubectl create -f -
関連