在实际应用或执行之前验证 yaml 中定义的 OpenShift 对象

2024-07-04

我在 template.yaml 文件中有一个 OpenShift 模板,其中包括以下对象 - 部署配置、pod、服务和路由。我使用以下命令来执行 yaml:

oc process -f template.yml | oc apply -f -

我想在实际应用/执行 yaml 之前执行以下验证:

  1. YAML 语法验证 - 如果 YAML 语法存在任何问题。
  2. OpenShift 架构验证 - 检查对象定义是否遵守 OpenShift 对象架构。

看来命令“oc process”正在执行以下检查:

  1. 基本 YAML 语法验证
  2. 模板对象模式验证

如何对 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(使用前将#替换为@)

在实际应用或执行之前验证 yaml 中定义的 OpenShift 对象 的相关文章

随机推荐