とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

helmとhelm templateについての気づき 第一回 helmについておさらい

今更な話題ですが、Kubernetesにはhelmという便利なアプリケーションインストーラーがあります。 例えばこのように実行すると、Kubernetesにあらかじめ決められた設定でアプリケーションを展開できます。

$ helm install <app-package>

例えば次のようにNamespaceを指定してアプリケーションをデプロイできますし、2行目のようにイメージタグを指定してデプロイしたり、設定する項目が多ければファイルに書いた内容でデプロイなんてことができます。Kubernetesでhelmは普通に使われていると思います。

$ helm install test stable/prometheus --namespace helm-test
$ helm install --name my-release --namespace helm-test my-chart --set image.tag=v1.0.0
$ helm install -f myvalues.yaml myredis ./redis

便利なHelmですが、Helmにはhelm templateというコマンドがあって、Helm templateでカスタマイズした状態のマニフェストをファイルに出力することができるという機能があります。 言葉では伝わりにくいので実行例を見ながら解説します。 次のコマンドは./myapp-helmというディレクトリーにあるHelm chartにmyapp/values.yamlに書かれている設定に上書きしています。これをリダイレクトしてhogehuga-myapp-manifests.yamlという名前のファイルに書き込んでいます。

$ helm template myapp-helm ./myapp-helm -f myapp/values.yaml > hogehuga-myapp-manifests.yaml 

ちょっと実践してみましょう。これでwordpressのHelm chartをリポジトリーからダウンロードできます。ファイルはtar.gz形式のアーカイブがダウンロードされます。

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm update
$ helm pull bitnami/wordpress 

展開すると、いくつかのファイルが見つかると思います。 values.yamlがこのchartのデフォルトが書かれているファイルで、これをコピーしてカスタマイズして任意の設定でアプリケーションをデプロイできるのですが、今回はちょっとだけ書き換えてhelm templateコマンドを実行してみましょう。

$ tar -xzvf wordpress-24.2.2.tgz
$ ls wordpress
Chart.lock      Chart.yaml      charts          README.md       templates       values.schema.json  values.yaml

実際デプロイする訳ではないので、適当です。

$ vi values.yaml
...
wordpressUsername: hogehogeuser

では、次のように実行してみましょう。values.yamlを書き換えた設定が反映されたマニフェストがファイルとして出力されたのが確認できました。

$ helm template mywordpress ./wordpress -f ./values.yaml > mywp-manifests.yaml 
$ cat mywp-manifests.yaml |grep hogehogeuser
              value: "hogehogeuser"

helm template、便利ですね。 長くなったので、次回に続きます。

第2回に続く

devops-blog.virtualtech.jp