发布以获得更好的可见性:
如果您正在使用:
kustomize edit set nameprefix prefix1
该命令将设置名称前缀在你当前的定制化。
正如问题中所述 - 这就是它的工作方式,名称前缀将用于内部所有指定资源自定义.yaml.
请使用以下想法考虑以下场景:overlay and base与定制。
Tested with:
kustomize/v4.0.1
基础声明共享的资源和设置,覆盖声明额外的差异。
.
├── base
│ ├── [deployment.yaml] Deployment nginx
│ ├── [kustomization.yaml] Kustomization
│ └── [service.yaml] Service nginx
└── prod
├── [kustomization.yaml] Kustomization
└── kustomizeconfig
└── [deploy-prefix-transformer.yaml] PrefixSuffixTransformer customPrefixer
#deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
run: nginx
#service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
run: nginx
#kustomization.yaml
resources:
- deployment.yaml
- service.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../../base
nameSuffix: -Suffix1
transformers:
- ./kustomizeconfig/deploy-prefix-transformer.yaml
-
覆盖/产品/kustomizeconfig:部署前缀变压器.yaml
apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
name: customPrefixer
prefix: "deploymentprefix-"
fieldSpecs:
- kind: Deployment
path: metadata/name
正如你所看到的,使用这个结构和内置插件前缀后缀转换器就可以得到想要的效果:
kustomize build overlay/prod/
apiVersion: v1
kind: Service
metadata:
labels:
run: nginx
name: nginx-Suffix1
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploymentprefix-nginx-Suffix1
spec:
selector:
matchLabels:
run: nginx
此配置 (overlay/prod/kustomization.yaml) 将适用名称后缀:-后缀1到指定的所有资源base目录和使用前缀后缀转换器 https://kubectl.docs.kubernetes.io/guides/extending_kustomize/builtins/#example-8将在这个具体示例中添加前缀:“deploymentprefix-” to 部署.元数据.名称
apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
name: customPrefixer
prefix: "deploymentprefix-"
fieldSpecs:
- kind: Deployment
path: metadata/name
/kustomizeconfig/deploy-prefix-transformer.yaml