19.9. PolicyGenTemplate リソースを使用した高度なマネージドクラスター設定
PolicyGenTemplate
CR を使用して、マネージドクラスターにカスタム機能をデプロイできます。
19.9.1. 追加の変更のクラスターへのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
GitOps ZTP パイプラインの基本設定以外のクラスター設定の変更が必要な場合、3 つのオプションがあります。
- ZTP パイプラインが完了した後に、追加設定を適用します。
- GitOps ZTP パイプラインのデプロイが完了すると、デプロイされたクラスターはアプリケーションのワークロードに対応できるようになります。この時点で、Operator を追加インストールし、お客様の要件に応じた設定を適用することができます。追加のコンフィギュレーションがプラットフォームのパフォーマンスや割り当てられた CPU バジェットに悪影響を与えないことを確認する。
- 追加する、追加 ZTP ライブラリーにコンテンツを追加します。
- GitOps ZTP パイプラインでデプロイするベースソースのカスタムリソース (CR) は、必要に応じてカスタムコンテンツで拡張できます。
- クラスターインストール用の追加マニフェストの作成
- インストール時に余分なマニフェストが適用され、インストール作業を効率化することができます。
追加のソース CR を提供したり、既存のソース CR を変更したりすると、OpenShift Container Platform のパフォーマンスまたは CPU プロファイルに大きな影響を与える可能性があります。
19.9.2. PolicyGenTemplate CR を使用して、ソース CR の内容を上書きする。 リンクのコピーリンクがクリップボードにコピーされました!
PolicyGenTemplate
カスタムリソース (CR) を使用すると、ztp-site-generate
コンテナーの GitOps プラグインで提供されるベースソース CR の上に追加の設定の詳細をオーバーレイできます。PolicyGenTemplate
CR は、ベース CR の論理マージまたはパッチとして解釈できます。PolicyGenTemplate
CR を使用して、ベース CR の単一フィールドを更新するか、ベース CR の内容全体をオーバーレイします。ベース CR にない値の更新やフィールドの挿入が可能です。
以下の手順例では、group-du-sno-ranGen.yaml
ファイル内の PolicyGenTemplate
CR に基づいて、参照設定用に生成された PerformanceProfile
CR のフィールドを更新する方法を説明します。この手順を元に、PolicyGenTemplate
の他の部分をお客様のご要望に応じて変更してください。
前提条件
- カスタムサイトの設定データを管理する Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセス可能で、Argo CD のソースリポジトリーとして定義されている必要があります。
手順
既存のコンテンツのベースラインソース CR を確認します。参考となる
PolicyGenTemplate
CR に記載されているソース CR を ZTP (zero touch provisioning) コンテナーから抽出し、確認することができます。/out
フォルダーを作成します。mkdir -p ./out
$ mkdir -p ./out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ソース CR を抽出します。
podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.12.1 extract /home/ztp --tar | tar x -C ./out
$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.12.1 extract /home/ztp --tar | tar x -C ./out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
./out/source-crs/PerformanceProfile.yaml
にあるベースラインPerformanceProfile
CR を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ソース CR のフィールドで
$...
を含むものは、PolicyGenTemplate
CR で提供されない場合、生成された CR から削除されます。group-du-sno-ranGen.yaml
リファレンスファイルのPerformanceProfile
のPolicyGenTemplate
エントリーを更新します。次の例のPolicyGenTemplate
CR スタンザは、適切な CPU 仕様を提供し、hugepages
設定を設定し、globallyDisableIrqLoadBalancing
を false に設定する新しいフィールドを追加しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Git で
PolicyGenTemplate
変更をコミットし、GitOps ZTP argo CD アプリケーションによって監視される Git リポジトリーにプッシュします。
出力例
ZTP アプリケーションは、生成された PerformanceProfile
CR を含む RHACM ポリシーを生成します。この CR の内容は, PolicyGenTemplate
の PerformanceProfile
エントリーから metadata
と spec
の内容をソース CR にマージすることで得られるものである.作成される CR には以下のコンテンツが含まれます。
ztp-site-generate
コンテナーからデプロイメントした /source-crs
フォルダーでは、$
構文が暗示するテンプレート置換は使用されません。むしろ、policyGen
ツールが文字列の $
接頭辞を認識し、関連する PolicyGenTemplate
CR でそのフィールドの値を指定しない場合、そのフィールドは出力 CR から完全に省かれます。
例外として、/source-crs
YAML ファイル内の $mcp
変数は、PolicyGenTemplate
CR から mcp
の指定値で代用されます。たとえば、example/policygentemplates/group-du-standard-ranGen.yaml
では、mcp
の値は worker
となっています。
spec: bindingRules: group-du-standard: "" mcp: "worker"
spec:
bindingRules:
group-du-standard: ""
mcp: "worker"
policyGen
ツールは、$mcp
のインスタンスを出力 CR の worker
に置き換えます。
19.9.3. GitOps ZTP パイプラインへのカスタムコンテンツの追加 リンクのコピーリンクがクリップボードにコピーされました!
ZTP パイプラインに新しいコンテンツを追加するには、次の手順を実行します。
手順
-
PolicyGenTemplate
カスタムリソース (CR) のkustomization.yaml
ファイルが含まれるディレクトリーに、source-crs
という名前のサブディレクトリーを作成します。 以下の例のように、カスタム CR を
source-crs
サブディレクトリーに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
source-crs
サブディレクトリーは、kustomization.yaml
ファイルと同じディレクトリーにある必要があります。
重要独自のリソースを使用するには、カスタム CR 名が ZTP コンテナーで提供されるデフォルトのソース CR とは異なることを確認してください。
必要な
PolicyGenTemplate
CR を更新して、source-crs/custom-crs
およびsource-crs/elasticsearch
ディレクトリーに追加したコンテンツへの参照を含めます。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Git で
PolicyGenTemplate
の変更をコミットし、GitOps ZTP Argo CD ポリシーアプリケーションが監視する Git リポジトリーにプッシュします。 ClusterGroupUpgrade
CR を更新して、変更されたPolicyGenTemplate
を含め、cgu-test.yaml
として保存します。次の例は、生成されたcgu-test.yaml
ファイルを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、更新された
ClusterGroupUpgrade
CR を適用します。oc apply -f cgu-test.yaml
$ oc apply -f cgu-test.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、更新が成功したことを確認します。
oc get cgu -A
$ oc get cgu -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAMESPACE NAME AGE STATE DETAILS ztp-clusters custom-source-cr 6s InProgress Remediating non-compliant policies ztp-install cluster1 19h Completed All clusters are compliant with all the managed policies
NAMESPACE NAME AGE STATE DETAILS ztp-clusters custom-source-cr 6s InProgress Remediating non-compliant policies ztp-install cluster1 19h Completed All clusters are compliant with all the managed policies
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.9.4. PolicyGenTemplate CR のポリシーコンプライアンス評価タイムアウトの設定 リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターにインストールされた Red Hat Advanced Cluster Management (RHACM) を使用して、マネージドクラスターが適用されたポリシーに準拠しているかどうかを監視および報告します。RHACM は、ポリシーテンプレートを使用して、定義済みのポリシーコントローラーとポリシーを適用します。ポリシーコントローラーは Kubernetes のカスタムリソース定義 (CRD) インスタンスです。
デフォルトのポリシー評価間隔は、PolicyGenTemplate
カスタムリソース (CR) でオーバーライドできます。RHACM が適用されたクラスターポリシーを再評価する前に、ConfigurationPolicy
CR がポリシー準拠または非準拠の状態を維持できる期間を定義する期間設定を設定します。
ゼロタッチプロビジョニング (ZTP) ポリシージェネレーターは、事前定義されたポリシー評価間隔で ConfigurationPolicy
CR ポリシーを生成します。noncompliant
状態のデフォルト値は 10 秒です。compliant
状態のデフォルト値は 10 分です。評価間隔を無効にするには、値を never
に設定します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてハブクラスターにログインしている。 - カスタムサイトの設定データを管理する Git リポジトリーを作成している。
手順
PolicyGenTemplate
CR のすべてのポリシーの評価間隔を設定するには、evaluationInterval
をspec
フィールドに追加し、適切なcompliant
値とnoncompliant
値を設定します。以下に例を示します。spec: evaluationInterval: compliant: 30m noncompliant: 20s
spec: evaluationInterval: compliant: 30m noncompliant: 20s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PolicyGenTemplate
CR でspec.sourceFiles
オブジェクトの評価間隔を設定するには、次の例のように、evaluationInterval
をsourceFiles
フィールドに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
PolicyGenTemplate
CR ファイルを Git リポジトリーにコミットし、変更をプッシュします。
検証
マネージドスポーククラスターポリシーが予想される間隔で監視されていることを確認します。
-
マネージドクラスターで
cluster-admin
権限を持つユーザーとしてログインします。 open-cluster-management-agent-addon
namespace で実行されている Pod を取得します。以下のコマンドを実行します。oc get pods -n open-cluster-management-agent-addon
$ oc get pods -n open-cluster-management-agent-addon
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE config-policy-controller-858b894c68-v4xdb 1/1 Running 22 (5d8h ago) 10d
NAME READY STATUS RESTARTS AGE config-policy-controller-858b894c68-v4xdb 1/1 Running 22 (5d8h ago) 10d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow config-policy-controller
Pod のログで、適用されたポリシーが予想される間隔で評価されていることを確認します。oc logs -n open-cluster-management-agent-addon config-policy-controller-858b894c68-v4xdb
$ oc logs -n open-cluster-management-agent-addon config-policy-controller-858b894c68-v4xdb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
2022-05-10T15:10:25.280Z info configuration-policy-controller controllers/configurationpolicy_controller.go:166 Skipping the policy evaluation due to the policy not reaching the evaluation interval {"policy": "compute-1-config-policy-config"} 2022-05-10T15:10:25.280Z info configuration-policy-controller controllers/configurationpolicy_controller.go:166 Skipping the policy evaluation due to the policy not reaching the evaluation interval {"policy": "compute-1-common-compute-1-catalog-policy-config"}
2022-05-10T15:10:25.280Z info configuration-policy-controller controllers/configurationpolicy_controller.go:166 Skipping the policy evaluation due to the policy not reaching the evaluation interval {"policy": "compute-1-config-policy-config"} 2022-05-10T15:10:25.280Z info configuration-policy-controller controllers/configurationpolicy_controller.go:166 Skipping the policy evaluation due to the policy not reaching the evaluation interval {"policy": "compute-1-common-compute-1-catalog-policy-config"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.9.5. バリデーターインフォームポリシーを使用した ZTP クラスターデプロイメントの完了のシグナリング リンクのコピーリンクがクリップボードにコピーされました!
デプロイされたクラスターのゼロタッチプロビジョニング (ZTP) のインストールと設定が完了したときに通知するバリデーター通知ポリシーを作成します。このポリシーは、単一ノード OpenShift クラスター、3 ノードクラスター、および標準クラスターのデプロイメントに使用できます。
手順
ソースファイル
validatorCRs/informDuValidator.yaml
を含むスタンドアロンのPolicyGenTemplate
カスタムリソース (CR) を作成します。スタンドアロンPolicyGenTemplate
CR は、各クラスタータイプに 1 つだけ必要です。たとえば、次の CR は、シングルノード OpenShift クラスターにバリデータ通知ポリシーを適用します。単一ノードクラスターバリデータ通知ポリシー CR の例 (group-du-sno-validator-ranGen.yaml)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
PolicyGenTemplates
オブジェクトの名前。この名前は、placementBinding
、placementRule
、および要求されたnamespace
で作成されるpolicy
の一部としても使用されます。- 2
- この値は、グループ
PolicyGenTemplates
で使用されるnamespace
と一致する必要があります。 - 3
bindingRules
で定義されたgroup-du-*
ラベルはSiteConfig
ファイルに存在している必要があります。- 4
bindingExcludedRules
で定義されたラベルは `ztp-done:` でなければなりません。ztp-done
ラベルは、Topology Aware Lifecycle Manager と調整するために使用されます。- 5
mcp
はソースファイルvalidatorCRs/informDuValidator.yaml
で使用されるMachineConfigPool
オブジェクトを定義する。これは、シングルノードの場合はmaster
であり、標準のクラスターデプロイメントの場合は 3 ノードクラスターデプロイメントおよびworker
である必要があります。- 6
- オプション: デフォルト値は
inform
です。 - 7
- この値は、生成された RHACM ポリシーの名前の一部として使用されます。シングルノードの例の生成されたバリデーターポリシーは
group-du-sno-validator-du-policy
という名前です。
-
PolicyGenTemplate
CR ファイルを Git リポジトリーにコミットし、変更をプッシュします。
19.9.6. PolicyGenTemplate CR を使用した PTP イベントの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps ZTP パイプラインを使用して、HTTP または AMQP トランスポートを使用する PTP イベントを設定できます。
HTTP トランスポートは、PTP およびベアメタルイベントのデフォルトのトランスポートです。可能な場合、PTP およびベアメタルイベントには AMQP ではなく HTTP トランスポートを使用してください。AMQ Interconnect は、2024 年 6 月 30 日で EOL になります。AMQ Interconnect の延長ライフサイクルサポート (ELS) は 2029 年 11 月 29 日に終了します。詳細は、Red Hat AMQ Interconnect のサポートステータス を参照してください。
19.9.6.1. HTTP トランスポートを使用する PTP イベントの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) パイプラインを使用してデプロイしたマネージドクラスター上で、HTTP トランスポートを使用する PTP イベントを設定できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - カスタムサイトの設定データを管理する Git リポジトリーを作成している。
手順
要件に応じて、以下の
PolicyGenTemplate
の変更をgroup-du-3node-ranGen.yaml
、group-du-sno-ranGen.yaml
、またはgroup-du-standard-ranGen.yaml
ファイルに適用してください。.sourceFiles
に、トランスポートホストを設定するPtpOperatorConfig
CR ファイルを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記OpenShift Container Platform 4.12 以降では、PTP イベントに HTTP トランスポートを使用するときに、
PtpOperatorConfig
リソースのtransportHost
フィールドを設定する必要はありません。PTP クロックの種類とインターフェイスに
linuxptp
とphc2sys
を設定します。たとえば、以下のスタンザを.sourceFiles
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 必要に応じて、
PtpConfigMaster.yaml
、PtpConfigSlave.yaml
、またはPtpConfigSlaveCvl.yaml
のいずれか 1 つを指定できます。PtpConfigSlaveCvl.yaml
は、Intel E810 Columbiaville NIC のlinuxptp
サービスを設定します。group-du-sno-ranGen.yaml
およびgroup-du-3node-ranGen.yaml
に基づいて設定する場合は、PtpConfigSlave.yaml
を使用します。 - 2
- デバイス固有のインターフェイス名。
- 3
- PTP 高速イベントを有効にするには、
.spec.sourceFiles.spec.profile
のptp4lOpts
に--summary_interval -4
値を追加する必要があります。 - 4
phc2sysOpts
の値が必要です。-m
はメッセージをstdout
に出力します。linuxptp-daemon
DaemonSet
はログを解析し、Prometheus メトリックを生成します。- 5
- オプション:
ptpClockThreshold
スタンザが存在しない場合は、ptpClockThreshold
フィールドにデフォルト値が使用されます。スタンザは、デフォルトのptpClockThreshold
値を示します。ptpClockThreshold
値は、PTP マスタークロックが PTP イベントが発生する前に切断されてからの期間を設定します。holdOverTimeout
は、PTP マスタークロックが切断されたときに、PTP クロックイベントの状態がFREERUN
に変わるまでの時間値 (秒単位) です。maxOffsetThreshold
およびminOffsetThreshold
設定は、CLOCK_REALTIME
(phc2sys
) またはマスターオフセット (ptp4l
) の値と比較するナノ秒単位のオフセット値を設定します。ptp4l
またはphc2sys
のオフセット値がこの範囲外の場合、PTP クロックの状態がFREERUN
に設定されます。オフセット値がこの範囲内にある場合、PTP クロックの状態がLOCKED
に設定されます。
- 必要なその他の変更およびファイルをカスタムサイトリポジトリーにマージします。
- 変更をサイト設定リポジトリーにプッシュし、GitOps ZTP を使用して PTP 高速イベントを新規サイトにデプロイします。
19.9.6.2. AMQP トランスポートを使用する PTP イベントの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) パイプラインを使用してデプロイするマネージドクラスター上で、AMQP トランスポートを使用する PTP イベントを設定できます。
HTTP トランスポートは、PTP およびベアメタルイベントのデフォルトのトランスポートです。可能な場合、PTP およびベアメタルイベントには AMQP ではなく HTTP トランスポートを使用してください。AMQ Interconnect は、2024 年 6 月 30 日で EOL になります。AMQ Interconnect の延長ライフサイクルサポート (ELS) は 2029 年 11 月 29 日に終了します。詳細は、Red Hat AMQ Interconnect のサポートステータス を参照してください。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - カスタムサイトの設定データを管理する Git リポジトリーを作成している。
手順
common-ranGen.yaml
ファイルの.spec.sourceFiles
に以下の YAML を追加し、AMQP Operator を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要件に応じて、以下の
PolicyGenTemplate
の変更をgroup-du-3node-ranGen.yaml
、group-du-sno-ranGen.yaml
、またはgroup-du-standard-ranGen.yaml
ファイルに適用してください。.sourceFiles
に、AMQ トランスポートホストを設定するPtpOperatorConfig
CR ファイルをconfig-policy
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PTP クロックの種類とインターフェイスに
linuxptp
とphc2sys
を設定します。たとえば、以下のスタンザを.sourceFiles
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 要件に応じて、
PtpConfigMaster.yaml
、PtpConfigSlave.yaml
、またはPtpConfigSlaveCvl.yaml
を 1 つ指定できます。PtpConfigSlaveCvl.yaml
は、Intel E810 Columbiaville NIC のlinuxptp
サービスを設定します。group-du-sno-ranGen.yaml
およびgroup-du-3node-ranGen.yaml
に基づいて設定する場合は、PtpConfigSlave.yaml
を使用します。 - 2
- デバイス固有のインターフェイス名。
- 3
- PTP 高速イベントを有効にするには、
.spec.sourceFiles.spec.profile
のptp4lOpts
に--summary_interval -4
値を追加する必要があります。 - 4
phc2sysOpts
の値が必要です。-m
はメッセージをstdout
に出力します。linuxptp-daemon
DaemonSet
はログを解析し、Prometheus メトリックを生成します。- 5
- オプション:
ptpClockThreshold
スタンザが存在しない場合は、ptpClockThreshold
フィールドにデフォルト値が使用されます。スタンザは、デフォルトのptpClockThreshold
値を示します。ptpClockThreshold
値は、PTP マスタークロックが PTP イベントが発生する前に切断されてからの期間を設定します。holdOverTimeout
は、PTP マスタークロックが切断されたときに、PTP クロックイベントの状態がFREERUN
に変わるまでの時間値 (秒単位) です。maxOffsetThreshold
およびminOffsetThreshold
設定は、CLOCK_REALTIME
(phc2sys
) またはマスターオフセット (ptp4l
) の値と比較するナノ秒単位のオフセット値を設定します。ptp4l
またはphc2sys
のオフセット値がこの範囲外の場合、PTP クロックの状態がFREERUN
に設定されます。オフセット値がこの範囲内にある場合、PTP クロックの状態がLOCKED
に設定されます。
以下の
PolicyGenTemplate
の変更を、特定のサイトの YAML ファイル (例:example-sno-site.yaml
) に適用してください。.sourceFiles
に、AMQ ルーターを設定するInterconnect
CR ファイルをconfig-policy
に追加します。- fileName: AmqInstance.yaml policyName: "config-policy"
- fileName: AmqInstance.yaml policyName: "config-policy"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 必要なその他の変更およびファイルをカスタムサイトリポジトリーにマージします。
- 変更をサイト設定リポジトリーにプッシュし、GitOps ZTP を使用して PTP 高速イベントを新規サイトにデプロイします。
19.9.7. PolicyGenTemplate CR を使用したベアメタルイベントの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps ZTP パイプラインを使用して、HTTP または AMQP トランスポートを使用するベアメタルイベントを設定できます。
HTTP トランスポートは、PTP およびベアメタルイベントのデフォルトのトランスポートです。可能な場合、PTP およびベアメタルイベントには AMQP ではなく HTTP トランスポートを使用してください。AMQ Interconnect は、2024 年 6 月 30 日で EOL になります。AMQ Interconnect の延長ライフサイクルサポート (ELS) は 2029 年 11 月 29 日に終了します。詳細は、Red Hat AMQ Interconnect のサポートステータス を参照してください。
19.9.7.1. HTTP トランスポートを使用するベアメタルイベントの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) パイプラインを使用してデプロイしたマネージドクラスター上で、HTTP トランスポートを使用するベアメタルイベントを設定できます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - カスタムサイトの設定データを管理する Git リポジトリーを作成している。
手順
次の YAML を
common-ranGen.yaml
ファイルのspec.sourceFiles
に追加して、Bare Metal Event Relay Operator を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
group-du-sno-ranGen.yaml
ファイルの特定のグループ設定ファイルで、HardwareEvent
CR をspec.sourceFiles
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 各ベースボード管理コントローラー (BMC) では、1 つの
HardwareEvent
CR のみ必要です。
注記OpenShift Container Platform 4.12 以降では、ベアメタルイベントで HTTP トランスポートを使用する場合、
HardwareEvent
カスタムリソース (CR) のTransportHost
フィールドを設定する必要はありません。- 必要なその他の変更およびファイルをカスタムサイトリポジトリーにマージします。
- 変更をサイト設定リポジトリーにプッシュし、GitOps ZTP を使用してベアメタルイベントを新しいサイトにデプロイします。
次のコマンドを実行して Redfish シークレットを作成します。
oc -n openshift-bare-metal-events create secret generic redfish-basic-auth \ --from-literal=username=<bmc_username> --from-literal=password=<bmc_password> \ --from-literal=hostaddr="<bmc_host_ip_addr>"
$ oc -n openshift-bare-metal-events create secret generic redfish-basic-auth \ --from-literal=username=<bmc_username> --from-literal=password=<bmc_password> \ --from-literal=hostaddr="<bmc_host_ip_addr>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.9.7.2. AMQP トランスポートを使用するベアメタルイベントの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) パイプラインを使用してデプロイしたマネージドクラスター上で、AMQP トランスポートを使用するベアメタルイベントを設定できます。
HTTP トランスポートは、PTP およびベアメタルイベントのデフォルトのトランスポートです。可能な場合、PTP およびベアメタルイベントには AMQP ではなく HTTP トランスポートを使用してください。AMQ Interconnect は、2024 年 6 月 30 日で EOL になります。AMQ Interconnect の延長ライフサイクルサポート (ELS) は 2029 年 11 月 29 日に終了します。詳細は、Red Hat AMQ Interconnect のサポートステータス を参照してください。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。 - カスタムサイトの設定データを管理する Git リポジトリーを作成している。
手順
AMQ Interconnect Operator と Bare Metal Event Relay Operator を設定するには、次の YAML を
common-ranGen.yaml
ファイルのspec.sourceFiles
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Interconnect
CR をサイト設定ファイルの.spec.sourceFiles
(example-sno-site.yaml
ファイルなど) に追加します。- fileName: AmqInstance.yaml policyName: "config-policy"
- fileName: AmqInstance.yaml policyName: "config-policy"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
group-du-sno-ranGen.yaml
ファイルの特定のグループ設定ファイルで、HardwareEvent
CR をspec.sourceFiles
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
transportHost
URL は、既存の AMQ Interconnect CRname
とnamespace
で構成されます。たとえば、transportHost: "amqp://amq-router.amq-router.svc.cluster.local"
では、AMQ Interconnect のname
とnamespace
の両方がamq-router
に設定されます。
注記各ベースボード管理コントローラー (BMC) には、単一の
HardwareEvent
リソースのみが必要です。-
Git で
PolicyGenTemplate
の変更をコミットし、その変更をサイト設定リポジトリーにプッシュして、GitOps ZTP を使用してベアメタルイベント監視を新しいサイトにデプロイします。 次のコマンドを実行して Redfish シークレットを作成します。
oc -n openshift-bare-metal-events create secret generic redfish-basic-auth \ --from-literal=username=<bmc_username> --from-literal=password=<bmc_password> \ --from-literal=hostaddr="<bmc_host_ip_addr>"
$ oc -n openshift-bare-metal-events create secret generic redfish-basic-auth \ --from-literal=username=<bmc_username> --from-literal=password=<bmc_password> \ --from-literal=hostaddr="<bmc_host_ip_addr>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.9.8. イメージをローカルにキャッシュするための Image Registry Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、ローカルレジストリーを使用してイメージのキャッシュを管理します。エッジコンピューティングのユースケースでは、クラスターは集中型のイメージレジストリーと通信するときに帯域幅の制限を受けることが多く、イメージのダウンロード時間が長くなる可能性があります。
初期デプロイメント中はダウンロードに時間がかかることは避けられません。時間の経過とともに、予期しないシャットダウンが発生した場合に CRI-O が /var/lib/containers/storage
ディレクトリーを消去するリスクがあります。長いイメージダウンロード時間に対処するために、GitOps ZTP を使用してリモートマネージドクラスター上にローカルイメージレジストリーを作成できます。これは、クラスターがネットワークの遠端にデプロイメントされるエッジコンピューティングシナリオで役立ちます。
GitOps ZTP を使用してローカルイメージレジストリーをセットアップする前に、リモートマネージドクラスターのインストールに使用する SiteConfig
CR でディスクパーティショニングを設定する必要があります。インストール後、PolicyGenTemplate
CR を使用してローカルイメージレジストリーを設定します。次に、ZTP パイプラインは永続ボリューム (PV) と永続ボリューム要求 (PVC) CR を作成し、imageregistry
設定にパッチを適用します。
ローカルイメージレジストリーは、ユーザーアプリケーションイメージにのみ使用でき、OpenShift Container Platform または Operator Lifecycle Manager Operator イメージには使用できません。
19.9.8.1. SiteConfig を使用したディスクパーティショニングの設定 リンクのコピーリンクがクリップボードにコピーされました!
SiteConfig
CR と GitOps Zero Touch Provisioning (ZTP) を使用して、マネージドクラスターのディスクパーティションを設定します。SiteConfig
CR のディスクパーティションの詳細は、基になるディスクと一致する必要があります。
この手順はインストール時に完了する必要があります。
前提条件
- Butane をインストールしている。
手順
次のサンプル YAML ファイルを使用して、
storage.bu
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
storage.bu
を Ignition ファイルに変換します。butane storage.bu
$ butane storage.bu
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{"ignition":{"version":"3.2.0"},"storage":{"disks":[{"device":"/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0","partitions":[{"label":"var-lib-containers","sizeMiB":0,"startMiB":250000}],"wipeTable":false}],"filesystems":[{"device":"/dev/disk/by-partlabel/var-lib-containers","format":"xfs","mountOptions":["defaults","prjquota"],"path":"/var/lib/containers","wipeFilesystem":true}]},"systemd":{"units":[{"contents":"# # Generated by Butane\n[Unit]\nRequires=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\nAfter=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\n\n[Mount]\nWhere=/var/lib/containers\nWhat=/dev/disk/by-partlabel/var-lib-containers\nType=xfs\nOptions=defaults,prjquota\n\n[Install]\nRequiredBy=local-fs.target","enabled":true,"name":"var-lib-containers.mount"}]}}
{"ignition":{"version":"3.2.0"},"storage":{"disks":[{"device":"/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0","partitions":[{"label":"var-lib-containers","sizeMiB":0,"startMiB":250000}],"wipeTable":false}],"filesystems":[{"device":"/dev/disk/by-partlabel/var-lib-containers","format":"xfs","mountOptions":["defaults","prjquota"],"path":"/var/lib/containers","wipeFilesystem":true}]},"systemd":{"units":[{"contents":"# # Generated by Butane\n[Unit]\nRequires=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\nAfter=systemd-fsck@dev-disk-by\\x2dpartlabel-var\\x2dlib\\x2dcontainers.service\n\n[Mount]\nWhere=/var/lib/containers\nWhat=/dev/disk/by-partlabel/var-lib-containers\nType=xfs\nOptions=defaults,prjquota\n\n[Install]\nRequiredBy=local-fs.target","enabled":true,"name":"var-lib-containers.mount"}]}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - JSON Pretty Print などのツールを使用して、出力を JSON 形式に変換します。
出力を
SiteConfig
CR の.spec.clusters.nodes.ignitionConfigOverride
フィールドにコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記.spec.clusters.nodes.ignitionConfigOverride
フィールドが存在しない場合は、作成します。
検証
インストール中またはインストール後に、次のコマンドを実行して、ハブクラスターで
BareMetalHost
オブジェクトにアノテーションが表示されていることを確認します。oc get bmh -n my-sno-ns my-sno -ojson | jq '.metadata.annotations["bmac.agent-install.openshift.io/ignition-config-overrides"]
$ oc get bmh -n my-sno-ns my-sno -ojson | jq '.metadata.annotations["bmac.agent-install.openshift.io/ignition-config-overrides"]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
"{\"ignition\":{\"version\":\"3.2.0\"},\"storage\":{\"disks\":[{\"device\":\"/dev/disk/by-id/wwn-0x6b07b250ebb9d0002a33509f24af1f62\",\"partitions\":[{\"label\":\"var-lib-containers\",\"sizeMiB\":0,\"startMiB\":250000}],\"wipeTable\":false}],\"filesystems\":[{\"device\":\"/dev/disk/by-partlabel/var-lib-containers\",\"format\":\"xfs\",\"mountOptions\":[\"defaults\",\"prjquota\"],\"path\":\"/var/lib/containers\",\"wipeFilesystem\":true}]},\"systemd\":{\"units\":[{\"contents\":\"# Generated by Butane\\n[Unit]\\nRequires=systemd-fsck@dev-disk-by\\\\x2dpartlabel-var\\\\x2dlib\\\\x2dcontainers.service\\nAfter=systemd-fsck@dev-disk-by\\\\x2dpartlabel-var\\\\x2dlib\\\\x2dcontainers.service\\n\\n[Mount]\\nWhere=/var/lib/containers\\nWhat=/dev/disk/by-partlabel/var-lib-containers\\nType=xfs\\nOptions=defaults,prjquota\\n\\n[Install]\\nRequiredBy=local-fs.target\",\"enabled\":true,\"name\":\"var-lib-containers.mount\"}]}}"
"{\"ignition\":{\"version\":\"3.2.0\"},\"storage\":{\"disks\":[{\"device\":\"/dev/disk/by-id/wwn-0x6b07b250ebb9d0002a33509f24af1f62\",\"partitions\":[{\"label\":\"var-lib-containers\",\"sizeMiB\":0,\"startMiB\":250000}],\"wipeTable\":false}],\"filesystems\":[{\"device\":\"/dev/disk/by-partlabel/var-lib-containers\",\"format\":\"xfs\",\"mountOptions\":[\"defaults\",\"prjquota\"],\"path\":\"/var/lib/containers\",\"wipeFilesystem\":true}]},\"systemd\":{\"units\":[{\"contents\":\"# Generated by Butane\\n[Unit]\\nRequires=systemd-fsck@dev-disk-by\\\\x2dpartlabel-var\\\\x2dlib\\\\x2dcontainers.service\\nAfter=systemd-fsck@dev-disk-by\\\\x2dpartlabel-var\\\\x2dlib\\\\x2dcontainers.service\\n\\n[Mount]\\nWhere=/var/lib/containers\\nWhat=/dev/disk/by-partlabel/var-lib-containers\\nType=xfs\\nOptions=defaults,prjquota\\n\\n[Install]\\nRequiredBy=local-fs.target\",\"enabled\":true,\"name\":\"var-lib-containers.mount\"}]}}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インストール後、シングルノード OpenShift ディスクのステータスを確認します。
次のコマンドを実行して、シングルノード OpenShift ノードでデバッグセッションを開始します。
この手順は、
<node_name>-debug
というデバッグ Pod をインスタンス化します。oc debug node/my-sno-node
$ oc debug node/my-sno-node
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デバッグシェル内で
/host
をルートディレクトリーとして設定します。デバッグ Pod は、Pod 内の
/host
にホストの root ファイルシステムをマウントします。root ディレクトリーを/host
に変更すると、ホストの実行パスに含まれるバイナリーを実行できます。chroot /host
# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、使用可能なすべてのブロックデバイスに関する情報をリスト表示します。
lsblk
# lsblk
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ファイルシステムのディスク領域の使用状況に関する情報を表示します。
df -h
# df -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.9.8.2. PolicyGenTemplate CR を使用してイメージレジストリーを設定する リンクのコピーリンクがクリップボードにコピーされました!
PolicyGenTemplate
(PGT) CR を使用して、イメージレジストリーの設定に必要な CR を適用し、imageregistry
設定にパッチを適用します。
前提条件
- マネージドクラスターでディスクパーティションを設定しました。
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてハブクラスターにログインしている。 - GitOps Zero Touch Provisioning (ZTP) で使用するカスタムサイト設定データを管理する Git リポジトリーを作成している。
手順
適切な
PolicyGenTemplate
CR で、ストレージクラス、永続ボリューム要求、永続ボリューム、およびイメージレジストリー設定を設定します。たとえば、個々のサイトを設定するには、次の YAML をファイルexample-sno-site.yaml
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要- fileName: ImageRegistryConfig.yaml
設定には、complianceType: mustonlyhave
を設定しないでください。これにより、レジストリー Pod のデプロイが失敗する可能性があります。-
Git で
PolicyGenTemplate
変更をコミットし、GitOps ZTP ArgoCD アプリケーションによって監視される Git リポジトリーにプッシュします。
検証
次の手順を使用して、マネージドクラスターのローカルイメージレジストリーに関するエラーをトラブルシューティングします。
マネージドクラスターにログインしているときに、レジストリーへのログインが成功したことを確認します。以下のコマンドを実行します。
マネージドクラスター名をエクスポートします。
cluster=<managed_cluster_name>
$ cluster=<managed_cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マネージドクラスター
kubeconfig
の詳細を取得します。oc get secret -n $cluster $cluster-admin-password -o jsonpath='{.data.password}' | base64 -d > kubeadmin-password-$cluster
$ oc get secret -n $cluster $cluster-admin-password -o jsonpath='{.data.password}' | base64 -d > kubeadmin-password-$cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスター
kubeconfig
をダウンロードしてエクスポートします。oc get secret -n $cluster $cluster-admin-kubeconfig -o jsonpath='{.data.kubeconfig}' | base64 -d > kubeconfig-$cluster && export KUBECONFIG=./kubeconfig-$cluster
$ oc get secret -n $cluster $cluster-admin-kubeconfig -o jsonpath='{.data.kubeconfig}' | base64 -d > kubeconfig-$cluster && export KUBECONFIG=./kubeconfig-$cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - マネージドクラスターからイメージレジストリーへのアクセスを確認します。「レジストリーへのアクセス」を参照してください。
imageregistry.operator.openshift.io
グループインスタンスのConfig
CRD がエラーを報告していないことを確認します。マネージドクラスターにログインしているときに、次のコマンドを実行します。oc get image.config.openshift.io cluster -o yaml
$ oc get image.config.openshift.io cluster -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マネージドクラスターの
PersistentVolumeClaim
にデータが入力されていることを確認します。マネージドクラスターにログインしているときに、次のコマンドを実行します。oc get pv image-registry-sc
$ oc get pv image-registry-sc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow registry*
Pod が実行中であり、openshift-image-registry
namespace にあることを確認します。oc get pods -n openshift-image-registry | grep registry*
$ oc get pods -n openshift-image-registry | grep registry*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
cluster-image-registry-operator-68f5c9c589-42cfg 1/1 Running 0 8d image-registry-5f8987879-6nx6h 1/1 Running 0 8d
cluster-image-registry-operator-68f5c9c589-42cfg 1/1 Running 0 8d image-registry-5f8987879-6nx6h 1/1 Running 0 8d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マネージドクラスターのディスクパーティションが正しいことを確認します。
マネージドクラスターへのデバッグシェルを開きます。
oc debug node/sno-1.example.com
$ oc debug node/sno-1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow lsblk
を実行して、ホストディスクパーティションを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
/var/imageregistry
は、ディスクが正しくパーティショニングされていることを示します。
19.9.9. PolicyGenTemplate CR でのハブテンプレートの使用 リンクのコピーリンクがクリップボードにコピーされました!
Topology Aware Lifecycle Manager は、GitOps ZTP で使用される設定ポリシーで、部分的な Red Hat Advanced Cluster Management (RHACM) ハブクラスターテンプレート機能をサポートします。
ハブ側のクラスターテンプレートを使用すると、ターゲットクラスターに合わせて動的にカスタマイズできる設定ポリシーを定義できます。これにより、設定は似ているが値が異なる多くのクラスターに対して個別のポリシーを作成する必要がなくなります。
ポリシーテンプレートは、ポリシーが定義されている namespace と同じ namespace に制限されています。これは、ハブテンプレートで参照されるオブジェクトを、ポリシーが作成されたのと同じ namespace に作成する必要があることを意味します。
TALM を使用する GitOps ZTP では、次のサポートされているハブテンプレート関数を使用できます。
fromConfigmap
は、指定されたConfigMap
リソースで提供されたデータキーの値を返します。注記ConfigMap
CR には 1 MiB のサイズ制限 があります。ConfigMap
CR の有効サイズは、last-applied-configuration
アノテーションによってさらに制限されます。last-applied-configuration
制限を回避するには、次のアノテーションをテンプレートConfigMap
に追加します。argocd.argoproj.io/sync-options: Replace=true
argocd.argoproj.io/sync-options: Replace=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
base64enc
は、base64 でエンコードされた入力文字列の値を返します -
base64dec
は、base64 でエンコードされた入力文字列のデコードされた値を返します -
indent
は、インデントスペースが追加された入力文字列を返します -
autoindent
は、親テンプレートで使用されているスペースに基づいてインデントスペースを追加した入力文字列を返します。 -
toInt
は、入力値の整数値をキャストして返します -
toBool
は入力文字列をブール値に変換し、ブール値を返します
GitOps ZTP では、さまざまな オープンソースコミュニティー機能 も利用できます。
19.9.9.1. ハブテンプレートの例 リンクのコピーリンクがクリップボードにコピーされました!
次のコード例は、有効なハブテンプレートです。これらの各テンプレートは、default
namespace で test-config
という名前の ConfigMap
CR から値を返します。
キー
common-key
を持つ値を返します。{{hub fromConfigMap "default" "test-config" "common-key" hub}}
{{hub fromConfigMap "default" "test-config" "common-key" hub}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow .ManagedClusterName
フィールドと文字列-name
の連結値を使用して、文字列を返します。{{hub fromConfigMap "default" "test-config" (printf "%s-name" .ManagedClusterName) hub}}
{{hub fromConfigMap "default" "test-config" (printf "%s-name" .ManagedClusterName) hub}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow .ManagedClusterName
フィールドと文字列-name
の連結値からブール値をキャストして返します。{{hub fromConfigMap "default" "test-config" (printf "%s-name" .ManagedClusterName) | toBool hub}}
{{hub fromConfigMap "default" "test-config" (printf "%s-name" .ManagedClusterName) | toBool hub}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow .ManagedClusterName
フィールドと文字列-name
の連結値から整数値をキャストして返します。{{hub (printf "%s-name" .ManagedClusterName) | fromConfigMap "default" "test-config" | toInt hub}}
{{hub (printf "%s-name" .ManagedClusterName) | fromConfigMap "default" "test-config" | toInt hub}}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
19.9.9.2. ハブクラスターテンプレートを使用したサイト PolicyGenTemplate CR でのホスト NIC の指定 リンクのコピーリンクがクリップボードにコピーされました!
単一の ConfigMap
CR でホスト NIC を管理し、ハブクラスターテンプレートを使用して、クラスターホストに適用される生成されたポリシーにカスタム NIC 値を設定できます。サイト PolicyGenTemplate
(PGT) CR でハブクラスターテンプレートを使用すると、サイトごとに複数の単一サイト PGT CR を作成する必要がなくなります。
次の例は、単一の ConfigMap
CR を使用してクラスターホスト NIC を管理し、単一の PolicyGenTemplate
サイト CR を使用してそれらをポリシーとしてクラスターに適用する方法を示しています。
fromConfigmap
関数を使用する場合、printf
変数はテンプレートリソース data
キーフィールドでのみ使用できます。name
および namespace
フィールドでは使用できません。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてハブクラスターにログインしている。 - カスタムサイトの設定データを管理する Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセスでき、GitOps ZTP ArgoCD アプリケーションのソースリポジトリーとして定義されている必要があります。
手順
ホストのグループの NIC を記述する
ConfigMap
リソースを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
argocd.argoproj.io/sync-options
アノテーションは、ConfigMap
のサイズが 1 MiB より大きい場合にのみ必要です。
注記ConfigMap
は、ハブテンプレートの置換を持つポリシーと同じ namespace にある必要があります。-
Git で
ConfigMap
CR をコミットし、Argo CD アプリケーションによって監視されている Git リポジトリーにプッシュします。 テンプレートを使用して
ConfigMap
オブジェクトから必要なデータを取得するサイト PGT CR を作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サイトの
PolicyGenTemplate
CR を Git にコミットし、ArgoCD アプリケーションによって監視されている Git リポジトリーにプッシュします。注記参照された
ConfigMap
CR に対するその後の変更は、適用されたポリシーに自動的に同期されません。新しいConfigMap
の変更を手動で同期して、既存の PolicyGenTemplate CR を更新する必要があります。「新しい ConfigMap の変更を既存の PolicyGenTemplate CR に同期する」を参照してください。
19.9.9.3. ハブクラスターテンプレートを使用したグループ PolicyGenTemplate CR での VLAN ID の指定 リンクのコピーリンクがクリップボードにコピーされました!
管理対象クラスターの VLAN ID を 1 つの ConfigMap
CR で管理し、ハブクラスターテンプレートを使用して、クラスターに適用される生成されたポリシーに VLAN ID を入力できます。
次の例は、単一の ConfigMap
CR で VLAN ID を管理し、単一の PolicyGenTemplate
グループ CR を使用して個々のクラスターポリシーに適用する方法を示しています。
fromConfigmap
関数を使用する場合、printf
変数はテンプレートリソース data
キーフィールドでのみ使用できます。name
および namespace
フィールドでは使用できません。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてハブクラスターにログインしている。 - カスタムサイトの設定データを管理する Git リポジトリーを作成しています。リポジトリーはハブクラスターからアクセス可能で、Argo CD アプリケーションのソースリポジトリーとして定義されている必要があります。
手順
クラスターホストのグループの VLAN ID を記述する
ConfigMap
CR を作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
argocd.argoproj.io/sync-options
アノテーションは、ConfigMap
のサイズが 1 MiB より大きい場合にのみ必要です。
注記ConfigMap
は、ハブテンプレートの置換を持つポリシーと同じ namespace にある必要があります。-
Git で
ConfigMap
CR をコミットし、Argo CD アプリケーションによって監視されている Git リポジトリーにプッシュします。 ハブテンプレートを使用して
ConfigMap
オブジェクトから必要な VLAN ID を取得するグループ PGT CR を作成します。たとえば、次の YAML スニペットをグループ PGT CR に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow グループ
PolicyGenTemplate
CR を Git でコミットしてから、Argo CD アプリケーションによって監視されている Git リポジトリーにプッシュします。注記参照された
ConfigMap
CR に対するその後の変更は、適用されたポリシーに自動的に同期されません。新しいConfigMap
の変更を手動で同期して、既存の PolicyGenTemplate CR を更新する必要があります。「新しい ConfigMap の変更を既存の PolicyGenTemplate CR に同期する」を参照してください。
19.9.9.4. 新しい ConfigMap の変更を既存の PolicyGenTemplate CR に同期する リンクのコピーリンクがクリップボードにコピーされました!
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてハブクラスターにログインしている。 -
ハブクラスターテンプレートを使用して
ConfigMap
CR から情報を取得するPolicyGenTemplate
CR を作成しました。
手順
-
ConfigMap
CR の内容を更新し、変更をハブクラスターに適用します。 更新された
ConfigMap
CR の内容をデプロイされたポリシーに同期するには、次のいずれかを実行します。オプション 1: 既存のポリシーを削除します。ArgoCD は
PolicyGenTemplate
CR を使用して、削除されたポリシーをすぐに再作成します。たとえば、以下のコマンドを実行します。oc delete policy <policy_name> -n <policy_namespace>
$ oc delete policy <policy_name> -n <policy_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション 2:
ConfigMap
を更新するたびに、特別なアノテーションpolicy.open-cluster-management.io/trigger-update
を異なる値でポリシーに適用します。以下に例を示します。oc annotate policy <policy_name> -n <policy_namespace> policy.open-cluster-management.io/trigger-update="1"
$ oc annotate policy <policy_name> -n <policy_namespace> policy.open-cluster-management.io/trigger-update="1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記変更を有効にするには、更新されたポリシーを適用する必要があります。詳細は、再処理のための特別なアノテーション を参照してください。
オプション: 存在する場合は、ポリシーを含む
ClusterGroupUpdate
CR を削除します。以下に例を示します。oc delete clustergroupupgrade <cgu_name> -n <cgu_namespace>
$ oc delete clustergroupupgrade <cgu_name> -n <cgu_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新された
ConfigMap
の変更を適用するポリシーを含む新しいClusterGroupUpdate
CR を作成します。たとえば、次の YAML をファイルcgr-example.yaml
に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新されたポリシーを適用します。
oc apply -f cgr-example.yaml
$ oc apply -f cgr-example.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow