2021年4月17日土曜日

公開されている helm chart をデバッグしてみよう

公開されている helm chart をデバッグしてみよう

概要

Helm chart は基本的に公開されています
マニフェストも見えるので挙動がおかしい場合には手元にマニフェストをダウンロードしてデバッグしてみましょう

環境

  • Helm 3.5.2

マニフェストをダウンロードする

helm pull を使います

  • helm pull gitlab/gitlab

これで tgz ファイルがダウンロードできます

chart を解凍する

手元で動作させるために解凍しましょう

  • tar zvxf gitlab-4.10.2.tgz

手元の chart を元に実行してみる

マニフェストが手元に来たのでそれを元に実行できるか試してみましょう

  • helm install test ./gitlab

必要なパラメータは適宜設定してください

chart を書き換えて print デバッグしてみる

これで直接 chart を書き換えることができます
例えばテンプレート情報が正しく設定されているか調べる場合にはコメントを使ってテンプレートの値を表示することができます

  • vim gitlab/charts/gitlab-runner/templates/_env_vars.tpl

(以下一部抜粋)

{{- define "gitlab-runner.runner-env-vars" }}  
# some: problem section  
# {{ include "gitlab-runner.gitlabUrl" . }}  
- name: CI_SERVER_URL  
  value: {{ include "gitlab-runner.gitlabUrl" . }}

コメントの some: problem section とその下の {{ include "gitlab-runner.gitlabUrl" . }} のテンプレートを print デバッグしてみます

デバッグ実行

ではデバッグ実行してみます
オプションで --dry-run--debug を使います

  • helm install --dry-run --debug test ./gitlab > debug.log

マニフェストによってはかなり長くなるので結果はファイルなどにリダイレクトしてあげましょう
これで中身を見てみると k8s にデプロイするための定義がつらつらと書かれているのが確認できると思います
その中に以下のようなテンプレートの print デバッグ情報も含まれていると思います

# some: problem section
# "https://gitlab.example.com/"

lint もする

ドライランで実行する前にそもそも構文が間違っていないかチェックすることもできます
手動で print デバッグを入れたりマニフェストを修正した場合には事前に lint しておくと良いと思います

  • helm lint ./gitlab

参考サイト

0 件のコメント:

コメントを投稿