CRONJOB

任意の Docker image 及びコマンドを指定し、定期実行Jobの登録を行います。

設定値

Chart

cronjob

ジョブのスケジューリング

指定した時間にジョブを実行する場合は schedule フィールドを定義することで設定できます。scheduleフィールドには、コマンドを実行する時間を表す5つのフィールドからなるcron式を記載してください。

タイムゾーンはデフォルトでは UTC が利用されます。タイムゾーンを変更したい場合は timeZone フィールドにて設定してください。

Example 2月6日午前10時30分にジョブを実行する場合

schedule: "30 10 6 2 *"

Example 日本標準時の毎日1時台~3時台に5分間隔でジョブを実行する場合 (01:00, 01:05, 01:10, ..., 03:55)

schedule: "*/5 1,2,3 * * *"
timeZone: "Asia/Tokyo"

詳細は CronJobSpec のリファレンスを参照してください。

その他の機能

以下の設定項目については DEPLOYMENTパッケージと同一のため DEPLOYMENT の説明を参照してください。

  • ConfigMap/Secretの自動マウント

  • 共有マウント

  • SecretStore

  • imagePullSecrets

  • アカウント作成とロール設定

  • 事前処理用コンテナの登録

Values

Default values

# Default values for cronjob.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

########## Kubernetes Cronjob リソースに設定される変数 ##########

### 階層を簡易化した変数 ###
# 階層はショートカットしているが、変数の構成自体は Kubernetes Cronjob リソースと変更がない変数。

## containerに関する設定 ##
# コンテナ内で実行するコマンドを設定する。
# 設定した内容は Kubernetes CronJob リソースの spec.jobTemplate.spec.template.spec.containers.[0].command にそのまま反映される。
command: []
#   - ./podinfo
#   - --port=9898
#   - --port-metrics=9797
#   - --grpc-port=9999
#   - --grpc-service-name=podinfo
#   - --level=info
#   - --random-delay=false
#   - --random-error=false

## Podに関する設定 ##
# Podの処理失敗時の再起動のポリシーを設定する。
# 設定した内容は Kubernetes CronJob リソースの spec.jobTemplate.spec.template.spec.restartPolicy にそのまま反映される。
# 以下の値が設定できます。
# - Never
#   - Podが再作成されます
# - OnFailure
#   - コンテナがエラー終了した場合、Podが残ってコンテナが再起動します
restartPolicy: "Never"

## Jobに関する設定 ##
# Jobが起動するPodの同時実行数を設定する。
# 設定した内容は Kubernetes CronJob リソースの spec.jobTemplate.spec.parallelism にそのまま反映される。
parallelism: 1
# Jobが起動するPodが何回正常に完了するまで起動するか設定する。
# 例えば completion: 5 と指定すると、Podが5回正常に終了するまでPodが起動しつづける。
# 設定した内容は Kubernetes CronJob リソースの spec.jobTemplate.spec.completions にそのまま反映される。
completions: 1
# Jobの完了判定の方法を設定する。
# 設定した内容は Kubernetes CronJob リソースの spec.jobTemplate.spec.completionMode にそのまま反映される。
# 以下の値が設定できます。
# - NonIndexed
#   - completions に指定した個数Podが成功した場合、Jobが完了したとみなされます。
#   - Jobごとに処理を分割並行して処理しない場合は、基本的には NonIndexed を指定すれば問題ありません。
# - Indexed
#   - 0 から completions-1 の範囲で Pod にインデックスが付与され。各インデックスごとに一つずつ完了したPodがあると、Jobが完了したとみなされます。
#   - ある処理をJobで分割して並列処理したい際に利用します。
#   - 付与された Index は以下に設定されます。
#     - Pod のアノテーション batch.kubernetes.io/job-completion-index に設定されます。
#     - Pod のホスト名の一部が $(job-name)-$(index) という形式になります。
#     - コンテナ内の環境変数 JOB_COMPLETION_INDEX に設定されます。
completionMode: "NonIndexed"
# Jobが起動するPodの異常終了を何回許容するか設定する。
# Pod の異常終了回数が設定値を超過するとJobは失敗と判定されます。
# 設定した内容は Kubernetes CronJob リソースの spec.jobTemplate.spec.backoffLimit にそのまま反映される。
backoffLimit: 5

## Cronjobに関する設定 ##
# CronJobが起動するJobの起動スケジュールをcron形式で設定する。
# 設定した内容は Kubernetes CronJob リソースの spec.schedule にそのまま反映される。
schedule: ""
# CronJobが起動するJobの起動スケジュールのタイムゾーン指定する。
# 設定した内容は Kubernetes CronJob リソースの spec.timeZone にそのまま反映される。
timeZone: "UTC"
# CronJobが起動するJobの同時実行のポリシーを設定する。
# Job起動時に前回起動したJobの処理に時間がかかり過ぎてまだ完了していない場合、今回起動するJobをどのように取り扱うか設定します。
# 設定した内容は Kubernetes CronJob リソースの spec.concurrencyPolicy にそのまま反映される。
# 以下の値が設定できる。
# - Allow
#   - Jobの同時実行を許容します。
#   - 前回起動のJobが完了してなくても、Jobを新規に起動します。
# - Forbid
#   - Jobの同時実行を許容しません。
#   - 前回起動のJobが完了していない場合、Jobを新規に起動しません。
# - Replace
#   - Jobの同時実行を許容しません。
#   - 前回起動のJobが完了していない場合、前回起動のJobを終了し、新規にJobを起動します。
concurrencyPolicy: Allow
# 何らかの理由(Kubernetes のコントロールプレーンが一時的に停止している等)でJobのスケジューリングに失敗したとき、何秒後までは実行してもよいか設定する。
# また、CronJob は 現在の時刻から startingDeadlineSeconds 秒までの間に何回Jobの起動ができなかったか記録し、
# 100回 Job のスケジューリングに失敗すると、以後のJobを起動しないように動作します。
startingDeadlineSeconds: 200
# 今後のJobの起動を中止したい場合 true に設定する。Jobの起動を一時的に停止したい際に利用する。
# 設定した内容は Kubernetes CronJob リソースの spec.suspend にそのまま反映される。 
suspend: false
# CronJobが起動したJobのうち、成功したJobをいくつ残すか設定する。Job の実行結果を確認したい際に設定する。
# 設定した兄用は Kubernetes CronJob リソースの spec.successfulJobsHistoryLimit にそのまま反映される。  
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
# CronJobが起動したJobのうち、失敗したJobをいくつ残すか設定する。Job の実行結果を確認したい際に設定する。
# 設定した兄用は Kubernetes CronJob リソースの spec.successfulJobsHistoryLimit にそのまま反映される。 


## ボリュームに関する設定
# コンテナ内でどのボリュームをどのパスでマウントするかを設定する。
# ボリューム自体の設定は volumes にて設定する。
# Kubernetes ConfigMap リソース および Secret リソースのマウント設定については、configmaps および secrets にて設定が可能。
# 設定した内容は Kubernetes CronJob リソースの以下の設定値にそのまま反映される。
# - spec.template.spec.initContainers.[0].volumeMounts
# - spec.template.spec.containers.[0].volumeMounts
volumeMounts: []
  # - mountPath: /cache
  #   name: cache-volume
# コンテナ内でどのボリュームを利用するか設定する。
# 利用できるボリュームは一時的な保存領域として利用する emptyDir や、各クラウドの提供するブロックストレージサービスなどが含まれる。
# 詳細は https://kubernetes.io/ja/docs/concepts/storage/volumes/ を参照のこと。
# ボリュームをコンテナ内のどのパスでマウントするかの設定は volumeMounts にて設定する。
# Kubernetes ConfigMap リソース および Secret リソースのボリューム設定については、configmaps および secrets にて設定が可能。
# 設定した内容は Kubernetes CronJob リソースの以下の設定値にそのまま反映される。
# - spec.template.spec.volumes
volumes: []
  # - name: cache-volume
  #   emptyDir: {}

# コンテナ内で適用する環境変数を設定する。
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.containers.[0].env にそのまま反映される。
env: []
  # - name: HTTPS_PROXY
  #   value: http://example.com:18080



### 抽象化設定 ###
# Kubernetes CronJob リソースとその他のリソースを連動して設定・構築が実施される設定項目

# 利用するイメージに関する設定。
image:
  # イメージ名・レジストリ名を指定する設定。
  # 設定した値は Kubernetes CronJob リソースの spec.template.spec.containers.[0].image に反映される。
  repository: "" # 例: "asia-northeast1-docker.pkg.dev/customer-project/customer-docker-registry/customer-app"
  # イメージのタグを指定する設定。
  # 値を指定しない場合、本パッケージの.Chart.AppVersionから v{{ .Chart.AppVersion }} というタグ名を設定して自動的に設定する。
  # 設定した値は Kubernetes CronJob リソースの spec.template.spec.containers.[0].image に反映される。
  tag: "" # 例: "1.0.0"
  # イメージをダウンロードして更新するポリシーを設定する。
  # 以下の値が設定できます。
  # - IfNotPresent
  #   - イメージがローカルに存在しない場合のみダウンロードします。
  # - Always
  #   - コンテナ起動時に常にリポジトリを参照し、同一のイメージ名・タグ名でもイメージが更新されている場合はダウンロードを実施する。
  #     更新が実施されていない場合のみローカルのイメージを利用します。
  #   - タグに latest を指定する場合、Always を設定する必要があります。
  # 設定した値は Kubernetes CronJob リソースの spec.template.spec.containers.[0].imagePullPolicy に反映される。
  pullPolicy: IfNotPresent
  # イメージをダンロードする際に利用する認証情報を設定する。プライベートなコンテナレジストリを使用する場合は必須の設定項目。
  # ここで設定された値を元に、クラウドベンダの KMS からコンテナレジストリの認証情報を取得し、本パッケージで利用します。
  # 具体的には以下の設定作業を実施します。
  # - KMS に設定された値から自動的にクラスタ上に Secret が生成される。
  # - 生成された Secret を参照する ServiceAccount が生成される。
  # - 生成された ServiceAccount を CronJob の spec.template.spec.imagePullSecrets にて設定する。
  pullSecrets: []
    # - 
    #   # コンテナレジストリで利用するユーザー名。
    #   username: testuser
    #   # KMS に登録されているコンテナレジストリの認証情報のシークレット名。
    #   # パッケージ利用前に、ここに設定したキー名で KMS に コンテナレジストリの認証情報を保存しておく必要があります。
    #   # ここで設定したキー名はKubernetes リソースの名前に付与されるため、英小文字で始まり、英小文字・ハイフン・ピリオドのみを含むように設定する。
    #   passwordSecret: imagepullsecret
    #   # コンテナレジストリのユーザーの email アドレス
    #   email: testuser@example.com
    #   # コンテナレジストリサーバーのURL
    #   # 各コンテナレジストリごとの設定例:
    #   # - Docker Hub: dockerhub.io
    #   # - Google Cloud(Artifact Registry): [REGION名]-docker.pkg.dev
    #   # - Azure(Azure Container Registry): [コンテナレジストリ名].azurecr.io
    #   # - AWS(Elastic Container Registry): [AWSアカウントID].dkr.ecr.[リージョン名].amazonaws.com
    #   dockerRegistryServer: asia-northeast1-docker.pkg.dev
    #   # 以下は、AWSでのみ利用する設定。
    #   # KMS に登録されているコンテナレジストリの認証情報のキー名。
    #   # AWS SecretManagerではシークレット内にキーを設定して値を保存するため、シークレット名の他にキー名の指定を行う。
    #   property: authkey

# Pod 内のコンテナで共有して利用する一時保存領域の設定。
# initContainer にて実行した事前処理結果を containers で動作させるメイン処理に引き継ぐために利用する。
# コンテナ内でマウントしたパスを指定する。
# Kubernetes CronJob リソースのspec.template.spec.volumes にて一時保存用のボリューム定義を設定した上で、以下にマウントの設定を行います。
# - spec.template.spec.initContainers.[0].volumeMounts
# - spec.template.spec.containers.[0].volumeMounts
sharedMounts: []
  # - /app/data
  # - /app/cache

# Kubernetes CronJob リソースと組み合わせて利用する ConfigMap リソースに関する設定を記載する。
# 既に作成済みの ConfigMap を CronJob で参照するための設定を記載します。
# ConfigMap の作成、及び Kubernetes CronJob リソースの 以下のパラメーターを自動的に設定します。
# spec.template.spec.initContainers.[0].volumeMounts
# spec.template.spec.containers.[0].volumeMounts
mountConfigmaps:
  []
  # 以下の例では、既存の ConfigMap である env-config 内の samplekey という key に対応する値が
  # コンテナ の /var/www2/samplekey というパスにマウントされ、環境変数 ENV_CONFIGMAP にも設定されます。
  # また、マウント時のアクセス権限の設定も実施できます。デフォルトのアクセス権限は 0644 になります。
  # - name: env-config
  #   key: samplekey
  #   mountPath: /var/www2
  #   mode: "0755"
  #   env: ENV_CONFIGMAP

# Kubernetes CronJob リソースと組み合わせて利用する Secret リソースに関する設定を記載する。
# 以下について設定可能です。
# - 既に作成済みの Kubernetes Secret リソースを CronJob にて参照する。
# - KMS に設定された値を Kubernetes Secret リソースとして設定した上で CronJob にて参照する。
# Kubernetes CronJob リソースの 以下のパラメーターを自動的に設定します。
# spec.template.spec.initContainers.[0].volumeMounts
# spec.template.spec.containers.[0].volumeMounts
mountSecrets:
  []
  # Kubernetes Secret リソースを参照する場合には、secetRef を設定します。
  # 以下の例では、 既存の Secrets である secret-env 内の test という key に対応する値が、
  # コンテナ の /var/www2/test というパスにマウントされ、環境変数 ENV_SECRET にも設定されます。
  # また、マウント時のアクセス権限の設定も実施できます。デフォルトのアクセス権限は 0644 になります。
  # - secretRef:
  #     name: secret-env
  #     key: test
  #   mountPath: /var/www2
  #   mode: "0755"
  #   env: ENV_SECRET
  # KMS に設定された値を参照する場合には、secetRef を設定します。
  # 以下の例では、KMS にて test2 という key で登録された値が、
  # コンテナ の /var/www2/test2 というパスにマウントされ、環境変数 ENV_KMS_SECRET にも設定されます。
  # また、マウント時のアクセス権限の設定も実施できます。デフォルトのアクセス権限は 0644 になります。
  # - remoteRef
  #     key: test2
  #     # property: testkey # AWSではキー名の他にプロパティの指定が必要
  #   mountPath: /var/www2
  #   mode: "0600"
  #   env: ENV_KMS_SECRET

