可以进行"干运行"验证文件?

时间:2015-08-20 21:45:00

标签: validation kubernetes

在Kubernetes(Service,ReplicationController等)中创建对象之前,我想测试对象的JSON或YAML规范是否有效。但我不想真正创建对象。

是否有人要做一个"干运行"这相当于运行kubectl create --validate=true -f file.json,但只是让我知道它通过验证,而不是实际创建它?

理想情况下,如果我可以通过API执行此操作,并且不需要使用kubectl,那就太棒了。但如果它要求我使用kubectl,我可以使它工作。

感谢。

4 个答案:

答案 0 :(得分:6)

某些kubectl命令支持--dry-run标记(例如kubectl runkubectl exposekubectl rolling-update)。

有一个issue可以将--dry-run标志添加到更多命令中。

答案 1 :(得分:5)

这对我有用(kubernetes 1.7和1.9):

kubectl apply --validate=true --dry-run=true --filename=task.yaml

答案 2 :(得分:2)

有一个名为kubeval的工具可以根据预期的模式验证配置,并且不需要连接到集群即可运行,这使其成为CI等应用程序的不错选择。

答案 3 :(得分:0)

使用--dry-run--validate似乎只能部分解决问题。

  

客户端验证并不详尽。它主要确保   yaml文件中的字段名称和类型有效。完全验证是   始终由服务器完成,并且可以始终施加其他附加条件   客户端验证方面的限制/约束。

来源-kubectl --validate flag pass when yaml file is wrong #64830

鉴于此,除了将其完全交给服务器进行审核之外,您无法进行全套验证。