簡體   English   中英

如何在 kube.netes yaml 中重用變量?

[英]How to reuse variables in a kubernetes yaml?

我的 kube.netes yaml 文件中有許多重復值,我想知道是否有一種方法可以將變量存儲在文件中的某個位置,最好是在頂部,以便我可以進一步重復使用

有點像

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 中的一件事我只是找不到關於設置變量的任何東西

您不能在 Kube.netes 清單中執行此操作,因為您需要一個處理器來操作 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

如您所見,標簽名稱 && deployedInNamespace 具有錨點評估產生的值。

根據您的用例描述,您需要的是 Helm 圖表路徑和清單模板。 然后,您可以利用輔助函數並在需要這些字段時輕松自定義。 根據我的經驗,當您有這樣的用例時,Helm 是通往 go 的途徑,因為當您決定更改其他內容時,它會幫助您自定義清單中的所有內容。

我想有一個類似的問題和答案。 請檢查下面如何在 YAML 文件中重用環境變量?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM