1.6.12.2. サブスクリプションの YAML 表
非推奨: アプリケーション サブスクリプション と、アプリケーションサブスクリプションを使用するすべてのプロセスが非推奨になりました。更新された機能は、GitOps の概要 を参照してください。
| フィールド | 必須またはオプション | 説明 |
|---|---|---|
| apiVersion | 必須 |
この値は |
| kind | 必須 |
この値は |
| metadata.name | 必須 | サブスクリプションを識別する名前。 |
| metadata.namespace | 必須 | サブスクリプションに使用する namespace リソース。 |
| metadata.labels | 任意 | サブスクリプションのラベル。 |
| spec.channel | 任意 |
サブスクリプションのチャネルを定義する namespace 名 ("Namespace/Name")。 |
| spec.sourceNamespace | 任意 |
deployable を保存するハブクラスター上のソース namespace。このフィールドは namespace チャネルにのみ使用してください。 |
| spec.source | 任意 |
deployable の保存先である Helm リポジトリーのパス名 ("URL")。このフィールドは、Helm リポジトリーチャネルにだけ使用します。 |
| spec.name |
|
チャネル内にあるターゲットの Helm チャートまたは deployable の固有名。任意のフィールドである |
| spec.packageFilter | 任意 | ターゲットの deployable または deployable のサブセットを検索するのに使用するパラメーターを定義します。複数のフィルター条件が定義されている場合、deployable はすべてのフィルター条件を満たす必要があります。 |
| spec.packageFilter.version | 任意 |
deployable のバージョン。バージョンの範囲には |
| spec.packageFilter.annotations | 任意 | deployable のアノテーション。 |
| spec.packageOverrides | 任意 | チャネル内の Helm チャート、deployable、他の Kubernetes リソースなど、サブスクリプションで取得する Kubernetes リソースの上書きを定義するセクションです。 |
| spec.packageOverrides.packageName | 任意ですが、オーバーライドの設定には必須です。 | 上書きされる Kubernetes リソースを特定します。 |
| spec.packageOverrides.packageAlias | 任意 | 上書きされる Kubernetes リソースにエイリアスを指定します。 |
| spec.packageOverrides.packageOverrides | 任意 | Kubernetes リソースの上書きに使用するパラメーターおよび代替値の設定。 |
| spec.placement | 必須 | deployable を配置する必要のあるサブスクライブクラスター、またはクラスターを定義する配置ルールを特定します。配置設定を使用して、マルチクラスターデプロイメントの値を定義します。 |
| spec.placement.local | 任意ですが、スタンドアロンクラスターまたは直接管理するクラスターには必須です。 | サブスクリプションをローカルにデプロイする必要があるかどうかを定義します。
サブスクリプションと、指定のチャネルを同期させるには、値を
指定のチャネルからリソースをサブスクライブしないようにするには、この値を
クラスターがスタンドアロンクラスターの場合や、このクラスターを直接管理している場合は、このフィールドを使用します。クラスターがマルチクラスターに含まれており、クラスターを直接管理する必要がない場合は、 |
| spec.placement.clusters | 任意 |
サブスクリプションを配置するクラスターを定義します。 |
| spec.placement.clusters.name | 任意ですが、サブスクライブするクラスターを定義するには必須です。 | サブスクライブするクラスターの名前です。 |
| spec.placement.clusterSelector | 任意 |
サブスクリプションを配置するクラスターを識別するために使用するラベルセレクターを定義します。 |
| spec.placement.placementRef | 任意 |
サブスクリプションに使用する配置ルールを定義します。 |
| spec.placement.placementRef.name | 任意ですが、配置ルールを使用するには必須です。 | サブスクリプションの配置ルールの名前です。 |
| spec.placement.placementRef.kind | 任意ですが、配置ルールを使用するには必須です。 |
この値を |
| spec.overrides | 任意 | クラスター固有の設定など、上書きする必要のあるパラメーターおよび値。 |
| spec.overrides.clusterName | 任意 | パラメーターおよび値を上書するクラスターの名前。 |
| spec.overrides.clusterOverrides | 任意 | 上書きするパラメーターおよび値の設定。 |
| spec.timeWindow | 任意 | サブスクリプションがアクティブな期間、またはブロックされる期間の設定を定義します。 |
| spec.timeWindow.type | 任意ですが、期間の設定には必須 | 設定した期間中に、サブスクリプションがアクティブであるか、ブロックされるかを指定します。サブスクリプションのデプロイメントは、サブスクリプションがアクティブな場合にのみ行われます。 |
| spec.timeWindow.location | 任意ですが、期間の設定には必須 | 設定した期間のタイムゾーン。タイムゾーンはすべて Time Zone (tz) データベース名の形式を使用する必要があります。詳細は、Time Zone Database を参照します。 |
| spec.timeWindow.daysofweek | 任意ですが、期間の設定には必須 |
期間の作成時に時間の範囲を適用する場合は、曜日を指定します。 |
| spec.timeWindow.hours | 任意ですが、期間の設定には必須 | 期間の範囲を定義します。期間ごとに、開始時間と終了時間 (時間単位) を定義する必要があります。サブスクリプションには複数の期間を定義する必要があります。 |
| spec.timeWindow.hours.start | 任意ですが、期間の設定には必須 |
期間の開始を定義するタイムスタンプです。タイムスタンプには、Go プログラミング言語の Kitchen 形式 |
| spec.timeWindow.hours.end | 任意ですが、期間の設定には必須 |
期間の終了を定義するタイムスタンプです。タイムスタンプには、Go プログラミング言語の Kitchen 形式 |
注記:
-
YAML の定義時には、サブスクリプションは
packageFiltersを使用して複数の Helm ダート、deployable、またはその他の Kubernetes リソースを参照できます。ただし、サブスクリプションは、チャート、deployable、その他のリソースの最新バージョンのみをデプロイします。 -
期間の範囲を定義する場合には、開始時間は、終了時間より前に設定する必要があります。サブスクリプションに複数の期間を定義する場合は、期間の範囲を重複させることができません。実際の時間の範囲は、
subscription-controllerのコンテナーの時間をもとにしていますが、作業環境とは異なる時間および場所を設定することができます。 - サブスクリプション仕様では、サブスクリプションの定義の一部として Helm リリースの配置を定義することもできます。サブスクリプションごとに、既存の配置ルールを参照するか、サブスクリプション定義内に直接配置ルールを定義できます。
-
spec.placementセクションに、サブスクリプションの配置先を定義する時には、マルチクラスター環境のclusters、clusterSelector、またはplacementRefの 1 つだけを使用します。 複数の配置設定を追加した場合は、1 つの設定が使用され、他の設定は無視されます。サブスクリプション Operator が使用する設定を決定するために、以下の優先順位で使用されます。
-
placementRef -
clusters -
clusterSelector
-
サブスクリプションは、以下の YAML コンテンツのようになります。
apiVersion: apps.open-cluster-management.io/v1
kind: Subscription
metadata:
name: nginx
namespace: ns-sub-1
labels:
app: nginx-app-details
spec:
channel: ns-ch/predev-ch
name: nginx-ingress
packageFilter:
version: "1.36.x"
placement:
placementRef:
kind: Placement
name: towhichcluster
overrides:
- clusterName: "/"
clusterOverrides:
- path: "metadata.namespace"
value: default