在 kustomize 中选择性应用名称前缀/名称后缀

2024-01-01

目前我们正在使用 ${HOME}/bin/kustomize edit set nameprefix prefix1

但它正在向我们的所有资源(例如,deployment.yaml 和 service.yaml)添加 nameprefix。

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


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

如果您正在使用:

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
  • 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
  • 覆盖/产品:自定义.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

正如你所看到的,使用这个结构和内置插件前缀后缀转换器就可以得到想要的效果:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 kustomize 中选择性应用名称前缀/名称后缀 的相关文章

随机推荐

  • 如何通过 .Net MVC4 中的 JSON 通过 ajax 调用将复杂的视图模型传递到控制器操作中?

    因此 我尽可能多地搜索 Stack Overflow 但找不到这个特定问题的答案 如果已经有人问过这个问题 我们深表歉意 我找到了以下问题的答案 如何将对象 类传递给操作 如何通过查询字符串将对象传递给操作 如何通过 json 将对象传递给
  • 如何将 rpy2 指向现有的 R 安装?

    我安装了两个 R 有没有办法将 rpy2 明确指向其中一个 我相信 phonixor是对的 rpy2 使用它在路径中找到的 R 如果你想改变这一点 就改变你的道路 PATH path to r bin PATH
  • 如何检索局部变量?

    是否可以从我在 matlab 中运行的程序函数中检索局部变量 即我想从代码中检索一个变量 该变量未出现在输出中 提前致谢 下面描述了添加到函数本身以使变量在本地范围之外可用的代码 当您无法更改函数时 从外部当然无法更改范围 这是预期的 正确
  • 如何删除 Android 上的系统栏,我的意思是,所有

    我对 Android 编程还很陌生 几周前就开始了 Stackoverflow 这是我自 android 第一天以来最好的新油炸 第一次 我想真正寻求帮助 而不是在其他地方阅读它 主要是因为我无法在 任何地方 找到我的问题的答案 我正在使用
  • 为什么我们应该将模板包装在脚本块内?

    背景 所有 JS 模板引擎都建议将模板文本放入脚本块中 如下所示 但许多开发人员 可以理解 不喜欢这样做 因为他们在脚本块内的代码编辑器中失去了 HTML 语法突出显示 我见过这样的解决方法 在 text html 模板中保持正确的 HTM
  • MySqlCommand.LastInsertedId 如何工作?

    在我的一个项目中 我必须从数据库中获取最后插入的 ID 以便我可以将新插入的数据与内存中的数据同步 而无需执行SELECT FROM my db 查询 即我正在做一个SELECT FROM my db WHERE id new index
  • Mongoid 不同领域的相同嵌入文档类型

    我正在尝试添加嵌入文档 我知道这个语法是错误的 但它展示了我想要完成的任务 class Email include Mongoid Document embeds many recipients as to embeds many reci
  • java.io.FileNotFoundException:(不允许操作)在 mac osx (el Capitan) 上使用 ./keytool -import 时出错 - Java 6

    尝试将 CA 证书导入到我的 Java 6 信任库并遇到此错误 keytool v import trustcacerts alias Rapidssl file Users spurr Desktop rapidssl cer keyst
  • ajax调用成功后重新初始化Slick js

    我正在使用 Slick 进行轮播实现 并且在页面加载时一切正常 我想要实现的是 当我进行 Ajax 调用来检索新数据时 我仍然需要 slick 轮播实现 但此刻我失去了它 我已将对 slick 的调用放入函数中 function slick
  • Zend 中的 Flash Messenger 类型

    是否可能或我如何为 Zend 中的 FlashMessage 指定类型 例如 This is a Success message this gt helper gt FlashMessenger You are successfully c
  • flutter doctor - CocoaPods 已安装但无法工作

    使用 zsh 用于在 bash 中工作酿造医生 您的系统已准备好酿造 颤振医生给出了这个错误 Xcode develop for iOS and macOS Xcode 12 2 CocoaPods installed but not wo
  • 代码存储库最佳实践[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用标记、颜色和 lw 选项绘制多个数据框列

    虽然线图效果很好 但我正在寻找一种更有效的方法来编写此代码并缩短它 什么被认为是 最佳实践 新人正在做基础工作 我觉得我应该使用循环来分配所有 y 值 也许还有绘图 数据说明 1990 2018 年时间序列数据 包含大陆电力消耗 TWH f
  • 创建操作的自定义 POST 路由未启动

    解释上下文 puts I am learning Rails building a simple forum application puts I am pretty satisfied to where I got so far but
  • 初始化语法

    我喜欢 C 3初始化语法 https learn microsoft com en us dotnet csharp programming guide classes and structs how to initialize objec
  • 如何强制 float 和 int 有小数点或尾随零

    我正在尝试通过 RS232 与机器连接 并且机器要求所有输入都有小数点分隔符 否则它会采用小数点位置 例如 如果我发送25它将解释为0 025 but 25 000 or 25 将被正确接收为25 000 I tried Math Roun
  • 对于C++ sort(),如何将参数传递给自定义比较函数?

    我想使用标准排序函数根据与另一个点的距离 例如它们的重心 对点进行排序 我知道我可以编写一个自定义比较函数 但我不知道如何向它传递参数 我希望它是线程安全的 所以我不想将参数存储在一个中心位置 有没有办法将附加参数传递给自定义比较函数 He
  • JavaScript - XMLHttpRequest、访问控制允许来源错误

    我正在尝试将 XMLHttpRequest 发送到粘贴站点 我正在发送一个包含 api 所需的所有字段的对象 但我不断遇到此问题 我读过这个问题 我想 httpReq setRequestHeader Access Control Allo
  • 未找到方法定义...使用 Xcode 自动存根?

    在询问之前我不想放弃 因为这是任何 Java Net IDE 中的基本功能 编译器告诉我 Incomplete implementation of class Method definition for someMethod not fou
  • 在 kustomize 中选择性应用名称前缀/名称后缀

    目前我们正在使用 HOME bin kustomize edit set nameprefix prefix1 但它正在向我们的所有资源 例如 deployment yaml 和 service yaml 添加 nameprefix 我们只