5. HELM ユーザー用パッケージ

ユーザーが kubernetes インフラ環境を構築するために、以下のパッケージを提供します。 これらのパッケージは Application Operator を経由してユーザー自身がアプリケーションを構成するために利用します。

5.1. Application マニフェスト

Application Operator でアプリケーションを構成するために、 Application マニフェストを利用します。

apiVersion: managed.msp.sbopsv/v1alpha1
kind: Application
metadata:
  name: kanboard
  namespace: staging
spec:
  chart:
    name: basic-deployment
    version: <latest>
  settings:

5.1.1. パッケージ一覧

カテゴリ

パッケージ

概要

アプリケーション

BASIC-DEPLOYMENT

ステートレスな Docker イメージをホストする機能を提供する。 本パッケージは、コンテナの配置だけではなく、Secret の作成とマウント、ネットワーク設定等 アプリケーションの公開に必要な設定と、 運用に必要な BlueGreen Deploy 設定等のリソースを作成する。

CRONJOB

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

データ

RDB

マネージド RDB のインスタンス作成からDB設定までの機能を提供する。

STORAGE

マネージド Object bucket ストレージの作成及び設定の機能を提供する。

CONTAINER-REGISTRY

マネージド コンテナレジストリーの作成及び設定の機能を提供する。

MESSAGING

マネージドの非同期メッセージングサービス設定を行う機能を提供する。

DB-AURORA

AWS Auroraの作成・設定を行う機能を提供する。

ネットワーク

DNS

マネージド DNS のレコード管理機能を提供する。

INGRESS

Gatewayの作成・設定を行う機能を提供する。

PUBLIC-IP

パブリックIPの作成を行う機能を提供する。

セキュリティ

VAULT

マネージド KMS 設定機能を提供する。 本パッケージではデフォルト KMS コンテナの作成のため、管理用パッケージとしても利用する。

5.2. IAM 管理用 マニフェスト

本マニフェストは、AWS における IAM 関連クラウドリソースを一元管理するためのものです。

5.2.1. パッケージ一覧

Kind

パッケージ

概要

IamGroup

IAM-GROUP

IAM Group管理機能を提供する。

IamUser

IAM-USER

IAM User管理機能を提供する。

IamRole

IAM-ROLE

IAM Role管理機能を提供する。

IamK8sAccess

IAM-K8S-ACCESS

Kubernetes リソースへのアクセス権限をIAMリソースに付与する機能を提供する。

パッケージリファレンス

5.2.2. パッケージ構成と関係図

以下の図は、各パッケージ間の構成および連携関係を示しています。

../_images/user-iam.svg

5.2.3. ユースケース1 : IAM ユーザーのkubectl アクセス制限

../_images/user-iam1.svg

本ユースケースでは、以下の各パッケージを連携させることで、IAM ユーザーの kubectl アクセスを適切に制御します。

  • IamGroup および IamUser パッケージで、ユーザーおよびそのポリシーの管理を行います。

  • IamRole パッケージで、スイッチロール先となるロールとそのポリシーを管理します。

  • IamK8sAccess パッケージで、IAM ロールに対して Kubernetes リソースへのアクセス権限を付与します。

5.2.4. ユースケース2 : GitHub ActionとのOIDC連携

../_images/user-iam2.svg

本ユースケースでは、IamRole パッケージを利用し、特定の GitHub リポジトリからの Actions によるアクセスを許可する IAM ロールを作成します。 これにより、クレデンシャル情報を管理することなく、GitHub Actions を介して安全に AWS リソースへのアクセスが実現できます。

前提条件

本機能を活用するためには、以下の ID プロバイダーリソースが事前に作成され、適切に設定されている必要があります。

  • GitHub Actions 用 OpenID Connect プロバイダー : token.actions.githubusercontent.com をエンドポイントとする IAM ID プロバイダーリソース

以上の各マニフェストを活用することで、IAM 関連リソースの管理が効率化され、セキュアな運用が実現されます。

5.3. ユーザー用パッケージのサポートポリシー

各ユーザー用パッケージは新しいバージョンがリリースされた際、過去のバージョンはメンテナンス期間に入ります。 メンテナンス期間中は以下のサービスを提供します。

  • 既存機能に不具合があった場合のパッチリリース提供

  • 関連 OSS にセキュリティ issue が発生した場合のセキュリティパッチ提供

  • CNAP 基盤が提供している OSS パッケージとの互換性を維持するためのパッチ提供

5.3.1. バージョン毎のサポート期間

CNAPではセマンティックバージョニングを採用しており、ユーザ用パッケージ更新の際はお客様環境への影響度に応じたバージョン管理を実施します。

以下に、セマンティックバージョニングのサンプルと、CNAPにおけるバージョン管理ルールを示します。

../_images/support-policy-semantic.png

ユーザー用パッケージの各バージョンのサポート期間は以下のルールとします。

Version

サポート期間

パッチバージョン

次のパッチバージョンがリリースされるまで

マイナーバージョン

次のマイナーバージョンがリリースされてから1年間

メジャーバージョン

次のメジャーバージョンがリリースされてから1年間

なお、上位バージョン(パッチバージョンにおけるマイナーまたはメジャーバージョン、マイナーバージョンにおけるメジャーバージョン)がリリースされた場合は、 当該下位バージョンは上位バージョンによって置き換えられたものとみなします。

以下に各バージョン毎のサポート期間のサンプルを示します。

../_images/support-policy-patch.png

パッチバージョンの場合は、次のパッチバージョンがリリースされるまでがサポート期間となります。 上記サンプルの場合、 v1.0.1 がリリースされたタイミングで v1.0.0 はサポート対象外となります。

マイナーバージョン(またはメジャーバージョン)がリリースされた際は、パッチバージョンが置き換えられたものとみなし、 当該パッチバージョンはサポート対象外となります。 上記サンプルの場合、 v1.1.0 がリリースされたタイミングで ( v1.0.12 を含む) v1.0.x 系はサポート対象外となります。

../_images/support-policy-minor.png

マイナーバージョンの場合は、次のマイナーバージョンがリリースされてから1年間がサポート期間となります。 上記サンプルの場合、 v1.1.0 が2025年3月にリリースされた際、 v1.0.0 は2026年3月を以てサポート対象外となります。

メジャーバージョンがリリースされた際は、マイナーバージョンが置き換えられたものとみなし、当該マイナーバージョンはサポート対象外となります。 上記サンプルの場合、 v2.0.0 が2026年5月にリリースされた際、 v1.1.0 を含む) v1.x.x 系はサポート対象外となります。

../_images/support-policy-major.png

メジャーバージョンの場合は、次のメジャーバージョンがリリースされてから1年間がサポート期間となります。 上記サンプルの場合、 v2.0.0 が2025年3月にリリースされた際、 v1.0.0 は2026年3月を以てサポート対象外となります。

各バージョンでのサポート期間はパッケージ毎にリファレンスに記載しています。 パッケージ一覧 より、当該パッケージのリファレンスから バージョン毎のサポート期間 参照してください。 なお、マイグレーション手順が必要なケースではバージョンアップのパス情報と手順をリリースノートに記述します。

また、マイナー及びメジャーバージョンアップが発生した際は、法人テクニカルサポートWebにてアップデート情報を記載のうえ、メールにて告知します。

5.3.2. 例外条件

以下の条件に該当する場合は、上記のサポート期間を前倒してにメンテナンス期間を終了します。

  • 利用ユーザーのいないバージョンは即座に終了します。

  • PaaS 機能提供のパッケージで PaaS サポート期間がメンテナンス期間より前に終了する場合は、 PaaS のメンテナンス期間終了に合わせパッケージのメンテナンス期間を終了します。