ダウンロード
1 2 |
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | バッシュ |
ヘルム開始
1 |
ヘルム初期化 |
tillerデプロイメント
1 2 3 4 5 |
kubectl create serviceaccount --namespace kube-system tiller kubectl create clusterrolebinding tiller-cluster-rule --clusterrole = cluster-admin --serviceaccount = kube-system:tiller kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount": "tiller"}}}}' |
出力
1 2 |
名前READYステータス再起動年齢 tiller-deploy-6b549fbc4d-8c5gz 1/1実行中0 46秒 |
ヘルムクリエイト
1 |
helm create mychart |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
〜/ D / helm❯❯❯ツリーマイチャート マイチャート ├──Chart.yaml ├──チャート ├──テンプレート │├──NOTES.txt │├──_helpers.tpl │├──deployment.yaml │├──ingress.yaml │├──service.yaml │├──serviceaccount.yaml │└──テスト │└──test-connection.yaml └──values.yaml 3つのディレクトリ、9つのファイル |
テンプレートファイルの作成
1 2 |
rm -fr mychart / templates / * エコー ""> mychart / values.yaml |
ConfigMap作成
1 |
vim mychart / templates / configmap.yaml |
1 2 3 4 5 6 |
apiVersion:v1 種類:ConfigMap メタデータ: 名前:mychart-configmap 日付: myvalue:「Hello World」 |
ヘルムインストール
1 |
helm install ./mychart |
1 2 3 4 5 6 7 8 9 |
名前:vehement-tarsier 最終展開:2020年2月17日12:46:05 NAMESPACE:デフォルト ステータス:導入済み リソース: ==> v1 / ConfigMap 名前と年齢 mychart-configmap 0s |
変数化
1 |
vim mychart / templates / configmap.yaml |
.Release.Name
は予約語
1 2 3 4 5 6 |
apiVersion:v1 種類:ConfigMap メタデータ: 名前:{{.Release.Name}}-configmap データ: myvalue:「Hello World」 |
ドライラン
1 |
helm install --debug --dry-run ./mychart |
出力結果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
[デバッグ]ローカルポートを使用して作成されたトンネル: '53525' [デバッグ]サーバー: "127.0.0.1:53525" [デバッグ]元のチャートバージョン:「」 [デバッグ]チャートパス:/ Users / yuta / Desktop / helm / mychart NAME:けんかばかりするタツノオトシゴ 改訂:1 リリース:2020年2月17日12:49:39 チャート:mychart-0.1.0 ユーザー提供の値: {} 計算された値: {} フック: マニフェスト: --- #ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:quarreling-seahorse-configmap データ: myvalue:「Hello World」 |
values.yamlを使った変数化
1 |
vim mychart / values.yaml |
1 |
favouriteDrink:コーヒー |
1 2 3 4 5 6 7 |
apiVersion:v1 種類:ConfigMap メタデータ: 名前:{{.Release.Name}}-configmap データ: myvalue:「Hello World」 飲み物:{{.Values.favoriteDrink}} |
ドライラン
1 |
helm install --debug --dry-run ./mychart |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[デバッグ]ローカルポートを使用して作成されたトンネル: '53998' [デバッグ]サーバー: "127.0.0.1:53998" [デバッグ]元のチャートバージョン:「」 [デバッグ]チャートパス:/ Users / yuta / Desktop / helm / mychart 名前:mewing-abalone 改訂:1 リリース:2020年2月17日12:53:05 チャート:mychart-0.1.0 ユーザー提供の値: {} 計算された値: favouriteDrink:コーヒー フック: マニフェスト: --- #ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:mewing-abalone-configmap データ: myvalue:「Hello World」 コーヒーを飲む |
変数の構造化
mychart / values.yaml
1 2 3 |
<span class="na">お気に入り</span><span class="pi">:</span> <span class="na">飲み物</span><span class="pi">:</span> <span class="s">コーヒー</span> <span class="na">食べ物</span><span class="pi">:</span> <span class="s">ピザ</span> |
mychart / templates / configmap.yaml
1 2 3 4 5 6 7 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">v1 </span> <span class="na">kind </span><span class="pi">:</span> <span class="s">ConfigMap </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">name </span><span class="pi">:</span> <span class="pi">{{. </span> <span class="nv">Release.Name </span> <span class="pi">}} </span><span class="s">-configmap </span> <span class="na">data </span><span class="pi">:</span> <span class="na">myvalue </span><span class="pi">:</span> <span class="s2">" </span><span class="s">Hello </span><span class="s">World" </span><span class="na">drink </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.drink </span><span class="pi">}} </span><span class="na">food </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.food </span><span class="pi">}}</span> |
ドライラン
1 2 3 4 5 6 7 8 9 10 |
--- #ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:virulent-antelope-configmap データ: myvalue:「Hello World」 コーヒーを飲む 食品:ピザ |
パイプライン
mychart / templates / configmap.yaml
1 2 3 4 5 6 7 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">v1 </span> <span class="na">kind </span><span class="pi">:</span> <span class="s">ConfigMap </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">name </span><span class="pi">:</span> <span class="pi">{{. </span> <span class="nv">Release.Name </span> <span class="pi">}} </span><span class="s">-configmap </span> <span class="na">data </span><span class="pi">:</span> <span class="na">myvalue </span><span class="pi">:</span> <span class="s2">" </span><span class="s">Hello </span><span class="s">World" </span><span class="na">drink </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.drink | </span><span class="nv">quote </span><span class="pi">}} </span><span class="na">food </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.food | </span><span class="nv">アッパー| </span><span class="nv">引用</span><span class="pi">}}</span> |
ドライラン
1 2 3 4 5 6 7 8 9 |
#ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:whopping-seagull-configmap データ: myvalue:「Hello World」 コーヒーを飲む" フード:「PIZZA」 |
デフォルト値
mychart / templates / configmap.yaml
1 2 3 4 5 6 7 8 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">v1 </span> <span class="na">kind </span><span class="pi">:</span> <span class="s">ConfigMap </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">name </span><span class="pi">:</span> <span class="pi">{{. </span> <span class="nv">Release.Name </span> <span class="pi">}} </span><span class="s">-configmap </span> <span class="na">data </span><span class="pi">:</span> <span class="na">myvalue </span><span class="pi">:</span> <span class="s2">" </span><span class="s">Hello </span><span class="s">World" </span><span class="na">drink </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.drink | </span><span class="nv">デフォルトの「お茶」| </span><span class="nv">quote </span><span class="pi">}} </span><span class="na">food </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.food | </span><span class="nv">アッパー| </span><span class="nv">引用</span><span class="pi">}}</span> |
mychart / values.yaml
1 2 3 |
<span class="na">お気に入り</span><span class="pi">:</span> <span class="c1">#drink:コーヒー</span> <span class="na">フード</span><span class="pi">:</span> <span class="s">ピザ</span> |
ドライラン
1 2 3 4 5 6 7 8 9 |
#ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:wishing-anteater-configmap データ: myvalue:「Hello World」 お茶を飲む" フード:「PIZZA」 |
if文
mychart / templates / configmap.yaml
1 2 3 4 5 6 7 8 9 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">v1 </span> <span class="na">kind </span><span class="pi">:</span> <span class="s">ConfigMap </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">name </span><span class="pi">:</span> <span class="pi">{{. </span> <span class="nv">Release.Name </span> <span class="pi">}} </span><span class="s">-configmap </span> <span class="na">data </span><span class="pi">:</span> <span class="na">myvalue </span><span class="pi">:</span> <span class="s2">" </span><span class="s">Hello </span><span class="s">World" </span><span class="na">drink </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.drink | </span><span class="nv">デフォルトの「お茶」| </span><span class="nv">quote </span><span class="pi">}} </span><span class="na">food </span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">Values.favorite.food | </span><span class="nv">アッパー| </span><span class="nv">quote </span><span class="pi">}} </span><span class="pi">{{ </span><span class="nv">if eq .Values.favorite.drink "coffee" </span><span class="pi">}} </span><span class="na">mug </span><span class="pi">:</span><span class="no">true </span><span class="s">{{end}}</span> |
ドライラン
1 2 3 4 5 6 7 8 9 10 11 |
--- #ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:mychart-1581971207-configmap データ: myvalue:「Hello World」 コーヒーを飲む" フード:「PIZZA」 マグカップ:真 |
変数スコープの変更
.Values.favorite.drink
⇨ .drink
mychart / templates / configmap.yaml
1 2 3 4 5 6 7 8 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">v1 </span> <span class="na">種類</span><span class="pi">:</span> <span class="s">ConfigMap </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">名前</span><span class="pi">:</span> <span class="pi">{{. </span> <span class="nv">Release.Name </span> <span class="pi">}} </span><span class="s">-configmap </span> <span class="na">データ</span><span class="pi">:</span> <span class="na">myvalue </span><span class="pi">:</span> <span class="s2">" </span><span class="s">Hello </span><span class="s">World" </span><span class="pi">{{ </span><span class="nv">-with .Values.favorite </span><span class="pi">}} </span><span class="na">ドリンク</span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">drink | </span><span class="nv">デフォルトの「お茶」| </span><span class="nv">引用</span><span class="pi">}} </span><span class="na">食品</span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">food | </span><span class="nv">アッパー| </span><span class="nv">引用</span><span class="pi">}} </span><span class="pi">{{ </span><span class="nv">-終了</span><span class="pi">}}</span> |
範囲
for文
mychart / values.yaml
1 2 3 4 5 6 7 8 |
<span class="na">好きな</span><span class="pi">:</span> <span class="na">ドリンク</span><span class="pi">:</span> <span class="s">コーヒー</span> <span class="na">食べ物</span><span class="pi">:</span> <span class="s">ピザ</span> <span class="na">pizzaToppings </span><span class="pi">:</span> <span class="pi">- </span> <span class="s">キノコ</span> <span class="pi">- </span> <span class="s">チーズ</span> <span class="pi">- </span> <span class="s">pappers </span> <span class="pi">- </span> <span class="s">タマネギ</span> |
mychart / templates / configmap.yaml
1 2 3 4 5 6 7 8 9 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">v1 </span> <span class="na">種類</span><span class="pi">:</span> <span class="s">ConfigMap </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">名前</span><span class="pi">:</span> <span class="pi">{{. </span> <span class="nv">Release.Name </span> <span class="pi">}} </span><span class="s">-configmap </span> <span class="na">データ</span><span class="pi">:</span> <span class="na">myvalue </span><span class="pi">:</span> <span class="s2">" </span><span class="s">Hello </span><span class="s">World" </span><span class="pi">{{ </span><span class="nv">-with .Values.favorite </span><span class="pi">}} </span><span class="na">ドリンク</span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">drink | </span><span class="nv">デフォルトの「お茶」| </span><span class="nv">引用</span><span class="pi">}} </span><span class="na">食品</span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">food | </span><span class="nv">アッパー| </span><span class="nv">引用</span><span class="pi">}} </span><span class="pi">{{ </span><span class="nv">-エンド</span><span class="pi">}} </span><span class="na">トッピング</span><span class="pi">:</span><span class="pi">| - </span><span class="s">{{ -レンジ.Values.pizzaToppings}} </span><span class="s">- {{。</span><span class="s">| </span><span class="s">タイトル| </span><span class="s">引用}} </span><span class="s">{{-終了}}</span> |
ドライラン
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:mychart-1581971691-configmap データ: myvalue:「Hello World」 コーヒーを飲む" フード:「PIZZA」 トッピング:|- - "きのこ" - "チーズ" -「パパーズ」 - "玉ねぎ" |
変数
template内で変数を代入する
mychart / templates / configmap.yaml
1 2 3 4 5 6 7 8 9 10 |
<span class="na">apiVersion </span><span class="pi">:</span> <span class="s">v1 </span> <span class="na">kind </span><span class="pi">:</span> <span class="s">ConfigMap </span> <span class="na">メタデータ</span><span class="pi">:</span> <span class="na">name </span><span class="pi">:</span> <span class="pi">{{. </span> <span class="nv">Release.Name </span> <span class="pi">}} </span><span class="s">-configmap </span> <span class="na">data </span><span class="pi">:</span> <span class="na">myvalue </span><span class="pi">:</span> <span class="s2">" </span><span class="s">Hello </span><span class="s">World" </span><span class="pi">{{ </span><span class="nv">-$ relname </span><span class="pi">:</span><span class="nv">= .Release.Name- </span><span class="pi">}} </span><span class="pi">{{ </span><span class="nv">-with .Values.favorite </span><span class="pi">}} </span><span class="na">ドリンク</span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">drink | </span><span class="nv">デフォルトの「お茶」| </span><span class="nv">引用</span><span class="pi">}} </span><span class="na">食品</span><span class="pi">:</span><span class="pi">{{. </span><span class="nv">food | </span><span class="nv">アッパー| </span><span class="nv">引用</span><span class="pi">}} </span><span class="na">リリース</span><span class="pi">:</span><span class="pi">{{ </span><span class="nv">$ relname </span><span class="pi">}} </span><span class="pi">{{ </span><span class="nv">-終了</span> <span class="pi">}}</span> |
ドライラン
1 2 3 4 5 6 7 8 9 10 |
#ソース:mychart / templates / configmap.yaml apiVersion:v1 種類:ConfigMap メタデータ: 名前:mychart-1581971910-configmap データ: myvalue:「Hello World」 コーヒーを飲む" フード:「PIZZA」 リリース:mychart-1581971910 |