組み込みオブジェクト

オブジェクトは、テンプレートエンジンからテンプレートに渡されます。そして、あなたのコードはオブジェクトをやり取りできます(withrangeステートメントを見るときに例を示します)。後で説明するtuple関数など、テンプレート内で新しいオブジェクトを作成する方法がいくつかあります。

オブジェクトはシンプルで、1つの値しか持たない場合があります。あるいは、他のオブジェクトや関数を含んでいる場合もあります。例えば、Releaseオブジェクトはいくつかのオブジェクト(Release.Nameなど)を含んでおり、Filesオブジェクトはいくつかの関数を持っています。

前のセクションでは、{{ .Release.Name }}を使用して、リリース名をテンプレートに挿入しました。Releaseは、テンプレートでアクセスできる最上位のオブジェクトの1つです。

  • Release:このオブジェクトはリリース自体を記述します。内部にいくつかのオブジェクトが含まれています。
    • Release.Name:リリース名
    • Release.Namespace:リリース先の名前空間(マニフェストでオーバーライドしない場合)
    • Release.IsUpgrade:現在の操作がアップグレードまたはロールバックの場合、trueに設定されます。
    • Release.IsInstall:現在の操作がインストールの場合、trueに設定されます。
    • Release.Revision:このリリースのリビジョン番号。インストール時には1で、アップグレードとロールバックごとにインクリメントされます。
    • Release.Service:現在のテンプレートをレンダリングしているサービス。Helmでは常にHelmです。
  • Valuesvalues.yamlファイルとユーザーが提供したファイルからテンプレートに渡される値。デフォルトでは、Valuesは空です。
  • ChartChart.yamlファイルの内容。Chart.yaml内のデータはここでアクセスできます。例えば、{{ .Chart.Name }}-{{ .Chart.Version }}mychart-0.1.0を出力します。
  • Subcharts:これにより、親に対してサブチャートのスコープ(.Values、.Charts、.Releasesなど)にアクセスできます。例えば、.Subcharts.mySubChart.myValueは、mySubChartチャート内のmyValueにアクセスします。
  • Files:チャート内のすべての特別なファイル以外のファイルへのアクセスを提供します。テンプレートへのアクセスには使用できませんが、チャート内の他のファイルへのアクセスには使用できます。詳細は、ファイルへのアクセスセクションを参照してください。
    • Files.Getは、名前でファイルを取得するための関数です(.Files.Get config.ini
    • Files.GetBytesは、ファイルの内容を文字列ではなくバイト配列として取得するための関数です。これは、画像などに対して役立ちます。
    • Files.Globは、指定されたシェルglobパターンに一致する名前のファイルのリストを返す関数です。
    • Files.Linesは、ファイルを行単位で読み取る関数です。これは、ファイルの各行を反復処理するのに役立ちます。
    • Files.AsSecretsは、ファイルの本文をBase64エンコードされた文字列として返す関数です。
    • Files.AsConfigは、ファイルの本文をYAMLマップとして返す関数です。
  • Capabilities:Kubernetesクラスタがサポートする機能に関する情報を提供します。
    • Capabilities.APIVersionsは、バージョンのセットです。
    • Capabilities.APIVersions.Has $versionは、クラスタでバージョン(例:batch/v1)またはリソース(例:apps/v1/Deployment)が利用可能かどうかを示します。
    • Capabilities.KubeVersionおよびCapabilities.KubeVersion.Versionは、Kubernetesバージョンです。
    • Capabilities.KubeVersion.Majorは、Kubernetesのメジャーバージョンです。
    • Capabilities.KubeVersion.Minorは、Kubernetesのマイナーバージョンです。
    • Capabilities.HelmVersionは、Helmバージョン詳細を含むオブジェクトで、helm versionの出力と同じです。
    • Capabilities.HelmVersion.Versionは、semver形式の現在のHelmバージョンです。
    • Capabilities.HelmVersion.GitCommitは、Helmのgit sha1です。
    • Capabilities.HelmVersion.GitTreeStateは、Helmのgitツリーの状態です。
    • Capabilities.HelmVersion.GoVersionは、使用されたGoコンパイラのバージョンです。
  • Template:実行中の現在のテンプレートに関する情報を格納します。
    • Template.Name:現在のテンプレートの名前空間付きファイルパス(例:mychart/templates/mytemplate.yaml
    • Template.BasePath:現在のチャートのテンプレートディレクトリへの名前空間付きパス(例:mychart/templates)。

組み込みの値は常に大文字で始まります。これはGoの命名規則に従っています。独自の命名を作成する場合は、チームに適した規則を使用できます。 Artifact Hubで見られる多くのチャートのように、一部のチームは、組み込みの名前とローカルの名前を区別するために、小文字の先頭文字のみを使用することを選択しています。このガイドでは、その規則に従います。