[Day 22] Oops!Helm Template and Value

Helm的是Template + Value的組合部署檔,去k8s進行部署的

常見 Oops 分享

使用數字會噴錯


template匯入value的錯誤

template:

value

ithome: test: 800

helm 會噴錯誤警告

v1.Deployment.Spec: v1.DeploymentSpec.Template: v1.PodTemplateSpec.Spec: v1.PodSpec.Containers: []v1.Container: v1.Container.v1.Container.Env: []v1.EnvVar: v1.EnvVar.Value: ReadString: expects " or n, but found 8, error found in #10 byte of …|,“value”:800

解決辦法 在前後加入雙引號""


template:

value

ithome: test: 800

yaml輸出:

注意事項


1. 數字輸出科學符號格式

template:

value

ithome: test: 123456789

yaml輸出:

2. 數字輸出無科學符號格式

template:

value

ithome: test: 123456789

yaml輸出:

3. 數字輸出溢位

template:

value

ithome: test: 10000000000000000000

yaml輸出:

環境變數

在任何環境都一致的變數(除了本機)。建議不要放在環境變數deployment.yaml上。 建議Server的環境變數讀取方式: 先讀取當前目錄指定的設定檔注入 -> 若環境變數有設定就覆蓋 這樣的在本機開發&部署上k8s ex: .env

ITHOME_REDIS_HOST=127.0.0.1

deployment.yaml

env:
- name: ITHOME_REDIS_HOST
value: "ithome-redis"

而helm是透過樣板匯入value的方式部署至k8s上的工具,當你的環境變數永遠不變時,是不必要抽出來放在env上的

ex: .env

ITHOME_REDIS_HOST=ithome-redis

ex: deployment.yaml

-name: ITHOME_REDIS_PORT value: “6379”

今日小結

大家可以在本機用---dry-run試試看,我今日分享的內容,希望大家可以提前知道會發生這些事情,提早避開這些Oops唷