BASIC-DEPLOYMENT

Kubernetes Deployment を利用した コンテナイメージのオーケストレーション機能を提供します。

通常 kubernetes ネイティブリソースである Deployment だけではアプリケーションを外部に公開出来ませんが、 本パッケージではネイティブリソースである Deploymentを拡張しており、外部公開に必要となる基本的なオプション (ネットワーク設定、データベースへの接続設定、暗号化キーストレージからシークレットの取得、ボリュームのマウントなど) を一括で設定可能としています。

設定値

Chart

basic-deployment

対応サービス

パッケージの機能

本パッケージでは、 Deployment の全ての機能に加えて以下の簡易設定機能及び、依存関係にある追加リソースの自動作成を行います。

  • デプロイ戦略による自動デリバリ機能の提供
    • 以下の2種類のデプロイ戦略による自動デリバリの機能を提供します。
      • Blue Green Deployment

      • Canary Deployment

  • サービスの公開範囲の設定機能
    • アプリケーションの外部公開・内部公開・非公開 の設定を自動化します。

    • 外部公開する際のルーティング設定、マネージドDNSサービスへのレコード登録、TLSキーの発行処理を自動化します。

  • ルーティング設定
    • パスルーティング・外部サービスへのルーティングに対応します。

  • ConfigMap/Secretリソースに関する設定
    • 各クラウドの Key Management System (KMS) からの Secretリソース を作成します。

    • ConfigMap/Secretリソースの環境変数への設定、もしくは任意のパスへマウントを簡易化した形で設定できます。

  • 共有マウント設定
    • 事前設定コンテナとメインコンテナで共有フォルダを自動的に作成して連携します。

  • プライベートなコンテナレジストリへのアクセス設定機能
    • プライベートなコンテナレジストリへのアクセス設定機能 Image Pull Secret の設定を行います。

  • アプリケーションで利用するコンテナイメージの自動更新
    • 設定した更新ポリシーに従って、アプリケーションで利用するコンテナイメージの自動更新を行います。

  • アカウント作成とロール設定
    • Kubernetes内のアカウントとクラウドサービスのIAMのロール・ポリシー設定との紐づけを自動的に行います。

  • データベースアクセスの事前準備設定
    • 疎通確認および必要な権限付与を自動的に行います。

  • オートスケール
    • コンテナに割り合てる、CPU とメモリの設定および起動するPod数の自動スケール設定を行います。

  • Prometheusメトリクスの開示
    • クラスタ内のPrometheusに対して、CPU、メモリなどの基礎的なメトリクス およびアプリケーションが独自に開示したメトリクスを自動収集する設定を行います。

上記に記載した設定以外の Deployment リソースの設定も可能です。詳細は values.yaml に記載例をご参照ください。

以下の章では、本パッケージでサポートしている機能のそれぞれの設定方法について説明します。

デプロイ戦略による自動デリバリ機能の提供

旧環境と新環境が同時に存在する環境を構築し、ルーティングの制御によってトラフィックを切り替え、ダウンタイム無しで環境を切り替えることが可能です。

Blue Green Deployment

progressiveDelivery.enabledtrue にして progressiveDelivery.strategyblueGreen を指定することで、更新予定ワークロードに対して、 疎通確認とリクエストの正常確認を10分間行い、成功した場合にトラフィックの切り替えを行います。 失敗した場合、トラフィックの切り替えは行われません。

実行するためには最低限疎通確認用のパス( progressiveDelivery.endpoints.accessTests ) もしくは負荷テスト用のパス ( progressiveDelivery.endpoints.loadTests )の いずれかを設定する必要があります。

Canary Deployment

progressiveDelivery.enabledtrue にして progressiveDelivery.strategycanary を指定することで、更新予定ワークロードに対して、徐々にトラフィックを切り変えていくことができます。

設定条件は blueGreen と同じですが、デフォルト設定では最大 50% のトラフィックが新たなワークロードに振り向けられます。

ネットワーク設定

設定された値に基づいて、アプリケーションのネットワークアクセスについて、 スタンドアロン(非公開)・クラスタネットワーク(内部公開)・インターネットアクセス(外部公開) の設定を自動化します。

ネットワークアクセスのコントロールに対応して、 Service や その他必要なリソースを自動的に作成します。

Service 名は <APPLICATION_NAME>-basic-deployment になります。

警告

Port 設定を変更した場合、 livenessProbe readinessProbe の設定をそれに合わせて変更します。

非公開(スタンドアロン)

作成された Pod に対してクラスタ内外問わず、一切の外部からの接続を受けつけない設定パターン。

network:
  gatewayName: ""

network.gatewayName に空文字を設定することで、 Gateway を利用した外部からのルーティングが行なわれなくなります。 さらに、 service の設定も行わないことで Pod にアクセスするための Service が作成されなくなり、クラスタ内でのアクセスも受け付けなくなります。

クラスタネットワーク(内部公開)

クラスタ内ネットワークからの http アクセスのみ受けつけるパターン。

network:
  gatewayName: ""
  service:
    ports:
    - name: http
      containerPort: 8080
      servicePort: 80

network.gatewayName に空文字を設定することで、 Gateway を利用した外部からのルーティングが行なわれなくなります。 network.service.ports の設定で service <name>-basic-deployment.svc.cluster.local の 80 番ポートで受け付けたリクエストを Pod の 8080 番ポートに転送します。

インターネットアクセス(外部公開)

クラスタ内及びインターネットからの http アクセスを受け付けるパターン。

network:
  domain: example.com
  service:
    ports:
    - name: http
      containerPort: 8080
      servicePort: 80

network.domain に値を設定することで、指定したドメインへのリクエストを Service に転送します。 Service に転送されたリクエストは前述のクラスタネットワークと同じように処理されます。

上記の設定を行うことで、内部的に以下の機能を利用して、外部公開の設定がなされます。 * Virtual Serviceに設定されたFQDNを自動取得しDNSレコードをマネージドDNSサービスへの登録します。 * Cert Managerを経由してTLSのキーを発行します。

上記の設定では、 network.domain 宛のリクエストとデフォルト Service ( <name>-basic-deployment.svc.cluster.local ) 宛のリクエストが デフォルト Service に転送されます。

IPアドレスを直接指定したアクセスを受け付ける場合

IPアドレスを直接指定したリクエストをルーティングしたい特殊なケースでは、 network.domain"'*' または '"*"' を指定した上で、 network.gatewayName に 独自に作成した gateway を指定し、 gateway にてルーティングを制御する。

警告

network.domain"'*' または '"*"' を指定した場合、 他の Deployment アプリケーションでの network.domain 設定によるルーティングが無効になります。

ルーティング設定

http によるアクセスに関しては、routes を定義することによってルーティング設定を行なうことができます。 network.routes はリスト形式のため、複数のルーティングパターンを登録することができます。

network.routes を設定していない場合は、Service に宛てた全てのリクエストがデフォルトの Service に転送されます。

パスによるルーティング

特定のパスに対するリクエストのみを受けつけたい場合は、以下のように match を指定します。

network:
  routes:
  - match:
    - uri:
        prefix: /apiv1
    - uri:
        prefix: /apiv1beta1
    rewrite:
      uri: /

この場合、 path の prefix に /apiv1/apiv1beta1 が設定されたリクエストのみデフォルトの Service に転送します。 rewrite を設定することで転送する際に、 prefix で指定した path を / に書き変えています。 そのまま転送したい場合には、rewrite の設定は不要です。

Header 等の他の条件によるルーティングを行いたい場合は、 HTTPMatchRequest を参照して match 条件を設定します。

外部サービスへの転送

デフォルトの Service ではなく他の Service にリクエストを転送したい場合は、 network.routes[].services で転送先の Service を指定します。

network:
  routes:
  - services:
    - name: other-service
    match:
    - uri:
        prefix: /apiv1
    - uri:
        prefix: /apiv1beta1
    rewrite:
      uri: /

この場合、 /apiv1/apiv1beta1 prefix を持つリクエストは、 Service other-service.svc.cluster.local に転送されます。 転送先の Service は クラスタネットワーク(内部公開) の設定をしておきます。

ConfigMap/Secretの自動マウント

  • Key Management System (KMS) からの Secretリソース を作成します

  • ConfigMap/Secretリソースの環境変数への設定、もしくは任意のパスへマウントします

なお、External Secret Operator(ESO) がデフォルトで有効となっているため、Secretリソースの作成は自動で行うことが可能です。 (ExternalSecretOperator: Key Management System (KMS)を参照し、Secretリソースを自動で作成する機能)

以下はConfigMapをマウントする例です。 既存の ConfigMap である env-config 内の samplekey という key に対応する値が コンテナ の /var/www2/samplekey というパスにマウントされ、環境変数 ENV_CONFIGMAP にも設定されます。 また、マウント時のアクセス権限の設定も実施できます。デフォルトのアクセス権限は 0644 になります。

mountConfigmaps:
- name: env-config
  key: samplekey
  mountPath: /var/www2
  mode: "0755"
  env: ENV_CONFIGMAP

以下は、Kubernetes Secret リソースをマウントする例です。 既存の Kubernetes Secrets である secret-env 内の test という key に対応する値が、 コンテナ の /var/www2/test というパスにマウントされ、環境変数 ENV_SECRET にも設定されます。 また、マウント時のアクセス権限の設定も実施できます。デフォルトのアクセス権限は 0644 になります。

mountSecrets:
- secretRef:
    name: secret-env
    key: test
  mountPath: /var/www2
  mode: "0755"
  env: ENV_SECRET

以下は、KMS に設定された値をマウントする例です。 KMS にて test2 という key で登録された値が、 コンテナ の /var/www2/test2 というパスにマウントされ、環境変数 ENV_KMS_SECRET にも設定されます。 また、マウント時のアクセス権限の設定も実施できます。デフォルトのアクセス権限は 0644 になります。

mountSecrets:
- remoteRef:
    key: test2
    # property: testkey # AWSではキー名の他にプロパティの指定が必要
  mountPath: /var/www2
  mode: "0600"
  env: ENV_KMS_SECRET

SecretStore

本パッケージは ESO の SecretStore 及び ClusterSecretStore を経由して KMS からシークレット情報を取得します。 CNAP クラスタでは default ClusterSecretStore がクラスタ作成時に登録されます。 values の secretStore にはデフォルトでこれが設定されているため、すぐにシークレットを使用することができます。

アプリケーション専用の SecretStore や ClusterSecretStore を作成したい場合は、VAULT パッケージを使用することで、 簡単に一連の設定を行なうことができます。

共有マウント

sharedMounts を設定することで、 ConfigMap/Secretの自動マウント で実行する全てのコンテナとメインのコンテナに共有のフォルダを 設定することができます。 これによって、事前処理で作成したデータをメインコンテナに引き継ぐことができます。

プライベートなコンテナレジストリへのアクセス設定機能

認証のかかったプライベート Docker リポジトリから Docker イメージを取得する場合は、imagePullSecret を利用します。

利用にあたっては、Docker レジストリの認証情報を事前に KMS に登録しておき、 values の image.pullSecrets.[] に利用する imagePullSecret の設定を列挙します。 これによって、自動的にクラスタ上に secret が作成され、Pod が参照するように設定されます。

なお、 image.pullSecrets.[].passwordSecret の値は作成される Kubernetes リソースの名前に付与されるため、 英小文字で始まり、英小文字・ハイフン・ピリオドのみを含むように設定してください。

重要

EKS では同一アカウント GKE では同一プロジェクト内に作成されたプライベートコンテナレジストリに対するアクセス権は 自動的に付与されるため imagePullSecret の設定を行う必要はありません。

アプリケーションで利用するコンテナイメージの自動更新

アプリケーションで利用するコンテナイメージのタグを自動的に更新することが可能です。

前提条件

本機能を使用するためには、Deploykeyをリポジトリに追加するときに書き込みアクセス権を付与しておく必要があります。

GitHubでDeploykeyに書き込みアクセス権が設定されているかどうかを確認するためには、該当のリポジトリより、 Settings -> Deploy keys を押下し、以下の図の赤枠のように「Read/write」となっていれば問題ありません。

../_images/deployment-github-deploykey.png

「Read-only」となっていた場合、deploykeyを一度削除し、再登録する必要があります。 deploykeyが削除されると一時的にGitRepositoryとの連携が切断されますが、アプリケーションへの影響はありません。 deploykeyの登録方法は、チュートリアルのDeploykeyの登録の章 を参照してください。

利用方法

利用にあたっては、 image.autoUpdate に ユーザー設定用リポジトリ、イメージのリポジトリ、タグの更新ポリシーを設定した上で、 image.tag{"$imagepolicy": "[metadata.namespaceの値]:[image.repositoryのイメージ名]-[metadata.nameの値]-application:tag"} という形式で自動更新のポリシーを指定するコメントを記載します。

この設定を行うことで、ユーザー設定用リポジトリ内の Application マニフェストが自動的に編集され、アプリケーションで利用されるイメージのタグを更新することが可能です。

ここで、[image.repositoryのイメージ名]に入力する値はイメージ名のみとすることに注意してください。

以下は、 metadata.name: customer-app , metadata.namespace: staging , image.repository: path/to/sample-img とした場合のコメントの記述例です。

image:
  tag: "1.0.0" # {"$imagepolicy": "staging:sample-img-customer-app-application:tag"}

環境ごとに違う自動更新のポリシーを適用する方法

各環境(開発・検証・本番)ごとに異なる自動更新のポリシーを、以下の設定を利用して適用することができます。 以下でいくつかの自動更新のポリシーの例を示します。

以下の例は開発環境向けのポリシーの一例になります。 メジャー・マイナー・パッチ・プレリリース全てのバージョンの最新のバージョンになるよう自動更新します。

image:
  autoUpdate:
    imagePolicy:
      policy:
        semver:
          range: x-alpha

以下の例は検証環境向けのポリシーの一例になります。 メジャー・マイナー・パッチの全てのバージョン、およびプレリリースバージョンのうちrcバージョンのみを対象として、最新のバージョンになるよう自動更新します。

