-
Notifications
You must be signed in to change notification settings - Fork 294
feat : Track ResourceGraphDefinition changes and require opt-in for instance updates #917
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
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: shivansh-source <shivanshsiddhi1234@gmail.com>
|
|
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: shivansh-source The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Welcome @shivansh-source! |
|
Hi @shivansh-source. Thanks for your PR. I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions 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-sigs/prow repository. |
This PR addresses issue #188 by making instance updates from a
ResourceGraphDefinition (RGD) explicit, traceable, and safe by default.
This PR introduces:
RGD change tracking on instances
Adds two status fields:
resourceRevision: a stable sha256 hash of the compiled graph.Graph
resourceGroupGeneration: a monotonic counter derived from revision changes
These track effective RGD changes without requiring access to Kubernetes metadata.generation
Opt-in update mechanism
Instances only receive RGD updates when annotated with:
kro.run/allow-updates: "true"By default, updates are blocked and surfaced via conditions
Safe reconciliation behavior
First-time and legacy instances are initialized automatically
Non–opted-in instances are not mutated when the RGD changes
Opted-in instances update normally and refresh their tracked revision/generation.
Testing
Unit tests pass locally
Integration tests require envtest binaries (etcd, kube-apiserver) and were not run locally; CI should execute them
Fixes #188.