发布以提高知名度:
如果您正在使用:
kustomize edit set nameprefix prefix1
此命令将在您当前的 kustomization 中设置 namePrefix。
正如问题中所述 - 这就是它的工作方式,namePrefix 将用于 kustomization.yaml 中的所有指定资源。 p>
请考虑以下场景,使用 overlay 和 base 与自定义。
Tested with:
kustomize/v4.0.1
Base 声明共享的资源和设置,而 Overlay 声明其他差异。
.
├── 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
-
overlay/prod/kustomizeconfig:deploy-prefix-transformer.yaml
apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
name: customPrefixer
prefix: "deploymentprefix-"
fieldSpecs:
- kind: Deployment
path: metadata/name
如你所见,使用这个结构和内置插件PrefixSuffixTransformer可以得到想要的效果:
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) 会将 nameSuffix: -Suffix1 应用于 base 目录中指定的所有资源,并使用 PrefixSuffixTransformer 将添加到此具体示例 prefix: "deploymentprefix-" 到 deployment.metadata.name
apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
name: customPrefixer
prefix: "deploymentprefix-"
fieldSpecs:
- kind: Deployment
path: metadata/name
/kustomizeconfig/deploy-prefix-transformer.yaml