### 上級者向け変数 ###
# 以下は設定しなくても本パッケージの機能を利用することは可能。
# 高度なカスタマイズを実施したい場合に利用する。

## ヘルスチェックに関する設定
# Podが正常に動作しているかの確認。このヘルスチェックが満たされなければコンテナが再起動する。
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.containers.[0].livenessProbe にそのまま反映される。
livenessProbe:
  {}
  # # コマンド実行(exec)、HTTPリクエスト(httpGet)、TCP接続(tcpSocket)の3種類のヘルスチェックが設定可能。
  # exec: # コマンドを実行し、リターンコードが0以外のときにヘルスチェック失敗とする。
  #   command:
  #     - cat
  #     - /tmp/healthy
  # httpGet: # HTTP GETリクエストを実行し、リターンコードが異常(4xx/5xx)のときにヘルスチェック失敗とする。
  #   path: /healthz
  #   port: 8080
  # tcpSocket: # TCP接続を実行し、接続失敗したときにヘルスチェック失敗とする。
  #   port: 8080
  # initialDelaySeconds: 60 # コンテナが開始してからヘルスチェックを行うまでの初期遅延を秒単位で指定する。
  # timeoutSeconds: 1 # ヘルスチェックのタイムアウトを秒単位で指定する。
  # periodSeconds: 10 # ヘルスチェックの間隔を秒単位で指定する。
  # successThreshold: 1 # ヘルスチェックが成功したと判断する最小回数を指定。
  # failureThreshold: 3 # ヘルスチェックが失敗したと判断する最小回数を指定。

# Podがサービスインの準備ができているかの確認。このヘルスチェックが満たされなければコンテナへリクエストを送信しない。
# 設定内容は livenessProbe と同じ。
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.containers.[0].readinessProbe にそのまま反映される。 
readinessProbe:
  {}

# メインで設定したコンテナが起動する前に起動したいコンテナがある場合に設定する。
# 設定した内容は kubernetes CronJob リソースの spec.template.spec.initContainers にそのまま反映される。
initContainers: []

# Kubernetes CronJob リソースの annotaions を設定する。
# 設定した内容は kubernetes CronJob リソースの metadata.annotations にそのまま反映される。
annotations: {}
# Kubernetes CronJob リソースの labels を設定する。
# 設定した内容は kubernetes CronJob リソースの metadata.labels にそのまま反映される。
labels: {}

# Kubernetes CronJob リソースによって起動された Pod の annotaions を設定する。
# 設定した内容は kubernetes CronJob リソースの spec.template.metadata.annotations にそのまま反映される。
podAnnotations: {}

# Kubernetes CronJob リソースによって起動された Pod の labels を設定する。
# 設定した内容は kubernetes CronJob リソースの spec.template.metadata.labels にそのまま反映される。
podLabels: {}

# Pod内のコンテナにて利用するユーザー権限を設定する。
# コンテナイメージに予め設定された実行ユーザーを利用したい場合などに利用する。
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.containers.[0].securityContext にそのまま反映される。
securityContext: {}
  # - runAsUser: 0
  #   runAsGroup: 0
# Pod内のコンテナに共通で利用するユーザー権限を設定する。
# コンテナイメージに予め設定された実行ユーザーを利用したい場合などに利用する。
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.securityContext にそのまま反映される。
podSecurityContext: {}
  #   runAsUser: 0
  #   runAsGroup: 0

# Pod内のコンテナのワーキングディレクトリを指定する
# コンテナランタイム および コンテナイメージで指定されたディレクトリ以外を指定したいときに利用するl.
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.containers.[0].workingDir にそのまま反映される。
# workingDir: ""

## Podをノードへ配置する際の選択ポリシーに関する設定
# 指定されたラベルが設定されている ノード に Pod を配置する設定。
# 特定のマシンタイプのノードにPodを配置したいときなどに利用する。
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.nodeSelector にそのまま反映される。  
nodeSelector: {}
  # cloud.google.com/private-node: "true"
  # node.kubernetes.io/instance-type: a2-highgpu-2g

