5

目前我们正在使用 ${HOME}/bin/kustomize 编辑集 nameprefix prefix1

但它正在为我们所有的资源(如 deployment.yaml 和 service.yaml)添加名称前缀。

我们只想将 nameprefix 应用于 deployment.yaml 而不是将其应用于 service.yaml

4

2 回答 2

5

发布以获得更好的可见性:

如果您正在使用

kustomize edit set nameprefix prefix1

此命令将 在您当前的kustomization中设置namePrefix。如问题所述 - 这是它的工作方式, namePrefix将用于 kustomization.yaml 中的所有指定资源

请使用带有自定义的覆盖基础的想法考虑以下场景。

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
  • base : 通用文件
#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
  • 覆盖/产品:kustomization.yaml

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

如您所见,使用此结构和内置插件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应用于目录 中指定的所有资源,使用PrefixSuffixTransformer将在此特定示例前缀中添加:“deploymentprefix-”deployment.metadata.name

apiVersion: builtin
kind: PrefixSuffixTransformer
metadata:
  name: customPrefixer
prefix: "deploymentprefix-"
fieldSpecs:
- kind: Deployment
  path: metadata/name

 /kustomizeconfig/deploy-prefix-transformer.yaml

于 2021-03-02T10:56:57.020 回答
2

有关于那个的github问题

是否有可能让 kustomization 文件避免为几种添加前缀?

@jbrette 提供了 2 个示例,您可以使用它们来实现您所需要的。

此外,您可以查看这些拉取请求:

于 2020-10-06T11:48:30.533 回答