image:
  autoUpdate:
    imagePolicy:
      policy:
        semver:
          range: x-alpha
      filter:
        inclusionPattern: '.*-rc.*'

以下の例は本番環境向けのポリシーの一例になります。 パッチバージョンに限定してバージョンを自動更新します。 メジャー・マイナーバージョンのアップデート時には、 image.autoUpdate.imagePolicy.policy.semver を 1.0.x から 1.1.x や 2.0.x に手動で更新します。

image:
  autoUpdate:
    imagePolicy:
      policy:
        semver:
          range: 1.0.x

また、各環境ごとにパッチファイル等利用してマニフェストを分割して作成している場合、 更新対象となるマニフェストが配置されているパスを image.autoUpdate.userRepository.path にて指定します。

プライベートなコンテナレジストリを利用した自動更新

コンテナイメージの自動更新を行うためには、コンテナイメージをホストするコンテナレジストリへのアクセス権限の 設定を行う必要があります。 プライベートなコンテナレジストリへのアクセス設定機能 を行っている場合、コンテナレジストリへのアクセスは、この imagePullSecret を利用して行なわれます。 imagePullSecret が設定されていない場合は、CNAP のデフォルト設定によるイメージバージョン更新情報の取得を試みます。

CNAP はデフォルトで以下のコンテナレジストリに対して、自動更新機能にリードオンリーのアクセス権を付与します。

  • AWS: 同一アカウント内に作成されたコンテナレジストリ

  • Azure: 同一サブスクリプション内に作成されたコンテナレジストリ

  • Google: 同一プロジェクト内に作成されたコンテナレジストリ

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

本パッケージをインストールすると、デフォルトでワークロードに割り当てられる専用のアカウントが発行されます。 このアカウントにクラウドサービスのロールを付与することで、コンテナ内のプロセスで個別の認証の手続を行うことなく、 任意のクラウドサービスにアクセスすることができるようになります。

  • マネージドサービスアカウントの作成

  • マネージドサービスアカウントに対するロールの付与

  • コンテナからマネージドサービスアカウントに付与された権限を使用する設定

これらのリソースは Pod から利用することを想定して、作成したリソースを適切に適用できるように構成されます。 各ステップで使用するリソースは既存のものを利用、もしくは新規作成どちらも可能です。

重要

auth.serviceAccount.createfalse の場合、アカウントは新規発行されず、指定された既存のアカウントを使用します。 既存のアカウントを指定した場合、設定の重複を避けるため本パッケージではロールの付与を行いません。 このため、既存のアカウントを利用する場合は個別にロール設定をする必要があります。

GCP ロール設定

auth.gcp.roles[].name に指定するロール名は GCPロールのページ から適切なロール(roles/XXXX)を探して適用します。

ストレージバケット等の特定のリソースにのみ権限を付与したい場合は auth.gcp.roles[].resourceRefターゲットリソース を指定します。

auth:
  gcp:
    roles:
      - name: roles/redis.editor
      - name: roles/storage.objectAdmin
    resourceRef:
      kind: StorageBucket
      external: example-storage-bucket

Azure ロール設定

auth.azure.roles[].id に指定するロールidは Azureロールのページ から適切なロール id を探して適用します。

auth:
  azure:
    roles:
      - id: "17d1049b-9a84-46fb-8f53-869881c3d3ab"
      - id: "f25e0fa2-a7c8-4377-a976-54943a77a395"

Tip

コンテナでaz cli を使用する場合、以下のコマンドでAzureログインをしてください。 az login --federated-token "$(cat $AZURE_FEDERATED_TOKEN_FILE)" --service-principal -u $AZURE_CLIENT_ID -t $AZURE_TENANT_ID

AWS ロール設定

  • AWS 管理のポリシーを適用する場合

AWS 管理の IAM ポリシーを設定したい場合は auth.aws.awsManagedPolicies[] に対し、 ポリシー arn の arn:aws:iam::aws:policy/[NAME] NAME 部分を設定します。

auth:
  aws:
    awsManagedPolicies:
    - name: AmazonRDSReadOnlyAccess
  • 既存のカスタマー管理のポリシーを適用する場合

既存のカスタマー管理の IAM ポリシーを設定したい場合は、 auth.aws.customerManagedPolicy.nameauth.aws.awsManagedPolicies[].name に、 ポリシー arn の arn:aws:iam::111122223333:policy/[NAME] NAME 部分を設定します。 また、 auth.aws.awsManagedPolicies[].customerManagedtrue を、 auth.aws.customerManagedPolicy.createfalse を設定します。

auth:
  aws:
    awsManagedPolicies:
    - name: test-cs-policy-name
      customerManaged: true
    customerManagedPolicy:
      name: test-cs-policy-name
      create: false
  • 新規にカスタマー管理のポリシーを作成して適用する場合

新規にカスタマー管理のポリシーを作成して適用する場合も auth.aws.customerManagedPolicy.nameauth.aws.awsManagedPolicies[].name に、 ポリシー arn の arn:aws:iam::111122223333:policy/[NAME] NAME 部分を設定します。 また、 auth.aws.awsManagedPolicies[].customerManagedtrue を、 auth.aws.customerManagedPolicy.createtrue を設定してください。 これにより、 auth.aws.customerManagedPolicy.actions , auth.aws.customerManagedPolicy.resources に設定した値に基づいて新規に作成したポリシーが適用されます。

auth:
  aws:
    awsManagedPolicies:
    - name: test-cs-policy-name
      customerManaged: true
    customerManagedPolicy:
      name: test-cs-policy-name
      actions:
         - action: ec2:DescribeAddresses
         - action: ec2:DescribeAvailabilityZones
      resources:
         - resource:
            serviceName: eks
            resourceType: "*"
            Id: "*"
      create: true

AWS IRSA と IAM ポリシーの詳細については、 ロールとサービスアカウントの設定 を参照してください。

データベースアクセス

クラウドのマネージド RDBMS (PostgreSQL, MySQL) を利用する場合は preConnectRdb フィールドを設定することによって、 データベースとの接続に関する以下の設定を行うことができます。

  • データベースへの疎通確認の実施

  • (Google Cloudのみ) Cloud SQLで作成されたデータベースに対する、アクセス権限の設定

Google Cloudでは データベース利用時にロールの設定が必要ですが、 これによって適切なロールがワークロードに付与されるため、 rdb に関する アカウント作成とロール設定 を行なう必要はありません。

設定されるのはマネージド RDBMS インスタンスへのアクセス設定のみのため、データベースアカウントによる、個々のデータベースへの接続はコンテナ内のアプリケーションで実装します。 アクセスに必要なパスワードなどの取得には ネットワーク設定 の機能が利用できます。

Cloud SQL Auth Proxy

GCP の Cloud SQL を利用する場合は、自動的に Cloud SQL Auth Proxy がサイドカーコンテナに設定されます。 Cloud SQL Auth Proxy を利用する場合はインスタンスのロケーションに関係なく、コンテナからは常に localhost を host に指定してアクセスします。

