【问题标题】:Can Openshift templates create objects over multiple projectsOpenshift 模板能否在多个项目上创建对象
【发布时间】:2019-12-04 10:11:12
【问题描述】:

如果我创建项目“A”并希望从其中部署一个模板,该模板在项目“A”和另一个项目“B”中创建对象,我将如何实现这一点。我尝试在模板中简单地指定项目“B”的命名空间,但得到了错误

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

【问题讨论】:

  • 我认为您需要集群管理员角色才能跨多个项目创建资源,或者您应该分配在目标项目中创建资源的权限。
  • 感谢 Daein,我也这么认为,但我确实有集群管理员,但问题仍然存在。错误信息让我认为问题出在实际模板中

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


【解决方案1】:

根据documentation

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

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

apiVersion: template.openshift.io/v1
kind: Template
metadata:
  name: xxx
parameters:
- name: ns1
  value: test1
- name: ns2
  value: test2
objects:
- apiVersion: v1
  data:
    key1: value1
  kind: ConfigMap
  metadata:
    namespace: ${ns1}
    name: cm1
- apiVersion: v1
  data:
    key2: value2
  kind: ConfigMap
  metadata:
    namespace: ${ns2}
    name: cm2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    相关资源
    最近更新 更多