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. パッケージ一覧¶
カテゴリ |
パッケージ |
概要 |
|---|---|---|
アプリケーション |
ステートレスな Docker イメージをホストする機能を提供する。 本パッケージは、コンテナの配置だけではなく、Secret の作成とマウント、ネットワーク設定等 アプリケーションの公開に必要な設定と、 運用に必要な BlueGreen Deploy 設定等のリソースを作成する。 |
|
任意の Docker image 及びコマンドを指定し、定期実行Jobを登録する。 |
||
データ |
マネージド RDB のインスタンス作成からDB設定までの機能を提供する。 |
|
マネージド Object bucket ストレージの作成及び設定の機能を提供する。 |
||
マネージド コンテナレジストリーの作成及び設定の機能を提供する。 |
||
マネージドの非同期メッセージングサービス設定を行う機能を提供する。 |
||
AWS Auroraの作成・設定を行う機能を提供する。 |
||
ネットワーク |
マネージド DNS のレコード管理機能を提供する。 |
|
Gatewayの作成・設定を行う機能を提供する。 |
||
パブリックIPの作成を行う機能を提供する。 |
||
セキュリティ |
マネージド KMS 設定機能を提供する。 本パッケージではデフォルト KMS コンテナの作成のため、管理用パッケージとしても利用する。 |
5.2. IAM 管理用 マニフェスト¶
本マニフェストは、AWS における IAM 関連クラウドリソースを一元管理するためのものです。
5.2.1. パッケージ一覧¶
Kind |
パッケージ |
概要 |
|---|---|---|
IamGroup |
IAM Group管理機能を提供する。 |
|
IamUser |
IAM User管理機能を提供する。 |
|
IamRole |
IAM Role管理機能を提供する。 |
|
IamK8sAccess |
Kubernetes リソースへのアクセス権限をIAMリソースに付与する機能を提供する。 |
パッケージリファレンス
5.2.2. パッケージ構成と関係図¶
以下の図は、各パッケージ間の構成および連携関係を示しています。
5.2.3. ユースケース1 : IAM ユーザーのkubectl アクセス制限¶
本ユースケースでは、以下の各パッケージを連携させることで、IAM ユーザーの kubectl アクセスを適切に制御します。
IamGroup および IamUser パッケージで、ユーザーおよびそのポリシーの管理を行います。
IamRole パッケージで、スイッチロール先となるロールとそのポリシーを管理します。
IamK8sAccess パッケージで、IAM ロールに対して Kubernetes リソースへのアクセス権限を付与します。
5.2.4. ユースケース2 : GitHub ActionとのOIDC連携¶
本ユースケースでは、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におけるバージョン管理ルールを示します。
ユーザー用パッケージの各バージョンのサポート期間は以下のルールとします。
Version |
サポート期間 |
|---|---|
パッチバージョン |
次のパッチバージョンがリリースされるまで |
マイナーバージョン |
次のマイナーバージョンがリリースされてから1年間 |
メジャーバージョン |
次のメジャーバージョンがリリースされてから1年間 |
なお、上位バージョン(パッチバージョンにおけるマイナーまたはメジャーバージョン、マイナーバージョンにおけるメジャーバージョン)がリリースされた場合は、 当該下位バージョンは上位バージョンによって置き換えられたものとみなします。
以下に各バージョン毎のサポート期間のサンプルを示します。
パッチバージョンの場合は、次のパッチバージョンがリリースされるまでがサポート期間となります。 上記サンプルの場合、 v1.0.1 がリリースされたタイミングで v1.0.0 はサポート対象外となります。
マイナーバージョン(またはメジャーバージョン)がリリースされた際は、パッチバージョンが置き換えられたものとみなし、 当該パッチバージョンはサポート対象外となります。 上記サンプルの場合、 v1.1.0 がリリースされたタイミングで ( v1.0.12 を含む) v1.0.x 系はサポート対象外となります。
マイナーバージョンの場合は、次のマイナーバージョンがリリースされてから1年間がサポート期間となります。 上記サンプルの場合、 v1.1.0 が2025年3月にリリースされた際、 v1.0.0 は2026年3月を以てサポート対象外となります。
メジャーバージョンがリリースされた際は、マイナーバージョンが置き換えられたものとみなし、当該マイナーバージョンはサポート対象外となります。 上記サンプルの場合、 v2.0.0 が2026年5月にリリースされた際、 v1.1.0 を含む) v1.x.x 系はサポート対象外となります。
メジャーバージョンの場合は、次のメジャーバージョンがリリースされてから1年間がサポート期間となります。 上記サンプルの場合、 v2.0.0 が2025年3月にリリースされた際、 v1.0.0 は2026年3月を以てサポート対象外となります。
各バージョンでのサポート期間はパッケージ毎にリファレンスに記載しています。 パッケージ一覧 より、当該パッケージのリファレンスから バージョン毎のサポート期間 参照してください。 なお、マイグレーション手順が必要なケースではバージョンアップのパス情報と手順をリリースノートに記述します。
また、マイナー及びメジャーバージョンアップが発生した際は、法人テクニカルサポートWebにてアップデート情報を記載のうえ、メールにて告知します。
5.3.2. 例外条件¶
以下の条件に該当する場合は、上記のサポート期間を前倒してにメンテナンス期間を終了します。
利用ユーザーのいないバージョンは即座に終了します。
PaaS 機能提供のパッケージで PaaS サポート期間がメンテナンス期間より前に終了する場合は、 PaaS のメンテナンス期間終了に合わせパッケージのメンテナンス期間を終了します。