# 指定された内容にしたがって Pod を配置するための設定。
# nodeSelectorと比較して、Nodeに対する配置の設定について細かい設定ができたり、Pod同士をNodeに共存させる設定などが指定可能。
# ルール内の細かい設定値については Kubernetes の公式ドキュメントを参照ください。 
# - https://kubernetes.io/ja/docs/concepts/scheduling-eviction/assign-pod-node/
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.affinity にそのまま反映される。  
affinity: {}
  # # Pod の Node への配置に関する設定、nodeSelector と設定値の目的は同じだが、より細かい設定が可能。
  # nodeAffinity:
  #   # 設定されたルールを満たす Node がなければ、Pod を配置することができない設定。
  #   requiredDuringSchedulingIgnoredDuringExecution:
  #     {}
  #   # 設定されたルールに合致する Node にできる限り Pod を配置しようとする設定。見つからない場合はそれ以外の Node に Pod が配置されます。
  #   preferredDuringSchedulingIgnoredDuringExecution:
  #     {}
  # # Pod同士を同じNodeに配置するための設定。
  # # nodeAffinity と同様に requiredDuringSchedulingIgnoredDuringExecution と preferredDuringSchedulingIgnoredDuringExecution が設定可能。
  # podAffinity:
  #   {}
  # # Pod同士を異なるNodeに配置するための設定。
  # # nodeAffinity と同様に requiredDuringSchedulingIgnoredDuringExecution と preferredDuringSchedulingIgnoredDuringExecution が設定可能。
  # podAntiAffinity:
  #   {}
  
# 指定された内容にしたがって、Pod を特定の Node に配置しないための設定。
# nodeSelector、affinity.nodeAffinity との違いは Node に配置しないことに主眼を置いた設定であること。
# 予め以下のコマンドで Node に Taint という値を設定した上で、この設定項目を設定する。
# kubectl taint nodes node1 app=nonGpu:NoSchedule
# 設定した内容は Kubernetes CronJob リソースの spec.template.spec.tolerations にそのまま反映される。 
tolerations: []
  # - key: "app"
  #   operator: "Equal"
  #   value: "nonGpu"
  #   effect: "NoSchedule"

### データベースに関する設定 ###
# Google Cloud では、Pod から別途 RDBパッケージ等で構築した既存のデータベースとの接続に関する以下の設定を行う。
# - (Google Cloudのみ) Cloud SQLで作成されたデータベースに対する、アクセス権限の設定
# 上記の設定のみ実施するので、個々のデータベースへの接続はコンテナ内のアプリケーションで実装する。
# なお、AWSとAzureでは、アプリケーションでのデータベースへの接続の実装のみ必要で、こちらの項目で設定する内容はありません。
preConnectRdb: []
#    - gcp:
#       # Cloud SQLでのデータベースリソース名を設定する
#       instance: mysql-server
#       # Cloud SQLでのデータベースへの接続ポートを指定する
#       # 通常、MySQLの場合は3306、PostgreSQLの場合は5432を指定する
#       port: 3306
#       # データベースのロケーションを設定する。設定されない場合 Kubernetes クラスタと同じロケーション (global.cluster.locationの値) に設定される。
#       location: asia-northeast1

########## アクセス権限 ##########
# 作成するアプリケーションに付与する権限の設定を行います。
# 具体的には作成するCronjobリソースが使用するServiceAccountにクラウドリソースへの権限を付与します 。
# memo: 本当はベンダー共通にしたいが共通にしたときにユーザが誤解する可能性が高いためベンダーごとの個別設定にしている
auth:
  ### Account and Role settings ###
  # access for managed service APIs from pods by setting the roles field
  # Azureのみ有効
  azure:
    roles: []
    # Azureの場合、以下を参考にしてアプリーケーションに付与したい組み込みロールのIDを指定してください。スコープはsubscriptionになります。
    # https://learn.microsoft.com/ja-jp/azure/role-based-access-control/built-in-roles
    # - id: "17d1049b-9a84-46fb-8f53-869881c3d3ab"
    # - id: "f25e0fa2-a7c8-4377-a976-54943a77a395"

    # set when using a application that does not support Azure Workload Identity
    IMDSProxy: false
    # authType: wlid configure inject proxy settings for Azure Workload Identity
    authType: wlid
    # managedId を配置する resource groups that Azure resources belong. This is not needed.
    midResourceGroup:
      name: ""

  # Googlc Cloudのみ有効
  gcp:
    roles: []
    # Googlc Cloudの場合、アプリーケーションに付与したいロール名を指定してください。resourceRefで対象リソースを絞ることが可能です。
    # - name: "roles/admin"
    # - name: "roles/pubsub.reader"
    #   resourceRef:
    #     kind: PubSubTopic
    #     external: project/a

  # AWSのみ有効
  aws:
    awsManagedPolicies: []
    # AWSの場合、アプリーケーションに付与したいポリシー名を指定してください。詳細はREADMEを参照してください。
    # - name: "AmazonRDSFullAccess"
    # - name: "test-cs-policy-name"
    #   customerManaged: true
    # カスタムポリシーを指定する場合
    customerManagedPolicy: {}
    #   customerManagedPolicy:
    #     name: test-cs-policy-name
    #     actions:
    #       - action: ec2:DescribeAddresses
    #       - action: ec2:DescribeAvailabilityZones
    #     resources: # 必須。resources要素なしだとterraformでiam-policyを作成できない
    #       - resource:
    #         serviceName: eks
    #         resourceType: "*"
    #           Id: "*"
    #     create: true

  ## 以下は上級者向け設定
  # 既存のサービスアカウントを使用する、もしくは作成するサービスアカウントを追加設定したい場合に設定してください。
  # 
  serviceAccount:
    # Specifies whether a service account should be created.
    # If true, a service account will be created. Otherwise, the default is used.
    create: false
    # Annotations to add to the service account.
    # 基本的に設定不要
    annotations: {}
    # The name of the service account to use.
    # If not set and create is true, a name is generated using the fullname template.
    # name: ""


