2.4.2.3. 生成用于安装 Operator 的策略
Red Hat Advanced Cluster Management 策略的一个常见用途是在一个或多个受管 OpenShift 集群上安装 Operator。查看以下不同安装模式和所需资源的示例。
2.4.2.3.1. 安装 OpenShift GitOps 的策略 复制链接链接已复制到粘贴板!
本例演示了如何生成一个策略,以使用策略生成器安装 OpenShift GitOps。OpenShift GitOps 操作器 提供所有命名空间 安装模式。首先,需要按照以下示例创建名为 openshift-gitops-subscription.yaml 的订阅清单文件。
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 > 替换为您的首选版本。
接下来,需要名为 policy-generator-config.yaml 的策略生成器配置文件。以下示例显示了一个策略,它将在所有 OpenShift 受管集群上安装 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 文件。kustomization.yaml 文件需要以下配置:
generators:
- policy-generator-config.yaml
生成的策略可能类似以下文件:
apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
name: placement-install-openshift-gitops
namespace: policies
spec:
clusterConditions:
- status: "True"
type: ManagedClusterConditionAvailable
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
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 GitOps 和 Operator 文档。