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