kubernetes-sigs / kustomize

Customization of kubernetes YAML configurations
Apache License 2.0
10.99k stars 2.25k forks source link

Replacements takes secret name without a random suffix #5791

Open vlasov-y opened 3 days ago

vlasov-y commented 3 days ago

What happened?

Replacements set wrong secret name to target key, it does not contain a random suffix.

What did you expect to happen?

Secret name from secret object and in replaced paths matches.

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

# kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - service.yaml
secretGenerator:
  - name: data
    envs:
      - data.env
replacements:
  - source:
      kind: Secret
    targets:
      - select:
          kind: Service
        fieldPaths:
          - metadata.annotations.secretName
        options:
          create: true
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  type: ClusterIP
  ports:
  - port: 80
    targetPort: http
    protocol: TCP
    name: http
# data.env
a=b

Expected output

apiVersion: v1
data:
  a: Yg==
kind: Secret
metadata:
  name: data-k695gkmbtk
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    secretName: data-k695gkmbtk
  name: nginx
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
  type: ClusterIP

Actual output

apiVersion: v1
data:
  a: Yg==
kind: Secret
metadata:
  name: data-k695gkmbtk
type: Opaque
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    secretName: data # <-- here it is
  name: nginx
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
  type: ClusterIP

Kustomize version

v5.5.0

Operating system

Linux

k8s-ci-robot commented 3 days ago

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](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.