我在 template.yaml 文件中有一个 OpenShift 模板,其中包括以下对象 - 部署配置、pod、服务和路由。我使用以下命令来执行 yaml:
oc process -f template.yml | oc apply -f -
我想在实际应用/执行 yaml 之前执行以下验证:
- YAML 语法验证 - 如果 YAML 语法存在任何问题。
- OpenShift 架构验证 - 检查对象定义是否遵守 OpenShift 对象架构。
看来命令“oc process”正在执行以下检查:
- 基本 YAML 语法验证
- 模板对象模式验证
如何对 template.yaml 中定义的其他对象(例如部署配置、服务、pod 等)执行模式验证?
现在可以使用 OpenShift 客户端(以及一般的 Kubernetes)来实现这一点,例如
$ oc login
Username: john.doe
Password:
Login successful.
$ oc apply -f openshift/template-app.yaml --dry-run
template "foobar-app" created (dry run)
也可以在本地处理模板,因此您可以避免先将其发送到服务器,例如
$ oc process -f openshift/template-app.yaml --local -p APP_NAME=foo | oc apply --dry-run --validate -f -
deploymentconfig "foo" created (dry run)
service "foo" created (dry run)
另请注意--validate
我用于模式验证的选项。不幸的是,您仍然需要登录才能使用apply
命令工作(没有--local
选项apply
).
奇怪的是,这个功能并没有在文档中描述。CLI 文档 https://docs.openshift.org/latest/cli_reference/basic_cli_operations.html,但是帮助屏幕上提到了:
$ oc apply --help
Apply a configuration to a resource by filename or stdin.
JSON and YAML formats are accepted.
Usage:
oc apply -f FILENAME [options]
...
Options:
...
--dry-run=false: If true, only print the object that would be sent, without sending it.
...
--validate=false: If true, use a schema to validate the input before sending it
Use "oc <command> --help" for more information about a given command.
Use "oc options" for a list of global command-line options (applies to all commands).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)