-
Notifications
You must be signed in to change notification settings - Fork 115
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
API server normalization of values is causing a preview to show changes when one is not expected in testing. #644
Comments
This regression seems very likely to cause a large number of spurious "always trigger rollout" changes until it is addressed, and users who encounter it are unlikely to know why this is happening, or how to mitigate. I'm going to mark it P1. Talking to @pgavlin offline, our current understanding is that this diff occurs because we are asking the k8s API server for the live version of the object and computing the diff from that. Since the API server normalizes the memory values, it registers as changes to us. This may not be the only contributing factor to this issue. I would have expected that this normalization would already trigger spurious diffs, since this normalization should be present also in the live version of the object that's handed back to us upon completion of the Additional context. The "permanent" solution is to implement How do we want to proceed? |
Regrouping with @pgavlin again, it turns out that we're not diffing against the live state from the API server—we've instead changed from diffing just the current and last inputs, to including the last live state (returned from, e.g., a This all makes sense and I have no more questions. I think rolling back these changes doesn't "fix" the issue, it simply breaks it in a different way, so my advice is to just collaborate to fix it. @pgavlin I am here to help, lmk what you need. I'll assign to you for now but come get me and we can pair (or whatever) until we get a fix. |
Recommend also that we transfer this to pulumi-kubernetes repository. The fix will be local to the kube provider. |
Yes, I will transfer this issue. |
These changes update `Diff` to calculate the new state for the patched resource by requesting that the API server dry-run the patch when possible. This avoids unexpected diffs due to server-side normalization of values that are present in both the resource's configuration and its state. Fixes #644.
These changes update `Diff` to calculate the new state for the patched resource by requesting that the API server dry-run the patch when possible. This avoids unexpected diffs due to server-side normalization of values that are present in both the resource's configuration and its state. Fixes #644.
This is biting us as well for StatefulSets especially - is there a date when we can expect this change as part of a new release of |
This error showed up in CI cron jobs in the last 24 hours of
pulumi/eks
tests:A deployment marked with resources
2048Mi
is being normalized to2Gi
on the initial update, and then on theempty
pulumi preview
step it is trying to change it back to2048Mi
- this unexpected change causes the test to fail when it does not expect changes.This occurs on
pulumi preview
right after an initialpulumi up
of a Deployment using resources with2048Mi
notation.Versions:
pulumi/pulumi
: 0.17.25pulumi/kubernetes
: 0.25.2pulumi/eks
: 0.18.10See related Slack conversation about a similar type of error occurring in the aws-tf-provider a couple weeks back.
The text was updated successfully, but these errors were encountered: