Closed as not planned
Closed as not planned
Description
What happened?
I am trying to use a kustomize transformer to set a default severity for PrometheusRules and then override this default severity using additional transformers for specific alerts. However, when combining these transformers I get an unexpected result compared to when they are applied individually
What did you expect to happen?
I'd expect each transformer to apply independently so that they can be combined
How can we reproduce it (as minimally and precisely as possible)?
# kustomization.yaml
resources:
- prometheus-rule.yaml
transformers:
- transformer-severity-default.yaml
- transformer-severity-example-bar.yaml
# prometheus-rule.yaml
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: example
spec:
groups:
- name: Example
rules:
- alert: ExampleFoo
- alert: ExampleBar
# transformer-severity-default.yaml
apiVersion: builtin
kind: AnnotationsTransformer
metadata:
name: severity-default
annotations:
severity: MAJOR
fieldSpecs:
- kind: PrometheusRule
path: spec/groups/rules/annotations
create: true
# transformer-severity-example-bar.yaml
apiVersion: builtin
kind: ValueAddTransformer
metadata:
name: severity-example-bar
value: WARNING
targets:
- selector:
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
name: example
fieldPath: spec/groups/[name=Example]/rules/[alert=ExampleBar]/annotations/severity
Expected output
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: example
spec:
groups:
- name: Example
rules:
- alert: ExampleFoo
annotations:
severity: MAJOR
- alert: ExampleBar
annotations:
severity: WARNING
Actual output
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: example
spec:
groups:
- name: Example
rules:
- alert: ExampleFoo
annotations:
severity: WARNING
- alert: ExampleBar
annotations:
severity: WARNING
Confusingly, each transformer works as expected when applied individually (e.g. commenting them out in turn they work correctly)
Kustomize version
v5.5.0
Operating system
MacOS