Skip to content

[feature] lifecycle rules or flag to allow better control of omnictl cluster kubernetes manifest-sync #1888

@zgomez301

Description

@zgomez301

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions