在修改(和应用)OpenShift 模板时动态应用更改
Apply changes dynamically when OpenShift template is modified (and applied)
我用服务、deploymentconfig、buildconfig 和图像流定义了一个模板(让我们称之为 template.yaml
),用 oc apply -f template.yaml
和 运行 oc new-app app-name
应用它来创建来自模板的新应用程序。该应用程序基本上所做的是使用 S2I 构建一个 Node.js 应用程序,将其写入新的 ImageStream 并将其部署到公开必要服务的 pod。
现在我决定对模板进行一些更改并将其应用到 OpenShift 上。我如何着手确保所述模板中的所有资源也得到重新配置,而不必删除与该模板关联的所有资源并再次重新创建它?
我认为template
只用于第一次创建相关资源。即使您修改了 template
,它也不会与创建的资源相关联。所以你应该重新创建或修改每个被修改的资源。
但是您可以使用以下命令简单地修改 template
创建的所有资源。
# oc apply -f template_modified.yaml | oc replace -f -
希望对你有所帮助
正确的命令结果是:
$ oc apply -f template_modified.yaml
$ oc process -f template_modified.yaml | oc replace -f -
这对我在 OpenShift 3.9 上有用。
我用服务、deploymentconfig、buildconfig 和图像流定义了一个模板(让我们称之为 template.yaml
),用 oc apply -f template.yaml
和 运行 oc new-app app-name
应用它来创建来自模板的新应用程序。该应用程序基本上所做的是使用 S2I 构建一个 Node.js 应用程序,将其写入新的 ImageStream 并将其部署到公开必要服务的 pod。
现在我决定对模板进行一些更改并将其应用到 OpenShift 上。我如何着手确保所述模板中的所有资源也得到重新配置,而不必删除与该模板关联的所有资源并再次重新创建它?
我认为template
只用于第一次创建相关资源。即使您修改了 template
,它也不会与创建的资源相关联。所以你应该重新创建或修改每个被修改的资源。
但是您可以使用以下命令简单地修改 template
创建的所有资源。
# oc apply -f template_modified.yaml | oc replace -f -
希望对你有所帮助
正确的命令结果是:
$ oc apply -f template_modified.yaml
$ oc process -f template_modified.yaml | oc replace -f -
这对我在 OpenShift 3.9 上有用。