【问题标题】:How to order the creation of objects in an Openshift template如何在 Openshift 模板中对对象的创建进行排序
【发布时间】:2019-12-03 12:37:56
【问题描述】:

我正在尝试创建一个模板,该模板允许在多个环境中推广应用程序。目前我创建了一个项目,然后将模板导入其中,该模板创建了默认命名空间(我手动创建的项目)中所需的所有对象、我需要的其他项目和允许我通过环境提升 pod 的集群角色。问题是我还希望模板在新创建的项目中创建对象,但这会失败并显示错误消息:

提供的对象的命名空间与请求中发送的命名空间不匹配

我认为这可能是 Openshift 尝试在创建项目的同时创建对象的问题,并且它在尝试创建对象时找不到项目。为了解决这个问题,我尝试使用 service.alpha.openshift.io/dependencies 注释但得到了同样的错误

任何帮助将不胜感激

【问题讨论】:

  • 您也可以使用helm图表同时部署项目和对象

标签: kubernetes openshift openshift-origin openshift-3 okd


【解决方案1】:

根据documentation

如果对象定义的元数据包含固定的命名空间字段值,则该字段将在模板实例化期间从定义中删除。如果命名空间字段包含参数引用,则将执行正常的参数替换,并且将在参数替换将值解析到的任何命名空间中创建对象,假设用户有权在该命名空间中创建对象。

所以只需指定所需的命名空间作为模板的参数。可用示例:

apiVersion: template.openshift.io/v1
kind: Template
metadata:
  name: yyy
parameters:
- name: ns3
  value: test3
objects:
- apiVersion: v1
  kind: Namespace
  metadata:
    name: ${ns3}
  spec:
    finalizers:
    - kubernetes
- apiVersion: v1
  data:
    key3: value3
  kind: ConfigMap
  metadata:
    namespace: ${ns3}
    name: cm3

【讨论】:

    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 2014-02-26
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 2015-04-11
    • 1970-01-01
    相关资源
    最近更新 更多