# KMSとSecret情報を連携するための設定です。
# 基本的に変更の必要はありませんが変更する場合はVAULTパッケージにて作成したsecretStoreを設定します。
secretStore:
  kind: ClusterSecretStore
  name: default
# 管理用
global:
  gcp: {}

Schema reference

properties

  • global

クラスタ内で共通的に適用される値. schema には本パッケージで参照している値のみ記載.

type

object

properties

  • vendor

ベンダー

type

string

enum

gcp, azure, aws

  • cluster

クラスター情報

type

object

properties

  • name

クラスター名

type

string

  • location

クラスターの配置場所

type

string

  • customerId

顧客ID

type

string

  • gcp

type

object

properties

  • projectId

GCP プロジェクトID

type

string

  • azure

type

object

properties

  • resourceGroups

type

object

properties

  • cluster

type

object

properties

  • name

クラスターが所属するリソースグループ名

type

string

  • aws

type

object

properties

  • managedAwsAccountId

AWS アカウントID

type

string

  • managedAwsArnPrefix

AWS アカウントの ARN プレフィックス

type

string

  • command

コンテナ起動時のコマンド設定

type

null / array

items

コンテナ起動時に指定する Command

type

string

default

null

  • restartPolicy

再実行ポリシー

type

string

enum

OnFailure, Never

default

Never

  • parallelism

Pod の同時実行数

type

integer

default

1

  • completions

Job が完了したと判断する Pod の正常終了の回数

type

integer

default

1

  • completionMode

Podの完了判定の方法の設定

type

string

enum

NonIndexed, Indexed

default

NonIndexed

  • backoffLimit

Pod の失敗の許容回数

type

integer

  • schedule

cron式形式で指定するJobの起動スケジュール

type

string

  • timeZone

Jobの起動スケジュールのタイムゾーン

type

string

default

UTC

  • concurrencyPolicy

前回スケジュールで起動したJobの処理が未完了のときの、Job の同時実行のポリシー

type

string

enum

Allow, Forbid, Replace

default

Allow

  • startingDeadlineSeconds

Job の開始時刻遅延の許容時間(秒)

type

integer

  • suspend

Jobの起動を一時的に停止する場合 true を設定する

type

boolean

default

False

  • successfulJobsHistoryLimit

成功Jobの履歴保持数

type

integer

default

1

  • failedJobsHistoryLimit

失敗Jobの履歴保持数

type

integer

default

1

  • volumeMounts

コンテナにマウントするvolume

type

array

  • volumes

コンテナに作成するvolume

type

array

  • env

環境変数

type

array

items

type

object

properties

  • name

type

string

  • value

type

string

  • image

Docker Image 名

type

object

properties

  • repository

Docker Repository

type

string

  • tag

image tag

type

string

  • pullPolicy

Image Pull Policy

type

string

enum

IfNotPresent, Always, Never

default

IfNotPresent

  • pullSecrets

Pod に適用する imagePullSecret のリスト

type

array

items

type

object

properties

  • dockerRegistryServer

Docker レジストリサーバーのURL

type

string

  • username

Docker レジストリのユーザー名

type

string

  • passwordSecret

KMS に保存されたレジストリ認証情報のキー名

type

string

  • property

KMS 内のレジストリ認証情報に対応するキー名を指定 (AWS のみ使用)

type

string

  • email

Docker レジストリユーザーの email アドレス

type

string

  • sharedMounts

Pod 内のコンテナで共有マウントするフォルダを指定

type

array

items

共有する path を指定 (全てのコンテナに同じ path が共有される)

type

string

  • mountConfigmaps

ConfigMap のマッピング設定

type

array

items

type

object

properties

  • name

データを読み込む既存のConfigmap名

type

string

  • key

ConfigMap 内のフィールドに指定するキー名

type

string

  • value

ConfigMap 内のフィールドにキー名に対応付けて格納する値(create: true の場合に必須。falseの場合には不要)

type

string

  • env

ConfigMap を環境変数としてバインドする場合に環境変数名を指定

