我尝试使用 bash 脚本来运行一些 k8s 命令。在部署过程中,我需要等待 cert-manager 或 Vault 生成密钥才能继续。我知道有一个名为
kubectl wait
的命令,但它似乎不适用于 secret
资源,所以我想出了这个 bash 脚本:
while [ -z "$matched" ]
do
echo "Waiting for ($secret_name) to be created"
matched=$(kubectl get secret $secret_name -n $namespace -o jsonpath="{$path}" --ignore-not-found=true)
sleep 10;
done
但是等待一分钟后第一次运行失败。它仅在第二次尝试时有效。你有什么建议吗?
kubectl wait
的功能记录不详:
kubectl wait --for=create --timeout=30s secret/$secret_name -n $namespace