10.2.2. PolicyGenerator CR を使用したソース CR コンテンツのオーバーライド


PolicyGenerator カスタムリソース (CR) を使用すると、ztp-site-generate コンテナー内の GitOps プラグインで提供されるベースソース CR の上に追加の設定の詳細をオーバーレイできます。PolicyGenerator CR は、ベース CR への論理的なマージまたはパッチと考えることができます。PolicyGenerator CR を使用して、ベース CR のシングルフィールドを更新するか、ベース CR の内容全体をオーバーレイします。ベース CR にない値の更新やフィールドの挿入が可能です。

以下の手順の例では、acm-group-du-sno-ranGen.yaml ファイルの PolicyGenerator CR に基づいて、参照設定用に生成された PerformanceProfile CR のフィールドを更新する方法を説明します。この手順を元に、PolicyGenerator の他の部分をお客様のご要望に応じて変更してください。

前提条件

  • カスタムサイトの設定データを管理する Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセス可能で、Argo CD のソースリポジトリーとして定義されている必要があります。

手順

  1. 既存のコンテンツのベースラインソース CR を確認します。参照 PolicyGenerator CR にリストされているソース CR を GitOps Zero Touch Provisioning (ZTP) コンテナーから抽出し、確認できます。

    1. /out フォルダーを作成します。

      $ mkdir -p ./out
    2. ソース CR を抽出します。

      $ podman run --log-driver=none --rm registry.redhat.io/openshift4/ztp-site-generate-rhel8:v4.20.1 extract /home/ztp --tar | tar x -C ./out
  2. ./out/source-crs/PerformanceProfile.yaml にあるベースライン PerformanceProfile CR を確認します。

    apiVersion: performance.openshift.io/v2
    kind: PerformanceProfile
    metadata:
      name: $name
      annotations:
        ran.openshift.io/ztp-deploy-wave: "10"
    spec:
      additionalKernelArgs:
      - "idle=poll"
      - "rcupdate.rcu_normal_after_boot=0"
      cpu:
        isolated: $isolated
        reserved: $reserved
      hugepages:
        defaultHugepagesSize: $defaultHugepagesSize
        pages:
          - size: $size
            count: $count
            node: $node
      machineConfigPoolSelector:
        pools.operator.machineconfiguration.openshift.io/$mcp: ""
      net:
        userLevelNetworking: true
      nodeSelector:
        node-role.kubernetes.io/$mcp: ''
      numa:
        topologyPolicy: "restricted"
      realTimeKernel:
        enabled: true
    注記

    ソース CR のフィールドで $…​ を含むものは、PolicyGenerator CR で提供されない場合、生成された CR から削除されます。

  3. acm-group-du-sno-ranGen.yaml 参照ファイル内の PerformanceProfilePolicyGenerator エントリーを更新します。以下の例の PolicyGenerator CR スタンザは、適切な CPU 仕様を指定し、hugepages を設定して、globallyDisableIrqLoadBalancing を false に設定する新しいフィールドを追加します。

    - path: source-crs/PerformanceProfile.yaml
      patches:
        - spec:
            # These must be tailored for the specific hardware platform
            cpu:
              isolated: "2-19,22-39"
              reserved: "0-1,20-21"
            hugepages:
              defaultHugepagesSize: 1G
              pages:
              - size: 1G
                count: 10
            globallyDisableIrqLoadBalancing: false
  4. Git で PolicyGenerator 変更をコミットし、GitOps ZTP argo CD アプリケーションによって監視される Git リポジトリーにプッシュします。

    出力例

    GitOps ZTP アプリケーションは、生成された PerformanceProfile CR を含む RHACM ポリシーを生成します。その CR の内容は、PolicyGeneratorPerformanceProfile エントリーの metadata および spec 内容をソース CR にマージすることによって生成されます。作成される CR には以下のコンテンツが含まれます。

    ---
    apiVersion: performance.openshift.io/v2
    kind: PerformanceProfile
    metadata:
        name: openshift-node-performance-profile
    spec:
        additionalKernelArgs:
            - idle=poll
            - rcupdate.rcu_normal_after_boot=0
        cpu:
            isolated: 2-19,22-39
            reserved: 0-1,20-21
        globallyDisableIrqLoadBalancing: false
        hugepages:
            defaultHugepagesSize: 1G
            pages:
                - count: 10
                  size: 1G
        machineConfigPoolSelector:
            pools.operator.machineconfiguration.openshift.io/master: ""
        net:
            userLevelNetworking: true
        nodeSelector:
            node-role.kubernetes.io/master: ""
        numa:
            topologyPolicy: restricted
        realTimeKernel:
            enabled: true
注記

ztp-site-generate コンテナーからデプロイメントした /source-crs フォルダーでは、$ 構文が暗示するテンプレート置換は使用されません。むしろ、policyGen ツールが文字列の $ 接頭辞を認識し、関連する PolicyGenerator CR でそのフィールドの値を指定しない場合、そのフィールドは出力 CR から完全に省略されます。

例外として、/source-crs YAML ファイル内の $mcp 変数は、PolicyGenerator CR から mcp の指定値で代用されます。たとえば、example/acmpolicygenerator/acm-group-du-standard-ranGen.yaml では、mcp の値は worker です。

spec:
  bindingRules:
    group-du-standard: ""
  mcp: "worker"

policyGen ツールは、$mcp のインスタンスを出力 CR の worker に置き換えます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る