This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.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 を確認します。参考となる
PolicyGenTemplateCR に記載されているソース CR を ZTP (zero touch provisioning) コンテナーから抽出し、確認することができます。/outフォルダーを作成します。mkdir -p ./out
$ mkdir -p ./outCopy to Clipboard Copied! Toggle word wrap Toggle overflow ソース CR を抽出します。
podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v{product-version}.1 extract /home/ztp --tar | tar x -C ./out$ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v{product-version}.1 extract /home/ztp --tar | tar x -C ./outCopy to Clipboard Copied! Toggle word wrap Toggle overflow
./out/source-crs/PerformanceProfile.yamlにあるベースラインPerformanceProfileCR を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ソース CR のフィールドで
$...を含むものは、PolicyGenTemplateCR で提供されない場合、生成された CR から削除されます。group-du-sno-ranGen.yamlリファレンスファイルのPerformanceProfileのPolicyGenTemplateエントリーを更新します。次の例のPolicyGenTemplateCR スタンザは、適切な 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 パイプラインへの新規コンテンツの追加 リンクのコピーリンクがクリップボードにコピーされました!
GitOps ZTP サイトジェネレーターコンテナーのソース CR は、RAN 分散ユニット (DU) アプリケーションの重要な機能とノードチューニング設定の一式を提供します。これらは、ZTP でデプロイするクラスターに適用されます。ztp-site-generate コンテナー内の既存のソース CR を追加または変更するには、ztp-site-generate コンテナーを再構築し、通常はハブクラスターに関連付けられた切断されたレジストリーから、ハブクラスターで利用できるようにします。有効な OpenShift Container Platform CR を追加できます。
ZTP パイプラインに新しいコンテンツを追加するには、次の手順を実行します。
手順
更新した
ztp-site-generateコンテナーに含めるソース CR YAML ファイルが含まれるディレクトリーを作成します。以下に例を示します。ztp-update/ ├── example-cr1.yaml ├── example-cr2.yaml └── ztp-update.in
ztp-update/ ├── example-cr1.yaml ├── example-cr2.yaml └── ztp-update.inCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容を
ztp-update.inContainerfile に追加します。FROM registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.10 ADD example-cr2.yaml /kustomize/plugin/ran.openshift.io/v1/policygentemplate/source-crs/ ADD example-cr1.yaml /kustomize/plugin/ran.openshift.io/v1/policygentemplate/source-crs/
FROM registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.10 ADD example-cr2.yaml /kustomize/plugin/ran.openshift.io/v1/policygentemplate/source-crs/ ADD example-cr1.yaml /kustomize/plugin/ran.openshift.io/v1/policygentemplate/source-crs/Copy to Clipboard Copied! Toggle word wrap Toggle overflow ztp-update/フォルダーでターミナルを開き、コンテナーを再ビルドします。podman build -t ztp-site-generate-rhel8-custom:v4.10-custom-1
$ podman build -t ztp-site-generate-rhel8-custom:v4.10-custom-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow ビルドしたコンテナーイメージを非接続レジストリーにプッシュします。以下に例を示します。
podman push localhost/ztp-site-generate-rhel8-custom:v4.10-custom-1 registry.example.com:5000/ztp-site-generate-rhel8-custom:v4.10-custom-1
$ podman push localhost/ztp-site-generate-rhel8-custom:v4.10-custom-1 registry.example.com:5000/ztp-site-generate-rhel8-custom:v4.10-custom-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow ハブクラスターの Argo CD インスタンスにパッチを適用し、新たにビルドされたコンテナーイメージを参照します。
oc patch -n openshift-gitops argocd openshift-gitops --type=json -p '[{"op": "replace", "path":"/spec/repo/initContainers/0/image", "value": "registry.example.com:5000/ztp-site-generate-rhel8-custom:v4.10-custom-1"} ]'$ oc patch -n openshift-gitops argocd openshift-gitops --type=json -p '[{"op": "replace", "path":"/spec/repo/initContainers/0/image", "value": "registry.example.com:5000/ztp-site-generate-rhel8-custom:v4.10-custom-1"} ]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Argo CD インスタンスにパッチを適用すると、
openshift-gitops-repo-serverPod は自動的に再起動します。
検証
新規の
openshift-gitops-repo-serverPod の初期化が完了し、以前のリポジトリー Pod が終了していることを確認します。oc get pods -n openshift-gitops | grep openshift-gitops-repo-server
$ oc get pods -n openshift-gitops | grep openshift-gitops-repo-serverCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
openshift-gitops-server-7df86f9774-db682 1/1 Running 1 28s
openshift-gitops-server-7df86f9774-db682 1/1 Running 1 28sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規の
openshift-gitops-repo-serverPod の初期化が完了し、新たに追加されたコンテナーイメージコンテンツが利用可能になる前に以前の Pod が終了するまで待機する必要があります。
19.9.4. バリデーターインフォームポリシーを使用した ZTP クラスターデプロイメントの完了のシグナリング リンクのコピーリンクがクリップボードにコピーされました!
デプロイされたクラスターのゼロタッチプロビジョニング (ZTP) のインストールと設定が完了したときに通知するバリデーター通知ポリシーを作成します。このポリシーは、単一ノード OpenShift クラスター、3 ノードクラスター、および標準クラスターのデプロイメントに使用できます。
手順
ソースファイル
validatorCRs/informDuValidator.yamlを含むスタンドアロンのPolicyGenTemplateカスタムリソース (CR) を作成します。スタンドアロンPolicyGenTemplateCR は、各クラスタータイプに 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という名前です。
-
PolicyGenTemplateCR ファイルを Git リポジトリーにコミットし、変更をプッシュします。
19.9.5. PolicyGenTemplate CR を使用した PTP 高速イベントの設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) パイプラインを使用してデプロイされた vRAN クラスターに PTP ファストイベントを設定することができます。PolicyGenTemplate のカスタムリソース (CR) をベースに、お客様のサイト要件に合わせた設定ファイルの階層を作成します。
前提条件
- カスタムサイトの設定データを管理する 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 トランスポートホストを設定するPtpOperatorConfigCR ファイルをconfig-policyに追加します。- fileName: PtpOperatorConfigForEvent.yaml policyName: "config-policy"
- fileName: PtpOperatorConfigForEvent.yaml policyName: "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-daemonDaemonSetはログを解析し、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 ルーターを設定するInterconnectCR ファイルを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.6. PolicyGenTemplate CR を使用したベアメタルイベント監視の設定 リンクのコピーリンクがクリップボードにコピーされました!
GitOps Zero Touch Provisioning (ZTP) パイプラインを使用してデプロイされた vRAN クラスターに、ベアメタルハードウェアイベントを設定することができます。
前提条件
-
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 InterconnectCR をサイト設定ファイルの.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ファイルの特定のグループ設定ファイルで、HardwareEventCR をspec.sourceFilesに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
transportHostURL は、既存の 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