2.6.3.2. テンプレート関数
リソース固有および汎用の lookup
テンプレート関数など、テンプレート関数は、クラスター上の Kubernetes リソースを参照するために用意されています。リソース固有の関数は利便性があり、リソースの内容の使いやすさを高めます。より高度な汎用関数 lookup
を使用する場合には、検索されるリソースの YAML 構造について理解しておくことが推奨されます。これらの関数に加えて、base64encode
、base64decode
、indent
、toInt
、toBool
などのユーティリティー関数も利用できます。
テンプレートを YAML 構文に準拠するには、テンプレートは引用符またはブロック文字 (|
または >
) を使用して文字列としてポリシーリソースで設定する必要があります。これにより、解決済みのテンプレート値も文字列になります。これを上書きするには、toInt
または toBool
をテンプレート内で最終関数として使用して、値を整数またはブール値として強制的に解釈する追加の処理を開始します。
注記: 文字列の値が 80 文字を超える場合には、このブロック文字 |
を使用して YAML の解析エラーを回避する必要があります。
サポート対象のカスタムテンプレート関数の説明と例について確認するには、以下を参照してください。
- fromSecret 関数
- fromConfigmap 関数
- fromClusterClaim 関数
- lookup 関数
- base64enc 関数
- base64dec 関数
- indent 関数
- toInt 関数
- toBool 関数
2.6.3.2.1. fromSecret 関数
fromSecret
関数は、シークレット内にある指定のデータキーの値を返します。関数については、以下の構文を確認してください。
func fromSecret (ns string, secretName string, datakey string) (dataValue string, err error)
この関数を使用するには、Kubernetes Secret
リソースの namespace、名前、およびデータキーを入力します。Kubernetes Secret
がターゲットクラスターに存在しない場合には、ポリシー違反が表示されます。データキーがターゲットクラスターに存在しない場合は、値は空の文字列になります。以下で、ターゲットクラスターで Secret
リソースを有効にする設定ポリシーを確認します。PASSWORD
データキーの値は、ターゲットクラスターのシークレットを参照するテンプレートを指します。
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