preConnectRdb:
  - gcp:
      instance: my-mysql-instance-1
      port: 3306
  - gcp:
      instance: my-postgres-instance-2
      port: 5432

ポートは localhost にバインドされるため、重複しないように設定します。

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

サービスを提供するコンテナとは異なるコンテナで事前処理を行いたい場合や、 同じコンテナであっても事前処理ではより強い権限のユーザーで処理を行い、 メインコンテナは必要最低限の権限で実行するといった要件がある場合 initContainers を使用できます。

initContainers にリストで登録したコンテナは昇順で実行され、全てのコンテナの実行が終わってから、メインのコンテナが実行されます。

initContainers:
  - name: waiting
    image:
      repository: waiting-dependency
      tag: latest
  - name: init
    image:
      repository: sdkimage
      tag: v1.0.0
    workingDir: /app
    command:
    - sh
    - initapp

sharedMounts:
  - /app/data
  - /app/cache

上記の例では sharedMounts の設定によって、 /app/data/app/cache が各コンテナにマウントされます。

Tip

データベースマイグレーションのような、フレームワークに組み込まれている処理は、サービス起動前に実行する必要がありますが、 同一コンテナ上で実行できるため、基本的には initContainers は利用せず、起動スクリプトに処理を組み込むように設計してください。

重要

GKE の場合 DB 接続はサイドカーコンテナの sql auth proxy を経由して行われます。 サイドカーコンテナは initContainers の終了後に起動するため、 GKE では initContainer 内で DB を必要とする処理を行うことはできません。

警告

Pod の起動は initContainers の終了を待ちます。フォアグラウンドで終了しないコンテナを initContainers に登録すると Pod が起動しなくなります。

オートスケール

scaling.scalingTypeauto に設定し、 scaling.autoscaling の設定を行なうことで、コンテナに割り合てる、CPU とメモリの設定及び、 Pod の自動スケール設定を行います。

CPU 利用率によるスケール

scaling.requests.cpu で指定した起動時に要求する CPU 値に対して scaling.autoscaling.targetAverageUtilization.cpu で指定した利用率を越えた場合スケールを行います。

CPU 要求はクラスタを構成する vcpu から1つを要求する場合、1000m を指定します。

メモリ利用率によるスケール

scaling.requests.request で指定した起動時に要求するメモリ値に対して scaling.autoscaling.targetAverageUtilization.memory で指定した利用率を越えた場合スケールを行います。

メモリ要求はクラスタを構成するメモリから、 Gi, Mi, Ki のような単位で指定します。

重要

request 利用率のいずれかが指定されていない場合、オートスケールは実行されません。

利用率以外でのスケールを行いたい場合は、 Kubernetes の ドキュメント を参照し、 直接 HorizontalPodAutoscaler を作成してください。

Prometheusメトリクス

本パッケージでは CNAP の作成したマネージド Prometheus ワークスペースにメトリクスの 収集を行うための設定を行うことができます。

本パッケージを利用すると、デフォルトでコンテナの基本的なメトリクス(CPU、メモリ、ディスクIO、ネットワークIO)がPrometheusへ収集されます。 収集されるメトリクスの詳細については、 cAdvisor Prometheus container metrics を参照ください。

CNAP が cAdvisor から収集するメトリクスはコストを抑えるため厳選されたメトリクスのみ収集します。

CNAP の取得するメトリクス

メトリクス

概要

container_cpu_usage_seconds_total

コンテナの cpu 使用時間

container_memory_rss

コンテナの rss 使用量

container_memory_usage_bytes

コンテナの現在のメモリ使用量

container_cpu_load_average_10s

コンテナの過去10秒間のロードアベレージ

container_network_receive_bytes_total

コンテナの受信バイト合計

kube_pod_status_ready

Pod の Ready 状態

kube_pod_container_resource_requests

コンテナのリソース要求値

kube_pod_container_resource_limits

コンテナのリソース制限値

kube_pod_container_status_restarts_total

コンテナの再起動回数

kube_pod_status_reason

Pod の理由

kube_pod_status_phase

Pod の実行フェイズ

kube_pod_container_status_terminated

コンテナの終了ステータス

kube_pod_container_status_terminated_reason

コンテナの終了理由

kube_pod_owner

Pod のコントローラー情報

kube_pod_info

Pod の情報

kube_deployment_status_condition

Deployment の状態

kube_job_status_failed

Job の失敗

kube_statefulset_replicas_status_ready

Statefulset の Ready 状態

kube_daemonset_status_number_unavailable

実行できていない Daemonset の数

kube_[xxx]_labels

リソースのラベル

また、アプリケーションが開示した独自のメトリクスをPrometheusへ収集させることも可能です。 Pod から直接メトリクスを収集する場合は、 PodMonitor 。Service を経由してメトリクスを収集する場合には ServiceMonitor を利用します。 コンテナがメトリクスを開示するエクスポーターの利用するポートと、指定がある場合はエンドポイントパスを PodMonitor を利用する場合は monitoring.prometheus.podMonitor.podMetricsEndpoint ServiceMonitor を利用する場合は monitoring.prometheus.serviceMonitor.endpoints に設定します。

なお、アプリケーションでのPrometheusメトリクスの開示方法については、 Prometheus Client Libraries を参照ください。

Prometheusへのメトリクス収集を無効化したい場合は、 monitoring.prometheus.enabledfalse に設定します。

マイグレーション

1.3.0

1.3.0 以前のバージョンから 1.3.0 以降のバージョンにアップデートすると、 デフォルトで podMonitor の設定は行われなくなります。 これによって Pod のコンピュートリソースのメトリクスが取得されなくなることはありませんが、 コンテナに独自のエクスポーターを組み込んでデフォルト設定を行っている場合は、 Application マニフェストに以下の設定を追加する必要があります。

monitoring:
  prometheus:
    podMonitor:
      podMetricsEndpoints:
        - path: /metrics
          port: http # network.service.ports.name で指定した値と同じ値を設定

Values

Default values

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

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

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

## containerに関する設定 ##
# コンテナ内で実行するコマンドを設定する。
# 設定した内容は Kubernetes Deployment リソースの 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

# コンテナのエントリポイントで実行されるコマンドに引数を与える。
# 設定した内容は Kubernetes Deployment リソースの spec.template.spec.containers.[0].args にそのまま反映される。
args: []

## ボリュームに関する設定
# コンテナ内でどのボリュームをどのパスでマウントするかを設定する。
# ボリューム自体の設定は volumes にて設定する。
# Kubernetes ConfigMap リソース および Secret リソースのマウント設定については、configmaps および secrets にて設定が可能。
# 設定した内容は Kubernetes Deployment リソースの以下の設定値にそのまま反映される。
# - 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 Deployment リソースの以下の設定値にそのまま反映される。
# - spec.template.spec.volumes
volumes: []
  # - name: cache-volume
  #   emptyDir: {}

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

## Podに関する設定 ##
## ヘルスチェックに関する設定
# Podが正常に動作しているかの確認。このヘルスチェックが満たされなければコンテナが再起動する。
# 設定した内容は Kubernetes Deployment リソースの 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 Deployment リソースの spec.template.spec.containers.[0].readinessProbe にそのまま反映される。 
readinessProbe:
  {}

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

# 利用するイメージに関する設定。
image:
  # イメージ名・レジストリ名の設定。Kubernetes Deploymentのspec.template.spec.containers.[0].imageに反映。
  repository: "" # 例: "asia-northeast1-docker.pkg.dev/customer-project/customer-docker-registry/customer-app-img"
  # イメージのタグ設定。設定無しの場合、本パッケージの.Chart.AppVersionからv{{ .Chart.AppVersion }} というタグ名を自動生成。
  # autoUpdate無効時の例: "1.0.0"
  # autoUpdate有効時、以下のようにタグの後ろのコメントを記述することで自動アップデートされる
  # # tag: "1.0.0" # {"$imagepolicy": "staging:sample-img-customer-app-application:tag"}
  # # コメントのフォーマット: {"$imagepolicy": "[metadata.namespaceの値]:[image.repositoryのイメージ名]-[metadata.nameの値]-application:tag"}
  # # 注: [image.repositoryのイメージ名]に入力する値は、イメージ名のみとすること(例: repository: path/to/sample-img  の場合、入力する値は sample-img となる)
  tag: ""
  # イメージのタグの自動更新設定。image.tag の値をポリシーに従って自動的に更新する。 詳細: https://fluxcd.io/flux/guides/image-update/
  autoUpdate:
    # タグ自動更新の有効化
    enabled: false
    # ユーザー設定用リポジトリに関する設定。
    userRepository:
      # Application マニフェストが配置されているユーザー設定用 GitRepository CR 名を指定する。
      # CR 名の一覧は ` kubectl get gitrepo -A -o custom-columns='NAME:.metadata.name' ` コマンドにより確認できる。
      # 初期開通時に設定したユーザー設定用リポジトリを利用する場合: user-repo
      # UserConfigで設定したユーザー設定用リポジトリを利用する場合: [UserConfig名]-userconfig-[UserConfigで指定したリポジトリ名]-user-repo
      gitRepositoryName: user-repo 
      # Application マニフェストが配置されているユーザー設定用リポジトリのブランチに関する設定。
      branch:
        # 参照ブランチ
        source: main
        # 更新対象ブランチ
        target: main
      # マニフェストが配置されているディレクトリパス
      path: ./
      # タグの自動更新間隔
      interval: 5m
    # イメージのリポジトリに関する設定。
    imageRepository:
      # イメージの更新確認の間隔
      interval: 5m
    # イメージのタグの更新ポリシーに関する設定。ここに設定されたポリシーに従って、image.tag が更新される 
    imagePolicy:
      policy: {}
        # # semver/alphabetical/numerical のいずれかを指定
        # semver:
        #   range: 5.x.x
        # alphabetical:
        # # asc(昇順) / desc(降順)
        #   order: asc
        # numerical:
        # # asc(昇順) / desc(降順)
        #   order: asc
      # タグのフィルタリング設定
      # exclusionPatternList の後 inclusionPattern が評価される
      filter: {}
        # # 対象から除外するタグを正規表現の文字列のリストで指定
        # exclusionPatternList: []
        # # 対象に含めるタグを正規表現で指定
        # # (例) inclusionPattern: '.*-rc.*'  # (rcバージョンのみ対象にしたい場合)
        # inclusionPattern: '.*-rc.*'
  # イメージをダウンロードして更新するポリシーを設定する。
  # - IfNotPresent
  #   - イメージがローカルに存在しない場合のみダウンロードします。
  # - Always
  #   - コンテナ起動時に常にリポジトリを参照し、同一のイメージ名・タグ名でもイメージが更新されている場合はダウンロードを実施する。
  #     更新が実施されていない場合のみローカルのイメージを利用します。
  #   - タグに latest を指定する場合、Always を設定する必要があります。
  # 設定した値は Kubernetes Deployment リソースの spec.template.spec.containers.[0].imagePullPolicy に反映される。
  pullPolicy: IfNotPresent
  # イメージをダンロードする際に利用する認証情報を設定する。プライベートなコンテナレジストリを使用する場合は必須の設定項目。
  # ここで設定された値を元に、クラウドベンダの KMS からコンテナレジストリの認証情報を取得し、本パッケージで利用する。
  # 具体的には以下の設定作業を実施します。
  # - KMS に設定された値から自動的にクラスタ上に Secret が生成される。
  # - 生成された Secret を参照する ServiceAccount が生成される。
  # - 生成された ServiceAccount を Deployment の 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 に登録されているコンテナレジストリの認証情報のキー名。
    #   # KMS に構造体として保存している場合は、シークレット名の他に構造体のキー名の指定を行う。
    #   property: authkey

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

# Kubernetes Deployment リソースと組み合わせて利用する ConfigMap リソースに関する設定を記載する。
# 既に作成済みの ConfigMap を Deployment で参照するための設定を記載する。
# ConfigMap の作成、及び Kubernetes Deployment リソースの 以下のパラメーターを自動的に設定する。
# 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 Deployment リソースと組み合わせて利用する Secret リソースに関する設定を記載する。
# 以下について設定可能です。
# - 既に作成済みの Kubernetes Secret リソースを Deployment にて参照する。
# - KMS に設定された値を Kubernetes Secret リソースとして設定した上で Deployment にて参照する。
# Kubernetes Deployment リソースの 以下のパラメーターを自動的に設定します。
# 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 に設定された値を参照する場合には、remoteRef を設定します。
  # 以下の例では、KMS にて test2 という key で登録された値が、
  # コンテナ の /var/www2/test2 というパスにマウントされ、環境変数 ENV_KMS_SECRET にも設定されます。
  # また、マウント時のアクセス権限の設定も実施できます。デフォルトのアクセス権限は 0644 になります。
  # - remoteRef:
  #     key: test2
  #     # property: testkey # KMS に構造体として保存している場合は、構造体のキーを property に指定する。
  #   mountPath: /var/www2
  #   mode: "0600"
  #   env: ENV_KMS_SECRET

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

# メインで設定したコンテナが起動する前に起動したいコンテナがある場合に設定する。
# 設定した内容は kubernetes Deployment リソースの spec.template.spec.initContainers に反映される
# また、以下のイメージに関する機能については、initContainers[].image に image と同じ形式で設定することで利用可能。
# - プライベートなコンテナレジストリへのアクセス設定機能
#   - image.pullSecrets と同じ形式の設定を initContainers[].image.pullSecrets に設定。 
# アプリケーションで利用するコンテナイメージの自動更新機能 
#   - image.autoUpdate と同じ形式の設定を initContainers[].image.autoUpdate に設定。 
initContainers: []

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

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

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

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

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

## Podをノードへ配置する際の選択ポリシーに関する設定
# 指定されたラベルが設定されている ノード に Pod を配置する設定。
# 特定のマシンタイプのノードにPodを配置したいときなどに利用する。
# 設定した内容は Kubernetes Deployment リソースの 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 Deployment リソースの 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 Deployment リソースの spec.template.spec.tolerations にそのまま反映される。 
tolerations: []
  # - key: "app"
  #   operator: "Equal"
  #   value: "nonGpu"
  #   effect: "NoSchedule"

########## 監視・モニタリング ##########

monitoring:
  # Prometheus メトリクス収集に関する設定
  # コンテナがメトリクスを開示している場合に利用可能。
  prometheus:
    enabled: true # cadvisor からコンテナリソースのメトリクスを収集する(Depricated )
    # Pod から直接メトリクスを収集する場合に設定する。
    podMonitor: {}
      # - podMetricsEndpoints:
      #    - port: http
      #      path: /metrics
    # Service を経由していメトリクスを収集する場合に設定する。
    serviceMonitor: {}
      # - endpoints:
      #    - port: http
      #      path: /metrics

########## データベース接続 ##########

### データベースに関する設定 ###
# Pod から別途 RDBパッケージ等で構築した既存のデータベースとの接続に関する以下の設定を行う。
# - データベースへの疎通確認の実施
# - (Google Cloudのみ) Cloud SQLで作成されたデータベースに対する、アクセス権限の設定
# 上記の設定のみ実施するので、個々のデータベースへの接続はコンテナ内のアプリケーションで実装する。
# 個々のデータベースアクセスに必要なパスワードは secrets の設定を利用し、KMS から取得・設定を行う。
# AWSとAzureにて、既に存在するデータベースと接続する場合は設定しなくてもよい。
# Google Cloudを利用するケース、またはRDBパッケージを利用してデータベースを新規作成する場合、設定が必須
preConnectRdb: []
#   - startupProbe:
#       # 各クラウドベンダごとの host に設定する値の例
#       # - Google Cloud(Cloud SQL): 127.0.0.1(固定値)
#       #   - どのRDBに接続するかは別途 preConnectRdb.[].gcp.cloudSql 内に設定する
#       # - Azure(Azure Container Registry): [サーバー名].[DB種別].database.azure.com または [サーバー名].database.windows.net
#       # - AWS(Amazon RDS): [インスタンスID(ランダム文字列)].[リージョン名].amazonaws.com
#       host: 127.0.0.1
#       port: 3306
#       type: mysql # or postgres 
#       timeout: 10
#     gcp:
#       # Cloud SQLでのデータベースリソース名を設定する
#       instance: mysql-server
#       # Cloud SQLでのデータベースへの接続ポートを指定する
#       # 通常、MySQLの場合は3306、PostgreSQLの場合は5432を指定する
#       port: 3306
#       # データベースのロケーションを設定する。設定されない場合 Kubernetes クラスタと同じロケーション (global.cluster.locationの値) に設定される。
#       location: asia-northeast1

########## ネットワーク(今後、ファイアーウォールとかもここに入る。istio → virtualService) ##########

### Network settings ###
network:
  # 外部公開用ドメイン
  # ここに設定された ドメイン名、もしくは FQDN (ホスト名 + ドメイン名)へのリクエストをルーティングする。
  domain: ""
  # istio Gateway の名前。
  # 外部公開時には基本的に変更不要、別途独自で作成した gateway を指定したい場合に利用
  # 外部公開しない場合は "" を指定する
  gatewayName: "istio-system/istio-ingress"
  # Kubernetes Service リソースに関する設定。以下を設定します。
  # - name: (15字以内)containerPortのalias。VirtualService や ServiceMonitor など他のリソースから Service リソースを参照する際に使用
  # - servicePort: Serviceが受信するポートを指定します。
  # - containerPort: コンテナが受信するポート指定します。
  service:
    ports: []
      # - name: https
      #   containerPort: 8000
      #   servicePort: 443
      #   protocol: TCP
      # - name: http
      #   containerPort: 8080
      #   servicePort:  80
      #   protocol: TCP

# Routing settings to Service. Empty will route to the default created Service.
# パスを指定したフィルタリング、URIの書き換え設定
  routes: []
  # - type: http
  #   match:
  #   - uri: 
  #       prefix: /apiv1
  #   - uri:
  #       prefix: /apiv1beta1
  #   rewrite:
  #     uri: /
  # - type: tcp
  #   services:
  #   - podLabel:
  #        labela: test
  #     port: 80
  #     weight: 50
  #   match:
  #   - uri: 
  #       prefix: /apiv1
  #   - uri:
  #       prefix: /apiv1beta1
  #   rewrite:
  #     uri: /

########## 可用性 ##########

# Pod の可用性・性能・スケールに関する設定を行う。
# 内部的に Kubernetes Deployment リソースの性能に関する設定、および Kubernetes の以下の機能を利用して可用性・性能・スケールの設定を提供する。
# - PodDisruptionBudget: ノードのスケールインやメンテナンスなど計画的なNodeの停止が実施される際に、最低どれだけPod数を維持してほしいかを設定する機能。
# - Horizontal Pod Autoscaler: PodのCPU/メモリ使用率に基づき、Podを自動的にスケールアウト・スケールインする機能。
scaling:
  # Podのスケールを自動で実施するか手動で実施するか設定する。
  # manual または auto を設定する。
  scalingType: manual # or auto
  # 起動するPodの数を設定する。
  # scalingType を manual に設定した場合のみ指定する。
  replicaCount: 1
  # Podが利用できる最大リソース量
  limits: {}
    # # Podが使用できる最大のCPU使用量。1000m で 1vcpu を示す。
    # # 使用量が超過するとPodではCPUの使用が制限されます。 
    # cpu: 512m
    # # Podが使用できる最大のメモリ使用量。Gi, Mi, Kiのような単位で指定する。
    # # 使用量が超過するとPodはメモリ不足で再起動されます。
    # memory: 512Mi
  # Pod起動時に要求するリソース量
  # ここに設定した値を元に使用率を計算するので、オートスケールを利用する際はcpuもしくはmemoryの設定が必須。
  requests: {}
    # # Pod起動時に要求するCPU使用量。1000m で 1vcpu を示す。
    # cpu: 128m
    # # Pod起動時に要求するメモリ使用量。
    # memory: 128Mi
  # Podのオートスケール・可用性に関する設定。
  # scalingType を auto に設定した場合のみ指定する。
  autoscaling: {}
    # # Podの最小起動数を指定する。
    # minReplicas: 1
    # # Podの最大起動数を指定する。
    # maxReplicas: 100
    # # オートスケールを実行する閾値。
    # # request に対する利用率で指定する未指定の場合オートスケールは実施されない。
    # targetAverageUtilization:
    #   cpu: 80
    #   memory: 80

########## デプロイ戦略 ##########

### Progressive Delivery settings ### 
# デプロイ戦略の設定を実施します。
progressiveDelivery:
  enabled: false
  # デプロイ戦略の設定。blueGreenもしくはcanaryを選択する
  # strategy: blueGreen or canary
  # Progressive デプロイメントを継続する時間(秒), タイムアウト後に切り替え
  timeout: 600
  # デプロイメント job を実行する間隔(秒)
  interval: 120
  # デプロイ戦略が canary の場合のみ有効。canary リリースを行なう場合に、canary ワークロードに割り振る最大トラフィック量の比率(%)
  maxWeight: 50
  # デプロイ戦略が canary の場合のみ有効。canary ワークロードに割り振る最大トラフィック量の増加比率(%)
  stepWeight: 10
  # 切り替え判定に利用する port 名
  port:
    name: http
  # 疎通確認を行なうためのエンドポイント情報
  # endpoints:
  #   accessTests: []
  #   loadTests: []
  # カスタムメトリクスを利用したテストを行なう場合の設定 (https://docs.flagger.app/usage/metrics)
  # extraMetrics: []
  # エンドポイントアクセスへのカスタム設定 (https://docs.flagger.app/usage/webhooks)
  # extraWebhooks: []

########## アクセス権限 ##########
# 作成するアプリケーションに付与する権限の設定
# 具体的には作成するDeploymentリソースが使用する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: ""

########## コスト按分 ##########
# 作成するアプリケーションに付与するコスト按分用のラベル設定
# costCenter: ""


########## その他 HelmRelease用, external secret 用 ##########

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

Schema reference

properties

  • global

グローバル設定

type

object

properties

  • vendor

ベンダー

type

string

enum

gcp, azure, aws

  • cluster

クラスター情報

type

object

properties

  • name

クラスター名(AWS, Azureのみ必須)

type

string

  • customerId

顧客ID (AWSのみ必須)

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

  • workingDir

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

type

string

  • annotaions

Deployment に付与する Annnotation を設定

type

object

  • podAnnotations

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

type

object

  • labels

Deployment に付与する Label を設定

type

object

  • podLabels

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

type

object

  • command

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

type

null / array

items

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

type

string

  • args

コンテナ起動時エントリポイントに指定されたコマンドに渡す引数リスト

type

null / array

items

コンテナ起動時エントリポイントに指定されたコマンドに渡す引数

type

string

  • volumes

コンテナに作成するvolume

type

array

  • volumeMounts

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

type

array

  • env

環境変数

type

array

items

type

object

properties

  • name

type

string

  • value

type

string

  • livenessProbe

livenessProbe 設定

type

object

  • readinessProbe

readinessProbe 設定

type

object

  • nodeSelector

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

type

object

  • affinity

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

type

object

  • tolerations

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

type

array

  • podSecurityContext

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

type

object

  • 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 内のレジストリ認証情報に対応するキー名を指定 (構造体として保存している場合)

type

string

  • email

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

type

string

  • autoUpdate

image tag の自動更新に関する設定

type

object

properties

  • enabled

自動更新の有効無効フラグ

type

boolean

default

False

  • userRepository

ユーザー設定用リポジトリに関する設定

type

object

properties

  • gitRepositoryName

ユーザー設定用リポジトリの GitRepository リソース名

type

string

default

user-repo

  • branch

ユーザー設定用リポジトリのブランチに関する設定

type

object

properties

  • source

更新時に参照する(checkoutしてくる)ブランチ

type

string

default

main

  • target

更新対象にする(pushする)ブランチ

type

string

default

main

  • path

更新対象のマニフェストが配置されているディレクトリのパス

type

string

default

./

  • interval

自動更新の確認間隔

type

string

default

5m

  • imageRepository

イメージのリポジトリに関する設定

type

object

properties

  • interval

イメージの更新確認の間隔

type

string

default

5m

  • imagePolicy

イメージのタグの更新ポリシー

type

object

properties

  • policy

タグの更新ポリシー、semver/alphabetical/numerical のいずれかを指定

type

object

properties

  • semver

semver形式での指定

type

object

properties

  • range

semver形式でのタグの範囲指定

type

string

  • alphabetical

アルファベット順での指定

type

object

properties

  • order

昇順か降順か指定

type

string

  • numerical

数値順での指定

type

object

properties

  • order

昇順か降順か指定

type

string

  • filter

タグのフィルタパターン

type

object

properties

  • exclusionPatternList

対象から除外するタグのリスト

type

array

items

対象から除外するタグの正規表現

type

string

  • inclusionPattern

対象に含めるタグの正規表現

type

string

  • network

type

object

properties

  • domain

外部公開用ドメイン

type

string

  • gatewayName

外部アクセス用の istio Gateway の指定。デフォルトは CNAP の作成するインターネット Gateway が設定される

type

string

default

istio-system/istio-ingress

  • service

Service設定

type

object

properties

  • ports

Service とコンテナポートのマッピング設定

type

array

items

type

object

properties

  • name

containerPort の alias

type

string

  • protocol

type

string

enum

TCP, UDP

  • containerPort

コンテナ側のポート

type

integer

  • servicePort

Service 側のポート

type

integer

  • routes

Service へのルーティング設定。空の場合はデフォルトで作成された Service にルーティングされる

type

array

items

type

object

properties

  • type

通信プロトコル

type

string

enum

http, tcp

  • services

リクエストの転送先 Service のリスト

type

array

items

type

object

properties

  • name

Service 名。設定しない場合はデフォルトで作成された Service にルーティングされる

type

string

  • podLabel

特定の Label の付いた Pod に転送したい場合に対象のラベルを指定

type

object

  • weight

複数の Service に通信を分散させたい場合にその比率を指定

type

number

  • port

Service の Port を指定。ServicePortが一つのみであれば省略可能

type

number

  • match

特定のリクエスト対してルーティングする場合の条件を設定

type

array

items

設定パターン https://istio.io/latest/docs/reference/config/networking/virtual-service/#HTTPMatchRequest

type

object

  • rewrite

match で設定したパターンを上書きしてから転送する場合に設定(type: http で使用)

type

object

  • 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

  • scaling

Horizontal Pod Auto Scaler(HPA) 及び PodDisruptionBudget,Deployment の resources 設定 (PodDisruptionBudget は minAvailable の設定にのみ対応する。)

type

object

properties

  • scalingType

スケール方式。auto: オートスケール、manual: 手動設定

type

string

default

manual

  • replicaCount

起動時の pod 数。type: manual の場合に有効

type

integer

default

1

  • limits

Horizontal Pod Auto Scaler(HPA) 及び PodDisruptionBudget,Deployment の resources 設定 (PodDisruptionBudget は minAvailable の設定にのみ対応する。)。type: auto の場合に設定する

type

object

properties

  • cpu

メインコンテナが使用できる CPU 利用量の上限。1000m で 1vcpu を示す。(これを越えた場合は Pod が終了する)

type

string

examples

500m

  • memory

メインコンテナが使用できるメモリ利用量の上限。(これを越えた場合は Pod が終了する)

type

string

examples

2Gi

  • requests

Horizontal Pod Auto Scaler(HPA) 及び PodDisruptionBudget,Deployment の resources 設定 (PodDisruptionBudget は minAvailable の設定にのみ対応する。)。type: auto の場合に設定する

type

object

properties

  • cpu

メインコンテナの起動時に要求する CPU 利用量。1000m で 1vcpu を示す。(オートスケールを使用する場合は必須)

type

string

examples

100m

  • memory

メインコンテナの起動時に要求するメモリ利用量。(オートスケールを使用する場合は必須)

type

string

examples

250Mi

  • autoscaling

Horizontal Pod Auto Scaler(HPA) 及び PodDisruptionBudget,Deployment の resources 設定 (PodDisruptionBudget は minAvailable の設定にのみ対応する。)。type: auto の場合に設定する

type

object

properties

  • minReplicas

HPA の最低 Pod 数及び PodDisruptionBudget の minAvailable の設定。(0 の場合 PodDisruptionBudget は無効になる。)

type

integer

  • maxReplicas

HPA の最大 Pod 数

type

integer

  • targetAverageUtilization

オートスケールを実行する閾値 (request に対する利用率で指定。「%」は付けない。未指定の場合はオートスケールが無効になる。)

type

object

properties

  • cpu

オートスケールを実行する CPU 利用量の閾値。

type

integer

  • memory

オートスケールを実行するメモリ利用量の閾値。

type

integer

  • progressiveDelivery

Progressive Delivery 設定

type

object

properties

  • enabled

Progressive Delivery を有効にする場合 true

type

boolean

default

False

  • strategy

Bluge Green リリースを行なう場合は blueGreen, Canry リリースを行なう場合は canary を設定

type

string

enum

blueGreen, canary

  • timeout

Progressive デプロイメントを継続する時間(秒), タイムアウト後に切り替え

type

integer

default

600

  • interval

デプロイメント job を実行する間隔(秒)

type

integer

default

120

  • maxWeight

canary リリースを行なう場合に、canary ワークロードに割り振る最大トラフィック量の比率(%)

type

integer

default

50

  • stepWeight

canary リリースを行なう場合に、canary ワークロードに割り振る最大トラフィック量の増加比率(%)

type

integer

default

10

  • port

service port に関する設定

type

object

properties

  • name

切り替え判定に利用する port 名

type

string

default

http

  • endpoints

エンドポイント path 情報

type

object

properties

  • accessTests

疎通確認を行なうためのエンドポイント情報

type

array

items

type

object

properties

  • name

エンドポイントに設定する任意の名称

type

string

  • path

エンドポイントの path

type

string

  • loadTests

負荷テストを行なうためのエンドポイント情報。(2分間隔で実行し、99% の応答成功でテストを通過します。)

type

array

items

type

object

properties

  • name

エンドポイントに設定する任意の名称

type

string

  • path

エンドポイントの path

type

string

  • extraMetrics

type

array

items

カスタムメトリクスを利用したテストを行なう場合の設定 (https://docs.flagger.app/usage/metrics)

type

object

  • extraWebhooks

type

array

items

エンドポイントアクセスへのカスタム設定 (https://docs.flagger.app/usage/webhooks)

type

object

  • 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

  • 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

  • preConnectRdb

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

type

array

items

type

object

properties

  • startupProbe

メインコンテナの起動を DB インスタンスが起動するまで待つ場合に指定する。

type

object

properties

  • host

DB インスタンスホストの IP アドレス(Google の場合は常に 172.0.0.1)。

type

string

  • port

データベースアクセス先ポート

type

integer

  • type

RDBMS の種類

type

string

enum

mysql, postgres

  • timeout

DB の起動待ちタイムアウト

type

number

  • gcp

メインコンテナの起動を DB インスタンスが起動するまで待つ場合に指定する。

type

object

properties

  • instance

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

type

string

  • port

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

type

integer

  • location

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

type

string

  • monitoring

監視設定

type

object

properties

  • prometheus

Prometheusへのメトリクス収集の設定

type

object

properties

  • enabled

Cadvisor からのメトリクス収集を有効にする場合 true を設定(Deprecated)

type

boolean

default

True

  • serviceMonitor

ServiceMonitor の設定

type

object

properties

  • endpoints

type

array

items

type

object

#/$defs/endpointsItem/properties

  • podMonitor

PodMonitor の設定

type

object

properties

  • podMetricsEndpoints

type

array

items

type

object

#/$defs/endpointsItem/properties

  • secretStore

参照する SecretStore の指定

type

object

properties

  • name

SecretStore の名前

type

string

default

default

  • kind

SecretStore の種類

type

string

enum

SecretStore, ClusterSecretStore

default

ClusterSecretStore

  • 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

  • workingDir

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

type

string / null

  • command

コンテナ起動時にエントリポイントに指定されたコマンンドに渡す引数リスト

type

null / array

items

コンテナ起動時にエントリポイントに指定されたコマンンドに渡す引数

type

string

  • args

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

type

null / array

items

スペースをリストに変換して設定

type

string

  • securityContext

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

type

object / null

  • volumeMounts

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

type

array / null

items

type

object

  • costCenter

コスト按分用の文字列を指定

type

string

  • nameOverride

明示的にDeploymentリソース名を指定

type

string

  • fullNameOverride

明示的にfull nameを指定

type

string

$defs

  • endpointsItem

type

object

properties

  • path

参照するエンドポイントのパス

type

string

  • port

参照するポート名

type

string

  • metricsRelabelings

メトリクスの変換及びフィルタ設定

type

object

Example

Example1. Kanboard作成

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: kanboard
  namespace: staging
spec:
  chart:
    name: basic-deployment
    version: <latest>
  settings:
    image:
      repository: kanboard/kanboard
      pullPolicy: IfNotPresent
      tag: "latest"
    network:
      domain: kanboard.<customer domain>
      service:
        ports:
          - name: kanboard
            containerPort: 80
            servicePort: 80

Example2. Blue-Green Deployment

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: podinfo
  namespace: staging
spec:
  chart:
    name: basic-deployment
    version: <latest>
  settings:
    image:
      repository: ghcr.io/stefanprodan/podinfo
      pullPolicy: IfNotPresent
      tag: "5.2.0"
    command:
      - ./podinfo
      - --port=9898
      - --port-metrics=9797
      - --grpc-port=9999
      - --grpc-service-name=podinfo
      - --level=info
      - --random-delay=false
      - --random-error=false
    network:
      domain: podinfo.<customer domain>
      service:
        ports:
          - name: http
            containerPort: 9898
            servicePort: 80
            protocol: TCP
    progressiveDelivery:
      enabled: true
      strategy: blueGreen
      endpoints:
        accessTests:
          - name: smoke
            path: /
        loadTests:
          - name: load
            path: /
    scaling:
      scalingType: auto
      replicaCount: 1
      limits:
        cpu: 512m
        memory: 512Mi
      requests:
        cpu: 128m
        memory: 128Mi
      autoscaling:
        minReplicas: 1
        maxReplicas: 100
        targetAverageUtilization:
          cpu: 80
          memory: 80

Change Log

1.3.6

Released on 2025-08-07

What's Changed

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

1.3.5

Released on 2025-06-04

What's Changed

  • パスルーティング(network.routes)設定時に、portを指定した場合のエラーを解消しました
  • ドキュメントの values.yaml 設定例を修正しました

1.3.4

Released on 2025-05-15

What's Changed

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

1.3.3

Released on 2025-04-23

What's Changed

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