kubectl kustomize为多个叠加的yaml文件添加注释

huangapple go评论53阅读模式
英文:

kubectl kustomize add annotation to multiple overlay yaml files

问题

我正在尝试将一个文件中的一些注释合并到多个资源中,以保持DRY并使Pod能够从vault中获取信息。

通常情况下,我可以通过在 "mylogger" 中使用 "kind: Deployment" 的方式添加以下代码(我认为这将只允许我从此文件中获取信息到 "mylogger" 资源中)。部署后,"mylogger" Pod 似乎在工作,并且可以获取vault信息。

其他信息是,该项目遵循 base/overlay 结构并使用 kubectl 和 kustomize 命令。

对于文件...

vault-values.yml

apiVersion: apps/v1
kind: Deployment
metadata:
    name: mylogger
spec:
    template:
        metadata:
            annotations:
                inject-vault-value1: "path-to-vault-value1"
                inject-vault-value2: "path-to-vault-value2"

mylogger.yml 资源文件如下

apiVersion: apps/v1
kind: Deployment
metadata:
    name: mylogger
    labels:
        app: mylogger
spec:
    replicas: 2
    selector:
        matchLabels:
            app: mylogger
    template:
        metadata:
            labels:
                app: mylogger
        spec:
            initContainers:
.... 其余部分在这里

运行 kubectl kustomize .../overlay/dev > manifest.yml

我可以在 manifest.yml 文件中看到期望的结果

apiVersion: apps/v1
kind: Deployment
metadata:
    name: mylogger
    labels:
        app: mylogger
spec:
    replicas: 1
    selector:
        matchLabels:
            app: mylogger
    template:
        metadata:
            annotations:
                inject-vault-value1: "path-to-vault-value1"
                inject-vault-value2: "path-to-vault-value2"
            labels:
                app: mylogger
        spec:
            initContainers:
... 其余部分

规范中的部分