Helm 3.0 - 10 / Chart Tests

Page content

Helm3について その10

今日は ここChart Tests

チャートのテスト

チャートのテストを使う理由は主に3つあるように思う。

  • (利用者) Helmを使ってインストールしたリリースの正常性確認
  • (作成者) 正しくValues等が Injectされるかどうかの確認
  • (利用者) チャート製作者の実装意図の理解を助ける

テストの実体

Hookの仕組みを使って 実装する。

annotations:
  "helm.sh/hook": test

このアノテーションを持つ Jobは、 テストに成功したら 終了コード 0 で終わるようにコンテナにする

テストの実行

「あるリリースに対してテストを行う」事を指示する。

helm test RELEASE_NAME

テストの書き方

annotationを付けて普通にJobとして定義する

apiVersion: batch/v1
kind: Job
metadata:
  name: "{{ .Release.Name }}-TEST-CASE-NAME"
  annotations:
    "helm.sh/hook": test
spec:
  template:
    spec:
      containers:
      - name: main
        image: {{ .Values.image }}
        command: ["sh", "-c", "DEFINE SOME TESTS HERE"]
      restartPolicy: Never