11.4. 使用 CLI 从模板创建对象
您可以使用 CLI 来处理模板,并使用所生成的配置来创建对象。
11.4.1. 添加标签
标签 (label) 用于管理和组织所生成的对象,如 pod。模板中指定的标签应用于从模板生成的每个对象。
流程
从以下命令行在模板中添加标签:
$ oc process -f <filename> -l name=otherLabel
11.4.2. 列出参数
模板的 parameter
部分列出了可覆盖的参数列表。
流程
您可使用以下命令并指定要用的文件通过 CLI 列出参数:
$ oc process --parameters -f <filename>
或者,如果模板已上传:
$ oc process --parameters -n <project> <template_name>
例如,下面显示了在默认
openshift
项目中列出其中一个快速启动模板的参数时的输出:$ oc process --parameters -n openshift rails-postgresql-example
输出示例
NAME DESCRIPTION GENERATOR VALUE SOURCE_REPOSITORY_URL The URL of the repository with your application source code https://github.com/sclorg/rails-ex.git SOURCE_REPOSITORY_REF Set this to a branch name, tag or other ref of your repository if you are not using the default branch CONTEXT_DIR Set this to the relative path to your project if it is not in the root of your repository APPLICATION_DOMAIN The exposed hostname that will route to the Rails service rails-postgresql-example.openshiftapps.com GITHUB_WEBHOOK_SECRET A secret string used to configure the GitHub webhook expression [a-zA-Z0-9]{40} SECRET_KEY_BASE Your secret key for verifying the integrity of signed cookies expression [a-z0-9]{127} APPLICATION_USER The application user that is used within the sample application to authorize access on pages openshift APPLICATION_PASSWORD The application password that is used within the sample application to authorize access on pages secret DATABASE_SERVICE_NAME Database service name postgresql POSTGRESQL_USER database username expression user[A-Z0-9]{3} POSTGRESQL_PASSWORD database password expression [a-zA-Z0-9]{8} POSTGRESQL_DATABASE database name root POSTGRESQL_MAX_CONNECTIONS database max connections 10 POSTGRESQL_SHARED_BUFFERS database shared buffers 12MB
该输出标识了在处理模板时使用类似正则表达式的生成器生成的几个参数。
11.4.3. 生成对象列表
您可以使用 CLI 来处理定义模板的文件,以便将对象列表返回到标准输出。
流程
处理定义模板的文件进以将对象列表返回到标准输出:
$ oc process -f <filename>
或者,如果模板已上传到当前项目:
$ oc process <template_name>
通过处理模板并将输出传送至
oc create
来从模板创建对象:$ oc process -f <filename> | oc create -f -
或者,如果模板已上传到当前项目:
$ oc process <template> | oc create -f -
您可以为每个要覆盖的
<name>=<value>
对添加-p
选项,以覆盖文件中定义的任何参数值。参数引用可能会出现在模板项目内的任何文本字段中。例如,在以下部分中,模板的
POSTGRESQL_USER
和POSTGRESQL_DATABASE
参数被覆盖,以输出带有自定义环境变量的配置:从模板创建对象列表
$ oc process -f my-rails-postgresql \ -p POSTGRESQL_USER=bob \ -p POSTGRESQL_DATABASE=mydatabase
JSON 文件可重定向到文件,也可直接应用,而无需通过将已处理的输出传送到
oc create
命令来上传模板:$ oc process -f my-rails-postgresql \ -p POSTGRESQL_USER=bob \ -p POSTGRESQL_DATABASE=mydatabase \ | oc create -f -
如有大量参数,可将其保存到文件中,然后将此文件传递到
oc process
:$ cat postgres.env POSTGRESQL_USER=bob POSTGRESQL_DATABASE=mydatabase
$ oc process -f my-rails-postgresql --param-file=postgres.env
此外,您还可使用
"-"
作为--param-file
的参数,从标准输入中读取环境:$ sed s/bob/alice/ postgres.env | oc process -f my-rails-postgresql --param-file=-