1.5. Red Hat OpenShift GitOps を使用したポリシー定義の管理


ArgoCD リソースを使用する場合、Red Hat Advanced Cluster Management ハブクラスターでポリシーを作成するための OpenShift GitOps アクセスを許可することで、Red Hat OpenShift GitOps を使用してポリシー定義を管理できます。

1.5.1. 前提条件

ハブクラスターにログインしておく。

必要なアクセス権: クラスター管理者

非推奨: PlacementRule

1.5.2. OpenShift GitOps 用の ClusterRole リソースの作成

ポリシーと配置の作成、読み取り、更新、削除のアクセス権を持つ OpenShift GitOps の ClusterRole リソースを作成するには以下を実行します。

  1. コンソールから ClusterRole を作成します。ClusterRole は次の例のようになります。

    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: openshift-gitops-policy-admin
    rules:
      - verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
        apiGroups:
          - policy.open-cluster-management.io
        resources:
          - policies
          - policysets
          - placementbindings
      - verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
        apiGroups:
          - apps.open-cluster-management.io
        resources:
          - placementrules
      - verbs:
          - get
          - list
          - watch
          - create
          - update
          - patch
          - delete
        apiGroups:
          - cluster.open-cluster-management.io
        resources:
          - placements
          - placements/status
          - placementdecisions
          - placementdecisions/status
    Copy to Clipboard Toggle word wrap
  2. ClusterRoleBinding オブジェクトを作成して、OpenShift GitOps サービスアカウントに openshift-gitops-policy-admin ClusterRole オブジェクトへのアクセスを許可します。ClusterRoleBinding は次の例のようになります。

    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: openshift-gitops-policy-admin
    subjects:
      - kind: ServiceAccount
        name: openshift-gitops-argocd-application-controller
        namespace: openshift-gitops
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: openshift-gitops-policy-admin
    Copy to Clipboard Toggle word wrap

    注記: - Red Hat Advanced Cluster Management ポリシー定義が OpenShift GitOps でデプロイされると、ハブテンプレートの違いを解決するために、各マネージドクラスター namespace にポリシーのコピーが作成されます。これらのコピーは、複製されたポリシーと呼ばれます。- OpenShift GitOps がこの複製されたポリシーを繰り返し削除したり、Argo CD Application が同期されていないことを示したりするのを防ぐために、Red Hat Advanced Cluster Management ポリシーフレームワークによって、各複製されたポリシーに argocd.argoproj.io/compare-options: IgnoreExtraneous アノテーションが自動的に設定されます。

  3. Argo CD がオブジェクトを追跡するために使用するラベルとアノテーションがあります。複製されたポリシーが Argo CD にまったく表示されないようにするには、Red Hat Advanced Cluster Management ポリシー定義で spec.copyPolicyMetadatafalse に設定して、Argo CD 追跡ラベルとアノテーションを無効にします。

1.5.3. ポリシージェネレーターと OpenShift GitOps の統合

OpenShift GitOps を使用すると、GitOps を通じてポリシージェネレーターを使用してポリシーを生成できます。ポリシージェネレーターは OpenShift GitOps コンテナーイメージにプリインストールされていないため、カスタマイズを行う必要があります。

1.5.3.1. 前提条件

  • OpenShift GitOps を Red Hat Advanced Cluster Management ハブクラスターにインストールしておく。
  • ハブクラスターにログインしておく。

1.5.3.2. OpenShift GitOps からのポリシージェネレーターへのアクセス

OpenShift GitOps からポリシージェネレーターにアクセスするには、Init コンテナーを設定して、Red Hat Advanced Cluster Management Application Subscription コンテナーイメージからポリシージェネレーターバイナリーをコピーする必要があります。Kustomize を実行するときに --enable-alpha-plugins フラグを指定して OpenShift GitOps を設定する必要もあります。

ポリシージェネレーターを使用してポリシーと配置を作成、読み取り、更新、削除するには、OpenShift GitOps からポリシージェネレーターへのアクセス権を付与します。以下の手順を実行します。

  1. 次のコマンドを使用して、OpenShift GitOps argocd オブジェクトを編集します。

    oc -n openshift-gitops edit argocd openshift-gitops
    Copy to Clipboard Toggle word wrap
  2. ポリシージェネレーターを新しいバージョンに更新するには、Init コンテナーで使用される registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9 イメージを新しいタグに追加します。<version> パラメーターは、ArgoCD リソースの最新の Red Hat Advanced Cluster Management バージョンに置き換えます。

    ArgoCD リソースは、次の YAML ファイルのようになります。

    apiVersion: argoproj.io/v1beta1
    kind: ArgoCD
    metadata:
      name: openshift-gitops
      namespace: openshift-gitops
    spec:
      kustomizeBuildOptions: --enable-alpha-plugins
      repo:
        env:
        - name: KUSTOMIZE_PLUGIN_HOME
          value: /etc/kustomize/plugin
        initContainers:
        - args:
          - -c
          - cp /policy-generator/PolicyGenerator-not-fips-compliant /policy-generator-tmp/PolicyGenerator
          command:
          - /bin/bash
          image: registry.redhat.io/rhacm2/multicluster-operators-subscription-rhel9:v<version>
          name: policy-generator-install
          volumeMounts:
          - mountPath: /policy-generator-tmp
            name: policy-generator
        volumeMounts:
        - mountPath: /etc/kustomize/plugin/policy.open-cluster-management.io/v1/policygenerator
          name: policy-generator
        volumes:
        - emptyDir: {}
          name: policy-generator
    Copy to Clipboard Toggle word wrap

    注記: または、ArgoCD マニフェストを含む ConfigurationPolicy リソースを作成し、MultiClusterHub で設定されたバージョンと一致するバージョンをテンプレート化することもできます。

    image: '{{ (index (lookup "apps/v1" "Deployment" "open-cluster-management" "multicluster-operators-hub-subscription").spec.template.spec.containers 0).image }}'
    Copy to Clipboard Toggle word wrap
  3. ポリシーを生成する前に Kustomize ディレクトリー内で Helm チャート処理を有効にする場合は、spec.repo.env フィールドで POLICY_GEN_ENABLE_HELM 環境変数を "true" に設定します。

    env:
    - name: POLICY_GEN_ENABLE_HELM
      value: "true"
    Copy to Clipboard Toggle word wrap
  4. ポリシーと配置を作成、読み取り、更新、削除するには、ClusterRoleBinding オブジェクトを作成し、OpenShift GitOps サービスアカウントに Red Hat Advanced Cluster Management ハブクラスターへのアクセス権を付与します。ClusterRoleBinding は、次のようなリソースになる場合があります。

    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: openshift-gitops-policy-admin
    subjects:
      - kind: ServiceAccount
        name: openshift-gitops-argocd-application-controller
        namespace: openshift-gitops
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: openshift-gitops-policy-admin
    Copy to Clipboard Toggle word wrap

1.5.4. 関連情報

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat