更輕鬆在kustomize 使用vars
最一開始我們要釐清,在kustomize一定要先定義變數在某個yaml設定檔中(configmap, deployment, service, etc…),然後在另一個yaml再引用。
A var in kustomize is a reflection mechanism, allowing a value
defined in one YAML configuration field (e.g. an IP address) to
be copied to other locations in the YAML. It has a source spec
and any number of targets.
目前我要設定ingress的host為變數。
然後在kustomize.yaml生成一個configmap去準備變數VAR1。
field reference預設值是 metadata.name
也就是檔案名稱,如果下面案例中我沒有設定filedpath: data.VAR1
ingress.spec.rules.host就會變成my-configmap-xxxxxx
如果有設定就會變成我們在configmap設定好的
不過這只是只有單一變數的情況下,如果有複數變數的情況下,就要多設定kustomizeconfig.yaml
去定義多的field
假如沒有定義的情況如下
這裡可以看到VAR2是沒有被取代的
這裡我多準備一個檔案 var_references.yaml
然後在kustomization.yaml引用設定檔
雖然第一個變數不用引用也找得到,不過為了美觀和維護,強烈建議還是要寫在varReference中。
Ref: