2.4.2.2. 策略生成器配置结构
策略生成器是一个 Kustomize 生成器插件,它配置了一个 PolicyGenerator kind 和 policy.open-cluster-management.io/v1 API 版本的清单。
要使用该插件,请首先在 kustomization.yaml 文件中添加一个 generators 部分。查看以下示例:
generators:
- policy-generator-config.yaml
上例中引用的 policy-generator-config.yaml 文件是一个 YAML 文件,其中包含要生成的策略的说明。简单的策略生成器配置文件可能类似以下示例:
apiVersion: policy.open-cluster-management.io/v1
kind: PolicyGenerator
metadata:
name: config-data-policies
policyDefaults:
namespace: policies
policies:
- name: config-data
manifests:
- path: configmap.yaml
configmap.yaml 代表要包含在策略中的 Kubernetes 清单 YAML 文件。查看以下示例:
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config
namespace: default
data:
key1: value1
key2: value2
生成的 Policy 以及生成的 PlacementRule 和 PlacementBinding 可能类似以下示例:
apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
name: placement-config-data
namespace: policies
spec:
clusterConditions:
- status: "True"
type: ManagedClusterConditionAvailable
clusterSelector:
matchExpressions: []
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
name: binding-config-data
namespace: policies
placementRef:
apiGroup: apps.open-cluster-management.io
kind: PlacementRule
name: placement-config-data
subjects:
- apiGroup: policy.open-cluster-management.io
kind: Policy
name: config-data
---
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: config-data
namespace: policies
spec:
disabled: false
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: config-data
spec:
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: v1
data:
key1: value1
key2: value2
kind: ConfigMap
metadata:
name: my-config
namespace: default
remediationAction: inform
severity: low
如需了解更多详细信息,请参阅 policy-generator-plugin 存储库。