0

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

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

4

1 回答 1

1

根据文件

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

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

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
于 2020-01-20T20:23:15.090 回答