[Helm入門] Templateで使える関数の実行例 ~ 計算編 ~

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Helmのテンプレートで計算の関数を使っていますか?

HelmはKubernetes用のパッケージ管理ソフトウェアです。HelmはChartと呼ばれる設計図をもとに、Kubernetesのマニフェストを作成し、パッケージをインストールします。ChartはGoのテンプレートを利用していて、Sprigの関数を利用することができます。本記事ではHelmテンプレートでのSprig関数のうち、算術関数の使用例を紹介します。

TL;DR

  • Sprigの算術関数ドキュメント
  • 一部の関数を除きint64型として計算されます。
  • 切り捨て、切り上げ、四捨五入の桁数調整の関数は、float型として扱われます。
  • helm install --dry-run --debug <chart>コマンドを使うことで、Kubernetesにインストールしないで関数の結果を知ることができます。

目次

検証環境

以下の実行例の動作環境です。

事前準備

検証用のHelmチャートを作成します。

  1. helm createコマンドでチャートのひな形を作成します。
  2. rmコマンドで不要なファイルを削除します。
  3. 検証のYAMLファイルを作成します。今回はConfigMapを作成するYAMLを作成しています。
  4. helm install --dry-run --debugコマンドで実行確認をします。--dry-run オプションを利用することで、Kuernetes上にConfigMapのリソースをインストールしないで、実行結果の確認を行うことができます。

Math Functions

sprigの算術関数は一部の関数を除き、int64型として計算されます。floatの値を入力してもint64に変換されるので注意してください。

add

addは、加算(足し算)を行います。2つ以上のパラメータを渡すことができます。以下の例ではパラメータを3つ渡して、3つの数値の合計を表示しています。入力値としてfloat型の値を渡していますが、int64型として計算されることに注意してください。

add1

add1は、インクリメンタル+1を行います。

sub

subは、2つの数の減算(引き算)を行います。addとは異なりsubはパラメータを2つまでしか渡せないところに注意してください。

div

divは、除算(割り算)を行います。

mod

modは、剰余演算(除算の余り)を行います。

mul

mulは、乗算(掛け算)を行います。2つ上のパラーメータを渡すことができます。以下の例では3つの数の乗算を行っています。

max

maxは、与えられた数値の中で最大のものを返します。

min

minは、与えられた数値の中で最小のものを返します。

floor

floorは入力されたfloat型の数値から、小数点以下を切り捨てます。floorの戻り値はfloat型になります。

ceil

ceilは、入力されたfloat型の数値から、小数点以下を切り上げます。ceilの戻り値はfloat型になります。

round

roundは、指定した値で小数部の桁数を四捨五入します。roundの戻り値はfloat型になります。

roundには、四捨五入対象の数値と小数点以下の桁数のパラメータが必要です。以下の例では小数点以下2桁まで表示(3桁目で四捨五入)をする例です。

おわりに

本記事ではHelmテンプレートでのSprig関数のうち、算術計算の使用例を紹介しました。切り捨てや切り上げなど桁数調整の関数を除き、計算や結果はint64型で行われることに注意してください。

スカイアーチ ファンタジー研究室

スカイアーチ ファンタジー研究室

EasyDoggie