type

string

  • mountPath

ConfigMap をファイルとしてマウントする場合にマウントするフォルダを指定。マウント先のフォルダにファイルが存在する場合全て削除される。

type

string

  • mountSecrets

Key Management Service(KMS) と kubernetes secret のマウント設定

type

array

items

type

object

properties

  • secretRef

参照する kubernetes secret の情報

type

object

  • remoteRef

参照する KMS の情報

type

object

  • env

secret を環境変数としてバインドする場合に環境変数名を指定

type

string

  • mountPath

secret をファイルとしてマウントする場合にマウントするフォルダを指定。マウント先のフォルダにファイルが存在する場合全て削除される。

type

string

  • livenessProbe

livenessProbe 設定

type

object

  • readinessProbe

readinessProbe 設定

type

object

  • initContainers

メインコンテナの起動前に処理を実行するコンテナを登録する。

type

array

items

type

object

properties

  • name

識別用の任意のコンテナ名

type

string / null

  • image

Docker Image 名

type

object

properties

  • repository

Docker Repository

type

string

  • tag

image tag

type

string

  • pullPolicy

Image Pull Policy

type

string

enum

IfNotPresent, Always, Never

default

IfNotPresent

  • workingDir

コンテナ内の作業フォルダを指定

type

string / null

default

  • securityContext

コンテナに適用される SecurityContext 設定

type

object / null

  • volumeMounts

コンテナにマウントする volume の設定

type

array / null

items

type

object

  • annotations

CronJob に付与する Annnotation を設定

type

object

  • labels

CronJob に付与する Label を設定

type

object

  • podAnnotations

CronJob が作成する Pod に付与する Annnotation を設定

type

object

  • podLabels

CronJob が作成する Pod に付与する Label を設定

type

object

  • podSecurityContext

Pod 内の全てのコンテナに適用される SecurityContext 設定

type

object

  • securityContext

コンテナに適用される SecurityContext 設定

type

object / null

  • workingDir

コンテナ内の作業フォルダを指定

type

string

default

  • nodeSelector

nodeSelectorを利用したPodを特定のノードに割り当てる設定

type

object

  • affinity

Nodeアフィニティを利用したPodを特定のノードに割り当てる設定

type

object

  • tolerations

tolerationsを利用したPodを特定のノードに割り当てない設定

type

array

  • preConnectRdb

ワークロードからマネージド RDBMS に対するアクセス設定

type

array

items

type

object

properties

  • gcp

Google Cloud ではRDBへの接続のためのアクセス権限設定が必要なので、以下の項目で設定する

type

object

properties

  • instance

接続先データベースインスタンス

type

string

  • port

接続先データベースのポート番号

type

integer

  • location

インスタンス配置先ロケーション

type

string

  • auth

type

object

properties

  • serviceAccount

type

object

properties

  • name

ServiceAccount 名。無指定の場合はリリース名と同名が設定される。

type

string

maxLength

30

minLength

6

  • create

ServiceAccount を新規作成する場合は True

type

boolean

default

False

  • annotations

ServiceAccount に適用する Annotation

type

null / object

  • gcp

Google Cloud 固有の設定

type

object

properties

  • roles

ワークロードからマネージドサービス API に対するアクセス権限の設定

type

array

items

type

object

properties

  • name

付与するロール名

type

string

  • resourceRef

(GCPのみ)特定のリソースにのみ権限を設定する場合のターゲット設定。

設定に必要なパラメータはこちらから取得する https://cloud.google.com/config-connector/docs/reference/resource-docs/iam/iampolicymember?hl=ja

type

object

properties

  • kind

権限を付与する対象のリソース種別

type

string

  • external

権限を付与する対象のリソース(対象を CNAP もしくは ConfigConnector で作成していない場合 External Reference Formants を基に設定する。)

type

string

  • name

権限を付与する対象に対応するマニフェスト名(external と排他)

type

string

  • namespace

権限を付与する対象に対応するマニフェストの Namespace(external と排他)

type

string

  • azure

Azure 固有の設定。

type

object

properties

  • roles

type

array

items

ワークロードからマネージドサービス API に対するアクセス権限の設定

type

object

properties

  • id

付与するロール

type

string

  • assignName

assignName

type

string

  • IMDSProxy

Azure Workload Identity に対応していないクライアントを利用する際に設定する(非推奨)

https://learn.microsoft.com/ja-jp/azure/aks/workload-identity-migrate-from-pod-identity#deploy-the-workload-with-migration-sidecar

type

boolean

default

False

  • authType

Azure 認証タイプの設定。wlid: Workload Identity, aad: AAD Pod Binding

type

string

default

wlid

  • midResourceGroup

Azure Managed IDを所属させるリソースグループの設定。通常はデフォルト設定(Namespace名)が適用されるため、指定する必要は無い。

type

object

properties

  • name

リソースグループ名

