kustomize icon indicating copy to clipboard operation
kustomize copied to clipboard

Failing to apply multiple patches using labelSelector/annotationSelector targeting the same files

Open mikecmpbll opened this issue 11 months ago • 3 comments

What happened?

When I use two JSON patches to copy configuration, and target these patches using annotationSelector, only the first patch applies.

What did you expect to happen?

I expected the second patch to be applied.

How can we reproduce it (as minimally and precisely as possible)?

# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - resources.yaml
patches:
  - patch: |-
      - op: copy
        from: /data/original/foo
        path: /data/new/foo
    target:
      annotationSelector: default-env=True
  - patch: |-
      - op: copy
        from: /data/original/baz
        path: /data/new/baz
    target:
      annotationSelector: default-env=True
# resources.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: test-object
  annotations:
    default-env: True
data:
  original:
    foo: bar
    baz: qux
  new:
    foo:
    baz:

Expected output

apiVersion: v1
data:
  new:
    baz: qux
    foo: bar
  original:
    baz: qux
    foo: bar
kind: ConfigMap
metadata:
  annotations:
    default-env: "true"
  name: test-object

Actual output

apiVersion: v1
data:
  new:
    baz: null
    foo: bar
  original:
    baz: qux
    foo: bar
kind: ConfigMap
metadata:
  annotations:
    default-env: "true"
  name: test-object

Kustomize version

v5.3.0

Operating system

MacOS

mikecmpbll avatar Mar 21 '24 15:03 mikecmpbll

This issue is currently awaiting triage.

SIG CLI takes a lead on issue triage for this repo, but any Kubernetes member can accept issues by applying the triage/accepted label.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

k8s-ci-robot avatar Mar 21 '24 15:03 k8s-ci-robot

same is true of the labelSelector. works as expected with name: test-object as the target, though.

mikecmpbll avatar Mar 21 '24 15:03 mikecmpbll