1.6. GitOps Operator をインストールするためのポリシーの生成
Red Hat Advanced Cluster Management ポリシーの一般的な用途は、Operator を 1 つ以上の Red Hat OpenShift Container Platform マネージドクラスターにインストールすることです。ポリシージェネレーターを使用してポリシーを生成する方法、および生成されたポリシーを使用して OpenShift Container Platform GitOps Operator をインストールする方法は、引き続きお読みください。
1.6.1. OpenShift Container Platform GitOps をインストールするポリシーの生成
Policy Generator を使用して、OpenShift Container Platform GitOps をインストールするポリシーを生成できます。OpenShift Container Platform GitOps Operator は all namespaces インストールモードを提供しており、次の例で確認できます。次の例のように、openshift-gitops-subscription.yaml
という Subscription
マニフェストファイルを作成します。
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-gitops-operator namespace: openshift-operators spec: channel: stable name: openshift-gitops-operator source: redhat-operators sourceNamespace: openshift-marketplace
Operator の特定のバージョンに固定するには、パラメーターと値 spec.startingCSV: openshift-gitops-operator.v<version>
を追加します。<version>
を希望のバージョンに置き換えます。
PolicyGenerator
設定ファイルが必要です。policy-generator-config.yaml
という名前の設定ファイルを使用してポリシーを生成し、すべての OpenShift Container Platform マネージドクラスターに OpenShift GitOps をインストールします。以下の例を参照してください。
apiVersion: policy.open-cluster-management.io/v1 kind: PolicyGenerator metadata: name: install-openshift-gitops policyDefaults: namespace: policies placement: clusterSelectors: vendor: "OpenShift" remediationAction: enforce policies: - name: install-openshift-gitops manifests: - path: openshift-gitops-subscription.yaml
最後に必要なファイルは kustomization.yaml
で、次の設定が必要です。
generators: - policy-generator-config.yaml
生成されたポリシーは、PlacementRule
(非推奨) を含む次のファイルのようになります。
apiVersion: apps.open-cluster-management.io/v1 kind: PlacementRule metadata: name: placement-install-openshift-gitops namespace: policies spec: clusterSelector: matchExpressions: - key: vendor operator: In values: - OpenShift --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-install-openshift-gitops namespace: policies placementRef: apiGroup: apps.open-cluster-management.io kind: PlacementRule name: placement-install-openshift-gitops subjects: - apiGroup: policy.open-cluster-management.io kind: Policy name: install-openshift-gitops --- apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: annotations: policy.open-cluster-management.io/categories: CM Configuration Management policy.open-cluster-management.io/controls: CM-2 Baseline Configuration policy.open-cluster-management.io/standards: NIST SP 800-53 policy.open-cluster-management.io/description: name: install-openshift-gitops namespace: policies spec: disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: install-openshift-gitops spec: object-templates: - complianceType: musthave objectDefinition: apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: openshift-gitops-operator namespace: openshift-operators spec: channel: stable name: openshift-gitops-operator source: redhat-operators sourceNamespace: openshift-marketplace remediationAction: enforce severity: low
OpenShift Container Platform ドキュメントのマニフェストから生成されたポリシーがサポートされています。ポリシージェネレーターを使用して、OpenShift Container Platform ドキュメントの設定ガイダンスを適用できます。
1.6.2. OperatorGroups でのポリシー依存関係の使用
OperatorGroup
マニフェストを使用して Operator をインストールする場合、Subscription
が作成される前に、クラスターに OperatorGroup
が存在している必要があります。ポリシージェネレーターとともにポリシー依存関係機能を使用して、Subscription
ポリシーを実施する前に OperatorGroup
ポリシーが準拠していることを確認します。
必要な順序でマニフェストを一覧表示して、ポリシーの依存関係を設定します。たとえば、namespace ポリシーを最初に作成し、次に OperatorGroup
を作成し、最後に Subscription
を作成することができます。
ポリシージェネレーター設定マニフェストで policyDefaults.orderManifests
パラメーターを有効にし、policyDefaults.consolidateManifests
を無効にして、マニフェスト間の依存関係を自動的に設定します。