在kustomize中有选择地应用nameprefix / namesuffix

问题描述

当前,我们正在使用$ {HOME} / bin / kustomize编辑集名称前缀prefix1

但是它将名称前缀添加到我们的所有资源中,例如Deployment.yaml和service.yaml。

我们只想将nameprefix应用于Deployment.yaml,而不要将其应用于service.yaml

解决方法

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

如果您使用

kustomize edit set nameprefix prefix1

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

请考虑使用带有 kustomization 的 overlaybase 的想法的以下场景。

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
  • overlay/prod:kustomization.yaml

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 将添加在此特定示例中,前缀:“deploymentprefix-”deployment.metadata.name

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

 /kustomizeconfig/deploy-prefix-transformer.yaml

,

github issue

有可能使kustomization文件避免为几种添加前缀吗?

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

此外,您还可以查看以下拉取请求:

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...