Helm 3.0 - 3 install / customized install / uninstall

Page content

Helm 3.0 が GAになったので 色々やってみる。その3

今日のお題はここの続き Using Helm

チャートのインストールとアンインストールについて

チャートのインストール

既に前にあったけど、基本は以下

helm install RELEASE_NAME CHART_NAME

このコマンドそのものはすぐに終わる。その後で様々なKubernetesオブジェクトの作成が走る事になる。

インストールすると構成情報等が表示されるけど、helm status RELEASE_NAME でもう一度表示可能

チャートレポジトリにまとめられていなくても、いくつかの方法でインストール可能

# ローカルパッケージファイル指定
helm install RELEASE_NAME mychart-0.1.0.tgz
# チャートディレクトリ指定
helm install RELEASE_NAME work/mychart
# パッケージダウンロードURL指定
helm install RELEASE_NAME https://example.com/charts/mychart-0.1.0.tgz

インストールのカスタマイズ

チャートには カスタマイズ可能な設定値(values)があるので、それを事前に設定してカスタマイズ出来る

チャートで設定可能な値を確認する

helm show values CHART_NAME

この出力をリダイレクトしたものを編集して yaml を作ってもよいけど、設定する値が少ない場合には 設定したい値だけでも設定可能。

ユーザ設定値を使ってインストールする

helm install RELEASE_NAME CHART_NAME -f config.yaml

設定を yamlファイルに書き込んで install時に -f で渡してやる

コマンドラインからユーザ設定値を渡す

helm install RELEASE_NAME CHART_NAME --set KEY=VALUE

–setは -fの config.yamlよりも優先順位が高いためオプションの指定順序に関わらず–setの値で上書きされる。

–setでの指定を容易にする意味で values.yamlについてはあまり深いネストをさせるべきではないでしょう。

リリースのユーザ設定値を確認する

インストール後にユーザ設定値を確認したい場合は get values を使う

helm get values RELEASE_NAME

$ echo -n "5uper5ecretPassword" > /tmp/dbrootpassword

$ cat << EOF > config.yaml
rootUser:
  password: $(cat /tmp/dbrootpassword)
EOF

$ helm install mymaria stable/mariadb -f ./config.yaml
NAME: mymaria
LAST DEPLOYED: Sat Nov 30 15:49:07 2019
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:
Please be patient while the chart is being deployed
... snip ...

$ helm get values mymaria
USER-SUPPLIED VALUES:
rootUser:
  password: 5uper5ecretPassword

$ kubectl get secret mymaria-mariadb -o json
{
    "apiVersion": "v1",
    "data": {
        "mariadb-replication-password": "QzhNcG1RZTUzdQ==",
        "mariadb-root-password": "NXVwZXI1ZWNyZXRQYXNzd29yZA=="
    },
    "kind": "Secret",
    "metadata": {
        "creationTimestamp": "2019-11-30T06:49:07Z",
        "labels": {
            "app": "mariadb",
            "chart": "mariadb-7.1.0",
            "heritage": "Helm",
            "release": "mymaria"
        },
        "name": "mymaria-mariadb",
        "namespace": "default",
        "resourceVersion": "505562",
        "selfLink": "/api/v1/namespaces/default/secrets/mymaria-mariadb",
        "uid": "eaccb189-1c31-4386-9d41-5eafbcc5e60d"
    },
    "type": "Opaque"
}

$ echo "NXVwZXI1ZWNyZXRQYXNzd29yZA==" | base64 -d
5uper5ecretPassword

うーん、これ helmの user-supplied valuesってどこに記録されてるんだろう? 暗号化されてるんだろうか。

追記: 記録されるのはSecretの中でした。