如何在kubernetes yaml中重用变量?

6qftjkof  于 2023-01-29  发布在  Kubernetes
关注(0)|答案(2)|浏览(271)

我的kubernetesyaml文件中有许多重复的值,我想知道是否有一种方法可以将变量存储在文件中的某个地方,最好是存储在文件的顶部,以便在下面重用
有点像

variables:
   - appName: &appname myapp
   - buildNumber: &buildno 1.0.23

我可以在下面重复使用

labels:
    app: *appname
    tags.datadoghq.com/version:*buildno
containers:
    - name: *appname

...

image: 123456.com:*buildno

如果可能话
我知道锚点在yaml中是一个东西,我只是找不到任何关于设置变量的东西

nqwrtyyt

nqwrtyyt1#

你不能在Kubernetes清单中这样做,因为你需要一个处理器来操作YAML文件。尽管你可以在同一个YAML清单中共享锚点,如下所示:

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: &cmname myconfig
  namespace: &namespace default
  labels:
    name: *cmname
    deployedInNamespace: *namespace
data:
  config.yaml: |
    [myconfig]
    example_field=1

这将导致:

apiVersion: v1
data:
  config.yaml: |
    [myconfig]
    example_field=1
kind: ConfigMap
metadata:
  creationTimestamp: "2023-01-25T10:06:27Z"
  labels:
    deployedInNamespace: default
    name: myconfig
  name: myconfig
  namespace: default
  resourceVersion: "147712"
  uid: 4039cea4-1e64-4d1a-bdff-910d5ff2a485

正如您所看到的,标签name && deployedInNamespace具有从锚点评估得到的值。
根据您的用例描述,您需要的是Helm图表路径和清单模板。然后,您可以利用帮助函数,并在需要时轻松地自定义这些字段。根据我的经验,当您有这样的用例时,Helm是最佳选择,因为当您决定更改其他内容时,它将帮助您自定义清单中的所有内容。

vwoqyblh

vwoqyblh2#

我想有一个类似的问题有答案。请检查下面的How to reuse an environment variable in a YAML file?

相关问题