在运行脚本之前仅使用 kubectl
命令行检查自定义资源定义是否存在的最佳方法是什么?
我们有一个 yaml 文件,其中包含 NATS 集群 ServiceAccount
、 Role
、 ClusterRoleBinding
和 Deployment
的定义。 Deployment
中使用的图像创建 crd
,第二个脚本使用该 crd
部署一组 pods
。目前,我们的CI管道需要运行几次第二个脚本,只有在crd
完全创建后才能成功完成。我尝试使用 kubectl wait
,但无法弄清楚适用于完成 crd
的条件。
下面是我最近的尝试,尽管完全错误,但这说明了我们想要的一般顺序。kubectl wait --for=condition=complete kubectl apply -f 1.nats-cluster-operator.yaml kubectl apply -f 2.nats-cluster.yaml
最佳答案
CRD 的条件是 established
:
kubectl -n <namespace-here> wait --for condition=established --timeout=60s crd/<crd-name-here>
您可能需要适当调整
--timeout
。关于kubernetes - kubectl 如何等待 crd 创建?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57115602/