-
Notifications
You must be signed in to change notification settings - Fork 72
Description
Problem Description
adding lifecycle rules to certain config patches, particularly for inline manifests that are bootstrapped into the cluster as separate patches. These rules would allow us to selectively retain or ignore changes to specific parts of the manifests, providing greater flexibility in managing cluster resources.
Some inline manifests define critical parent applications in ArgoCD or other essential resources. It is important to retain these manifests while ignoring specific changes, such as metadata annotations which argocd adds, that are flagged during sync operations. omnictl cluster kubernetes manifest-sync will remove these annotations, specifically on bootstrapped namespaces and storage classes which effects resource tracking
Solution
Add a new field near patches.inline.cluster to define lifecycle rules for managing changes. This field would allow us to specify what to ignore during sync operations - omnictl cluster kubernetes manifest-sync- The rules could be applied at different levels:
the first application is allowed but certain changes are ignored
ignore_changes: all
Completely ignore changes to the patch, ensuring it is never modified during sync operations.
ignore_changes: metadata
Ignore changes to the metadata field, such as annotations or labels, while allowing other fields to be updated.
ignore_changes: [specific fields]
Allow fine-grained control to ignore changes to specific fields, such as metadata.annotations.
as there is no way to selectively sync parts of the manifest, there is potential to remove necessary configs when cleaning up manifests in preparation to fully bootstrap. This feature will allow more control on what gets upated
Alternative Solutions
No response
Notes
No response