2.6.3.2. 模板功能


模板功能(如特定于资源和通用的 lookup 模板功能 )可用于引用集群中的 Kubernetes 资源。特定于资源的功能用于方便使用,并使资源内容更易于访问。如果您使用通用的函数 lookup,则最好熟悉正在查找的资源的 YAML 结构。除了这些功能外,还提供了如 base64encodebase64decodeindenttoInttoBool 等工具。

要将模板符合 YAML 语法,必须使用引号或块字符(|>)在策略资源中以字符串的形式设置模板。这会导致解析的模板值也是字符串。要覆盖此功能,请考虑使用 toInttoBool 作为模板中的最终功能,以启动进一步处理,强制将值解释为整数或布尔值。

:如果字符串值超过 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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.