6.4.5.2. キャプチャーグループ関数を使用したインライン検証の設定
マルチライン文字列を含むフィールドをより正確に検証するには、capturegroups インライン関数を使用します。この関数は、複数のフィールドにわたって、同じ名前のキャプチャーグループが同じ値を持つことを確認します。
手順
ユースケースに合わせて
metadata.yamlファイルを作成します。例として次の構造を使用します。apiVersion: v2 parts: - name: Part1 components: - name: Example allOf: - path: example.yaml config: perField: - pathToKey: data.username1 inlineDiffFunc: regex2 - pathToKey: spec.bigTextBlock3 inlineDiffFunc: capturegroups4 正規表現を使用して、関連するテンプレートのフィールドを検証します。
apiVersion: v1 kind: ConfigMap metadata: namespace: dashboard data: username: "(?<username>[a-z0-9]+)"1 bigTextBlock: |- This static content outside of a capture group should match exactly. Here is a username capture group: (?<username>[a-z0-9]+). It should match this capture group: (?<username>[a-z0-9]+).- 1
data.usernameフィールドのユーザー名の値とbigTextBlockでキャプチャーされた値が一致しない場合、cluster-compareプラグインは不一致に関する警告を出力します。不一致に関する警告を含む出力例:
WARNING: Capturegroup (?<username>…) matched multiple values: « mismatchuser | exampleuser »