2.6.3.2. 模板功能
模板功能(如特定于资源和通用的 lookup
模板功能 )可用于引用集群中的 Kubernetes 资源。特定于资源的功能用于方便使用,并使资源内容更易于访问。如果您使用通用的函数 lookup
,则最好熟悉正在查找的资源的 YAML 结构。除了这些功能外,还提供了如 base64encode
、base64decode
、indent
、toInt
、toBool
等工具。
要将模板符合 YAML 语法,必须使用引号或块字符(|
或 >
)在策略资源中以字符串的形式设置模板。这会导致解析的模板值也是字符串。要覆盖此功能,请考虑使用 toInt
或 toBool
作为模板中的最终功能,以启动进一步处理,强制将值解释为整数或布尔值。
注 :如果字符串值超过 80 个字符,则此块字符为 80,则需要使用 |
以避免 YAML 解析错误。
继续阅读以查看支持的一些自定义模板功能的描述和示例:
2.6.3.2.1. fromSecret function
fromSecret
功能返回 secret 中给定 data 键的值。查看该功能的以下语法:
func fromSecret (ns string, secretName string, datakey string) (dataValue string, err error)
使用此功能时,请输入 Kubernetes Secret
资源的命名空间、名称和数据键。如果目标集群上不存在 Kubernetes Secret
资源,则会出现策略违反的情况。如果目标集群上不存在 data 键,则该值将变为空字符串。查看在目标集群上强制执行 Secret
资源的以下配置策略。PASSWORD
data 键的值是引用目标集群上 secret 的模板:
apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: demo-fromsecret namespace: test spec: namespaceSelector: exclude: - kube-* include: - default object-templates: - complianceType: musthave objectDefinition: apiVersion: v1 data: USER_NAME: YWRtaW4= PASSWORD: '{{ fromSecret "default" "localsecret" "PASSWORD" }}' kind: Secret metadata: name: demosecret namespace: test type: Opaque remediationAction: enforce severity: low