这是我的Kustomize结构:
./kustomize/
├── base
│ ├── kustomization.yaml
│ ├── kustomizeconfig
│ │ └── transformers
│ │ └── labels-transformer.yaml
│ └── resources
│ ├── deployment.yaml
│ └── service.yaml
└── overlays
├── dev
│ ├── kustomization.yaml
│ └── kustomizeconfig
│ ├── generators
│ │ ├── config-generator.yaml
│ └── transformers
│ ├── labels-transformer.yaml
└── prod
├── kustomization.yaml
└── kustomizeconfig
├── generators
│ ├── config-generator.yaml
└── transformers
├── labels-transformer.yaml
如您所见,在每个dev
和prod
覆盖上,我都有一个kustomizeconfig/generators/config-generator
。
另一方面,在每个dev
和prod
叠加层上,以及base
上,我都有一个kustomizeconfig/transformers/labels-transformer.yaml
。 >
在基础(base/transformers/labels-transformer
)上,它看起来像:
apiVersion: builtin
kind: LabelTransformer
metadata:
name: notImportantHere
labels:
app.kubernetes.io/name: backend
app.kubernetes.io/instance: backend
app.kubernetes.io/version: "1.0.0"
app.kubernetes.io/component: service
app.kubernetes.io/part-of: covid
fieldSpecs:
- kind: ConfigMap
path: metadata/labels
create: true
...
在产品(overlays/prod/transformers/labels-transformer
)覆盖上:
apiVersion: builtin
kind: LabelTransformer
metadata:
name: notImportantHere
labels:
stage: production
fieldSpecs:
- kind: ConfigMap
path: metadata/labels
create: true
...
当我执行kustomize build kustomize/overlays/prod
时:
apiVersion: v1
data:
...
kind: ConfigMap
metadata:
labels:
stage: production
name: prod-covid-backend-config-cc624fc45h
如您所见,仅添加了stage: production
标签。
我需要在每个覆盖图上生成configmap时,它都继承base
标签转换器。当前似乎已被忽略。
有什么想法吗?
我已经测试过从prod
覆盖中删除标签,并且我建议base
label transformer
被忽略。我的意思是,没有粘贴标签。
apiVersion: v1
data:
...
kind: ConfigMap
metadata:
name: prod-covid-backend-config-cc624fc45h