在运行脚本之前仅使用 kubectl 命令行检查自定义资源定义是否存在的最佳方法是什么?

我们有一个 yaml 文件,其中包含 NATS 集群 ServiceAccountRoleClusterRoleBindingDeployment 的定义。 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/

10-11 18:25