kubernetes-sigs / kustomize

Customization of kubernetes YAML configurations
Apache License 2.0
11.09k stars 2.26k forks source link

Replacements IgnoreMissingField #5777

Open bt-macole opened 1 month ago

bt-macole commented 1 month ago

Eschewed features

What would you like to have added?

include in FieldOptions a bool for IgnoreMissingField in order to apply replacements across many files, ignoring those, that don't have the field.

Why is this needed?

When using replacements as a reusable component across multiple manifests, especially in environmental overlays, a common pattern emerges. For example, certain elements like an accountId in an IRSA role annotation on a ServiceAccount often need to be replaced.

In cases where you have many ServiceAccount resources—such as N applications with M workloads and M ServiceAccounts—only X of those ServiceAccounts may require the annotation replacement, while others do not.

This approach ensures flexibility, allowing replacements to be applied only where needed, without enforcing unnecessary changes across all resources.

Can you accomplish the motivating task without this feature, and if so, how?

The task can be accomplished, but it requires more granular use of the replacement, targeting specific ServiceAccounts which can result in more complexity, code duplication, and errors.

What other solutions have you considered?

Pattern matching with regex on the target name so the replacement only applies to resources that match a specific name format.

Anything else we should know?

No response

Feature ownership

k8s-ci-robot commented 1 month 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.