kubernetes - 离线检查 Kubernetes 的 YAML 文件的工具

标签 kubernetes continuous-integration

是否有一些工具可以告诉我 K8s YAML 配置(将提供给 kubectl apply)对于目标 Kubernetes 版本是否有效,而无需连接到 Kubernetes 集群?

这里的一个具体用例是在实际部署到集群之前检测不兼容性,只是因为一些已经弃用的标签最终在较新的 Kubernetes 版本中被删除,例如正如 Helm 和切换到 Kubernetes 1.16 所发生的那样(请参阅 Helm init fails on Kubernetes 1.16.0 ):

删除:

apiVersion: extensions/v1beta1

新:

apiVersion: apps/v1

我想检查 CI 系统内的此类不兼容性,以便我可以在尝试部署它之前拒绝它。

最佳答案

只需运行以下命令即可验证语法

kubectl create -f <yaml-file> --dry-run

事实上,空运行选项是为了验证 YAML 语法和对象模式。您可以将输出抓取到变量中,如果没有错误,则重新运行该命令,而无需进行干运行

关于kubernetes - 离线检查 Kubernetes 的 YAML 文件的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59032419/

相关文章:

ssh - 带有 Gitlab 设置的 Gitlab-CI,自托管

.net - 霍恩盖特怎么了?

azure - 将文件复制到任务无法找到 **/*.ipa 文件

templates - 如何使用 K8S 在 pod 模板中测试删除GracePeriodSeconds

amazon-web-services - 我在Kubernetes升级中有任何停机时间吗?

kubernetes - 在 storageclass.storage.k8s.io "fast"中未找到创建持久卷结果

Azure kubernetes 服务负载均衡器外部 IP 无法访问

kubernetes - K8 Pod生命周期:是否需要清理?

testing - TinyOS 和 Contiki 中的 6loWPAN 堆栈兼容吗?

continuous-integration - 如何使用 Git 分支支持覆盖 TeamCity 7.1 中的 <default> 分支名称?