问题描述
我正在运行一个需要资源组和当前 AKS 客户端配置名称的脚本。之前配置了 az aks get-credentials ...
当前脚本: (我在运行前输入 AKS=something 和 RG=SOMETHING)
az aks update -g $RG -n $AKSNAME ...
想要的脚本: (我跑前什么都没输入)
AKSNAME=$(what goes here?)
RG=$(what goes here?)
az aks update -g $RG -n $AKSNAME ...
如何通过 shell 脚本自动加载 RG 和 AKSNAME 值?
编辑:我目前手动将值分配给这些变量。我希望脚本自动查找值,对应于当前上下文中的集群,例如kubectl 使用的是哪个。
解决方法
如果你只是通过命令az aks get-credentials ....
获取凭证,不带参数--admin
,那么你可以像这样获取集群名称:
AKSNAME=$(kubectl config current-context)
如果你使用参数--admin
,那么你需要像这样更改命令:
AKSNAME=$(kubectl config view --minify -o jsonpath='{.contexts[0].context.cluster}')
然后你可以像这样得到组名:
RG=$(az aks list --query "[?name == '$AKSNAME'].resourceGroup" -o tsv)