Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

replacement in base kustomization missing custom nameSuffix #5618

Open
pberndt opened this issue Mar 19, 2024 · 3 comments
Open

replacement in base kustomization missing custom nameSuffix #5618

pberndt opened this issue Mar 19, 2024 · 3 comments
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@pberndt
Copy link

pberndt commented Mar 19, 2024

What happened?

When applying a custom nameSuffix to a base kustomization that is using replacements, some of the replacement values will be missing the nameSuffix.

What did you expect to happen?

I expected the replacements to consistently reflect the applied nameSuffix. Instead, in some cases they contain the suffix and in other cases they reference non-existent resources (without the suffix).

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

.
├── base
│   ├── 1-pv.yaml
│   ├── 2-pvc.yaml
│   └── kustomization.yaml
└── custom
    └── kustomization.yaml
# base/1-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: tekton-cnb-pv  # will receive a custom suffix "-foo"
spec:
  storageClassName: ""
  claimRef:
    name: will-be-replaced  # => tekton-cnb-pvc (missing suffix!)
# base/2-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: tekton-cnb-pvc  # will receive a custom suffix "-foo"
spec:
  storageClassName: ""
  volumeName: will-be-replaced # => tekton-cnb-pv-foo (works as expected)
# base/kustomization.yaml
resources:
  - 1-pv.yaml
  - 2-pvc.yaml
replacements:
  - source:
      kind: PersistentVolume
      fieldPath: metadata.name
    targets:
      - select:
          kind: PersistentVolumeClaim
        fieldPaths:
          - spec.volumeName
  - source:
      kind: PersistentVolumeClaim
      fieldPath: metadata.name
    targets:
      - select:
          kind: PersistentVolume
        fieldPaths:
          - spec.claimRef.name
# custom/kustomization.yaml
resources:
  - ../base
nameSuffix: -foo

Then invoke

kustomize build custom

Expected output

apiVersion: v1
kind: PersistentVolume
metadata:
  name: tekton-cnb-pv-foo
spec:
  claimRef:
    name: tekton-cnb-pvc-foo
  storageClassName: ""
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: tekton-cnb-pvc-foo
spec:
  storageClassName: ""
  volumeName: tekton-cnb-pv-foo

(nameSuffix applied consistently)

Actual output

apiVersion: v1
kind: PersistentVolume
metadata:
  name: tekton-cnb-pv-foo
spec:
  claimRef:
    name: tekton-cnb-pvc
  storageClassName: ""
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: tekton-cnb-pvc-foo
spec:
  storageClassName: ""
  volumeName: tekton-cnb-pv-foo

(nameSuffix missing from PV's claimRef)

Kustomize version

v5.3.0

Operating system

Linux

@pberndt pberndt added the kind/bug Categorizes issue or PR as related to a bug. label Mar 19, 2024
@k8s-ci-robot
Copy link
Contributor

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 k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Mar 19, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 17, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues.

This bot triages un-triaged issues according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle rotten
  • Close this issue with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

3 participants