type

string

default

  • aws

AWS 固有の設定

type

object

properties

  • policies

ワークロードからマネージドサービス API に対するアクセス権限の設定

type

array

items

type

object

properties

  • awsManagedPolicies

付与するポリシー名リスト

type

array

items

type

object

properties

  • name

付与するポリシー名

type

string

  • customerManaged

付与するポリシーがカスタマ管理の IAM ポリシーの場合true、AWS 管理の IAM ポリシーの場合falseを設定

type

boolean

default

False

  • customerManagedPolicy

作成または連携するカスタマーポリシーの指定 serviceAccount.create: trueの場合に必須

type

object

properties

  • name

カスタマー管理ポリシーの名前

type

string

  • create

カスタマー管理ポリシーを作成する場合は true、既存のカスタマー管理ポリシーをロールに付与するのみの場合は false を指定。

type

boolean

  • actions

マニフェスト削除時にリソースを保持 (create:trueの場合のみ必須)

type

array

items

type

object

properties

  • action

許可するアクションを定義

type

string

  • resources

arn:aws:{serviceName}:ap-northeast-1:accountId:{resourceType}:{Id} (create:trueの場合のみ必須)

type

array

items

type

object

properties

  • serviceName

サービス名

type

string

  • resourceType

アクセスを制限するリソースのタイプ

type

string

  • Id

リクエスト条件を指定

type

string

  • resourceRef

(GCPのみ)特定のリソースにのみ権限を設定する場合のターゲット設定。

設定に必要なパラメータはこちらから取得する https://cloud.google.com/config-connector/docs/reference/resource-docs/iam/iampolicymember?hl=ja

type

object

properties

  • kind

権限を付与する対象のリソース種別

type

string

  • external

権限を付与する対象のリソース(対象を CNAP もしくは ConfigConnector で作成していない場合 External Reference Formants を基に設定する。)

type

string

  • name

権限を付与する対象に対応するマニフェスト名(external と排他)

type

string

  • namespace

権限を付与する対象に対応するマニフェストの Namespace(external と排他)

type

string

  • secretStore

参照する SecretStore の指定

type

object

properties

  • name

SecretStore の名前

type

string

default

default

  • kind

SecretStore の種類

type

string

enum

SecretStore, ClusterSecretStore

default

ClusterSecretStore

Example

Example1. Azure Cronjob作成

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: cronjob-azure
  namespace: staging
spec:
  chart:
    name: cronjob
    version: <latest>
  settings:
    command:
      - sleep
      - "1000"
    schedule: "*/10 * * * *"
    timeZone: "UTC"
    concurrencyPolicy: Forbid
    image:
      repository: nginx
      pullPolicy: IfNotPresent
      tag: "1.22.0"
    auth:
      azure:
        roles:
          - id: "17d1049b-9a84-46fb-8f53-869881c3d3ab"
          - id: "f25e0fa2-a7c8-4377-a976-54943a77a395"
      serviceAccount:
        name: cronjobserviceaccount
        create: true

Example2. Google Cloud Cronjob作成

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: cronjob-gcp
  namespace: staging
spec:
  chart:
    name: cronjob
    version: <latest>
  settings:
    command:
      - sleep
      - "1000"
    schedule: "*/10 * * * *"
    timeZone: "UTC"
    concurrencyPolicy: Forbid
    image:
      repository: nginx
      pullPolicy: IfNotPresent
      tag: "1.22.0"
    preConnectRdb:
      - gcp:
          instance: mysqldb
          port: 3306
    auth:
      gcp:
        roles:
          - name: "roles/storage.admin"
      serviceAccount:
        name: cronjobserviceaccount
        create: true

Example3. AWS Cronjob作成

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: cronjob-aws
  namespace: staging
spec:
  chart:
    name: cronjob
    version: <latest>
  settings:
    command:
      - sleep
      - "1000"
    schedule: "*/10 * * * *"
    timeZone: "UTC"
    concurrencyPolicy: Forbid
    image:
      repository: nginx
      pullPolicy: IfNotPresent
      tag: "1.22.0"
    auth:
      aws:
        customerManagedPolicy:
          name: test-cs-policy-name
          actions:
            - action: ec2:DescribeAddresses
            - action: ec2:DescribeAvailabilityZones
          resources:
            - resource:
              serviceName: eks
              resourceType: "*"
              Id: "*"
        awsManagedPolicies:
          - name: "AmazonRDSFullAccess"
          - name: "test-cs-policy-name"
            customerManaged: true

Change Log

1.1.19

Released on 2025-08-07

What's Changed

パッケージ内で利用しているライブラリの更新を行いました。

1.1.18

Released on 2025-05-15

What's Changed

パッケージ内で利用しているライブラリの更新を行いました。

1.1.17

Released on 2025-04-23

What's Changed

  • workload identity が有効にならない場合がある問題を修正