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 |
|||||||||
|
クラスタ内で共通的に適用される値. schema には本パッケージで参照している値のみ記載. |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
ベンダー |
||||||||
type |
string |
||||||||
enum |
gcp, azure, aws |
||||||||
|
クラスター情報 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
クラスター名 |
||||||||
type |
string |
||||||||
|
クラスターの配置場所 |
||||||||
type |
string |
||||||||
|
顧客ID |
||||||||
type |
string |
||||||||
|
|||||||||
type |
object |
||||||||
properties |
|||||||||
|
GCP プロジェクトID |
||||||||
type |
string |
||||||||
|
|||||||||
type |
object |
||||||||
properties |
|||||||||
|
|||||||||
type |
object |
||||||||
properties |
|||||||||
|
|||||||||
type |
object |
||||||||
properties |
|||||||||
|
クラスターが所属するリソースグループ名 |
||||||||
type |
string |
||||||||
|
|||||||||
type |
object |
||||||||
properties |
|||||||||
|
AWS アカウントID |
||||||||
type |
string |
||||||||
|
AWS アカウントの ARN プレフィックス |
||||||||
type |
string |
||||||||
|
コンテナ起動時のコマンド設定 |
||||||||
type |
null / array |
||||||||
items |
コンテナ起動時に指定する Command |
||||||||
type |
string |
||||||||
default |
null |
||||||||
|
再実行ポリシー |
||||||||
type |
string |
||||||||
enum |
OnFailure, Never |
||||||||
default |
Never |
||||||||
|
Pod の同時実行数 |
||||||||
type |
integer |
||||||||
default |
1 |
||||||||
|
Job が完了したと判断する Pod の正常終了の回数 |
||||||||
type |
integer |
||||||||
default |
1 |
||||||||
|
Podの完了判定の方法の設定 |
||||||||
type |
string |
||||||||
enum |
NonIndexed, Indexed |
||||||||
default |
NonIndexed |
||||||||
|
Pod の失敗の許容回数 |
||||||||
type |
integer |
||||||||
|
cron式形式で指定するJobの起動スケジュール |
||||||||
type |
string |
||||||||
|
Jobの起動スケジュールのタイムゾーン |
||||||||
type |
string |
||||||||
default |
UTC |
||||||||
|
前回スケジュールで起動したJobの処理が未完了のときの、Job の同時実行のポリシー |
||||||||
type |
string |
||||||||
enum |
Allow, Forbid, Replace |
||||||||
default |
Allow |
||||||||
|
Job の開始時刻遅延の許容時間(秒) |
||||||||
type |
integer |
||||||||
|
Jobの起動を一時的に停止する場合 true を設定する |
||||||||
type |
boolean |
||||||||
default |
False |
||||||||
|
成功Jobの履歴保持数 |
||||||||
type |
integer |
||||||||
default |
1 |
||||||||
|
失敗Jobの履歴保持数 |
||||||||
type |
integer |
||||||||
default |
1 |
||||||||
|
コンテナにマウントするvolume |
||||||||
type |
array |
||||||||
|
コンテナに作成するvolume |
||||||||
type |
array |
||||||||
|
環境変数 |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
type |
string |
|||||||
|
type |
string |
|||||||
|
Docker Image 名 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
Docker Repository |
||||||||
type |
string |
||||||||
|
image tag |
||||||||
type |
string |
||||||||
|
Image Pull Policy |
||||||||
type |
string |
||||||||
enum |
IfNotPresent, Always, Never |
||||||||
default |
IfNotPresent |
||||||||
|
Pod に適用する imagePullSecret のリスト |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
Docker レジストリサーバーのURL |
||||||||
type |
string |
||||||||
|
Docker レジストリのユーザー名 |
||||||||
type |
string |
||||||||
|
KMS に保存されたレジストリ認証情報のキー名 |
||||||||
type |
string |
||||||||
|
KMS 内のレジストリ認証情報に対応するキー名を指定 (AWS のみ使用) |
||||||||
type |
string |
||||||||
|
Docker レジストリユーザーの email アドレス |
||||||||
type |
string |
||||||||
|
Pod 内のコンテナで共有マウントするフォルダを指定 |
||||||||
type |
array |
||||||||
items |
共有する path を指定 (全てのコンテナに同じ path が共有される) |
||||||||
type |
string |
||||||||
|
ConfigMap のマッピング設定 |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
データを読み込む既存のConfigmap名 |
||||||||
type |
string |
||||||||
|
ConfigMap 内のフィールドに指定するキー名 |
||||||||
type |
string |
||||||||
|
ConfigMap 内のフィールドにキー名に対応付けて格納する値(create: true の場合に必須。falseの場合には不要) |
||||||||
type |
string |
||||||||
|
ConfigMap を環境変数としてバインドする場合に環境変数名を指定 |
||||||||
type |
string |
||||||||
|
ConfigMap をファイルとしてマウントする場合にマウントするフォルダを指定。マウント先のフォルダにファイルが存在する場合全て削除される。 |
||||||||
type |
string |
||||||||
|
Key Management Service(KMS) と kubernetes secret のマウント設定 |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
参照する kubernetes secret の情報 |
||||||||
type |
object |
||||||||
|
参照する KMS の情報 |
||||||||
type |
object |
||||||||
|
secret を環境変数としてバインドする場合に環境変数名を指定 |
||||||||
type |
string |
||||||||
|
secret をファイルとしてマウントする場合にマウントするフォルダを指定。マウント先のフォルダにファイルが存在する場合全て削除される。 |
||||||||
type |
string |
||||||||
|
livenessProbe 設定 |
||||||||
type |
object |
||||||||
|
readinessProbe 設定 |
||||||||
type |
object |
||||||||
|
メインコンテナの起動前に処理を実行するコンテナを登録する。 |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
識別用の任意のコンテナ名 |
||||||||
type |
string / null |
||||||||
|
Docker Image 名 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
Docker Repository |
||||||||
type |
string |
||||||||
|
image tag |
||||||||
type |
string |
||||||||
|
Image Pull Policy |
||||||||
type |
string |
||||||||
enum |
IfNotPresent, Always, Never |
||||||||
default |
IfNotPresent |
||||||||
|
コンテナ内の作業フォルダを指定 |
||||||||
type |
string / null |
||||||||
default |
|||||||||
|
コンテナに適用される SecurityContext 設定 |
||||||||
type |
object / null |
||||||||
|
コンテナにマウントする volume の設定 |
||||||||
type |
array / null |
||||||||
items |
type |
object |
|||||||
|
CronJob に付与する Annnotation を設定 |
||||||||
type |
object |
||||||||
|
CronJob に付与する Label を設定 |
||||||||
type |
object |
||||||||
|
CronJob が作成する Pod に付与する Annnotation を設定 |
||||||||
type |
object |
||||||||
|
CronJob が作成する Pod に付与する Label を設定 |
||||||||
type |
object |
||||||||
|
Pod 内の全てのコンテナに適用される SecurityContext 設定 |
||||||||
type |
object |
||||||||
|
コンテナに適用される SecurityContext 設定 |
||||||||
type |
object / null |
||||||||
|
コンテナ内の作業フォルダを指定 |
||||||||
type |
string |
||||||||
default |
|||||||||
|
nodeSelectorを利用したPodを特定のノードに割り当てる設定 |
||||||||
type |
object |
||||||||
|
Nodeアフィニティを利用したPodを特定のノードに割り当てる設定 |
||||||||
type |
object |
||||||||
|
tolerationsを利用したPodを特定のノードに割り当てない設定 |
||||||||
type |
array |
||||||||
|
ワークロードからマネージド RDBMS に対するアクセス設定 |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
Google Cloud ではRDBへの接続のためのアクセス権限設定が必要なので、以下の項目で設定する |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
接続先データベースインスタンス |
||||||||
type |
string |
||||||||
|
接続先データベースのポート番号 |
||||||||
type |
integer |
||||||||
|
インスタンス配置先ロケーション |
||||||||
type |
string |
||||||||
|
type |
object |
|||||||
properties |
|||||||||
|
type |
object |
|||||||
properties |
|||||||||
|
ServiceAccount 名。無指定の場合はリリース名と同名が設定される。 |
||||||||
type |
string |
||||||||
maxLength |
30 |
||||||||
minLength |
6 |
||||||||
|
ServiceAccount を新規作成する場合は True |
||||||||
type |
boolean |
||||||||
default |
False |
||||||||
|
ServiceAccount に適用する Annotation |
||||||||
type |
null / object |
||||||||
|
Google Cloud 固有の設定 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
ワークロードからマネージドサービス API に対するアクセス権限の設定 |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
付与するロール名 |
||||||||
type |
string |
||||||||
|
|
||||||||
type |
object |
||||||||
properties |
|||||||||
|
権限を付与する対象のリソース種別 |
||||||||
type |
string |
||||||||
|
権限を付与する対象のリソース(対象を CNAP もしくは ConfigConnector で作成していない場合 External Reference Formants を基に設定する。) |
||||||||
type |
string |
||||||||
|
権限を付与する対象に対応するマニフェスト名(external と排他) |
||||||||
type |
string |
||||||||
|
権限を付与する対象に対応するマニフェストの Namespace(external と排他) |
||||||||
type |
string |
||||||||
|
Azure 固有の設定。 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
type |
array |
|||||||
items |
ワークロードからマネージドサービス API に対するアクセス権限の設定 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
付与するロール |
||||||||
type |
string |
||||||||
|
assignName |
||||||||
type |
string |
||||||||
|
|
||||||||
type |
boolean |
||||||||
default |
False |
||||||||
|
Azure 認証タイプの設定。wlid: Workload Identity, aad: AAD Pod Binding |
||||||||
type |
string |
||||||||
default |
wlid |
||||||||
|
Azure Managed IDを所属させるリソースグループの設定。通常はデフォルト設定(Namespace名)が適用されるため、指定する必要は無い。 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
リソースグループ名 |
||||||||
type |
string |
||||||||
default |
|||||||||
|
AWS 固有の設定 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
ワークロードからマネージドサービス API に対するアクセス権限の設定 |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
付与するポリシー名リスト |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
付与するポリシー名 |
||||||||
type |
string |
||||||||
|
付与するポリシーがカスタマ管理の IAM ポリシーの場合true、AWS 管理の IAM ポリシーの場合falseを設定 |
||||||||
type |
boolean |
||||||||
default |
False |
||||||||
|
作成または連携するカスタマーポリシーの指定 serviceAccount.create: trueの場合に必須 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
カスタマー管理ポリシーの名前 |
||||||||
type |
string |
||||||||
|
カスタマー管理ポリシーを作成する場合は true、既存のカスタマー管理ポリシーをロールに付与するのみの場合は false を指定。 |
||||||||
type |
boolean |
||||||||
|
マニフェスト削除時にリソースを保持 (create:trueの場合のみ必須) |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
許可するアクションを定義 |
||||||||
type |
string |
||||||||
|
arn:aws:{serviceName}:ap-northeast-1:accountId:{resourceType}:{Id} (create:trueの場合のみ必須) |
||||||||
type |
array |
||||||||
items |
type |
object |
|||||||
properties |
|||||||||
|
サービス名 |
||||||||
type |
string |
||||||||
|
アクセスを制限するリソースのタイプ |
||||||||
type |
string |
||||||||
|
リクエスト条件を指定 |
||||||||
type |
string |
||||||||
|
|
||||||||
type |
object |
||||||||
properties |
|||||||||
|
権限を付与する対象のリソース種別 |
||||||||
type |
string |
||||||||
|
権限を付与する対象のリソース(対象を CNAP もしくは ConfigConnector で作成していない場合 External Reference Formants を基に設定する。) |
||||||||
type |
string |
||||||||
|
権限を付与する対象に対応するマニフェスト名(external と排他) |
||||||||
type |
string |
||||||||
|
権限を付与する対象に対応するマニフェストの Namespace(external と排他) |
||||||||
type |
string |
||||||||
|
参照する SecretStore の指定 |
||||||||
type |
object |
||||||||
properties |
|||||||||
|
SecretStore の名前 |
||||||||
type |
string |
||||||||
default |
default |
||||||||
|
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 が有効にならない場合がある問題を修正