Repository navigation
fix(migrations): preserve legacy deployer intent after undeploy - #4076
Elvand-Lie wants to merge 2 commits into
Conversation
Fingerprint hashes file paths and modification timestamps. Rapid writes can retain the same mtime, making the comment-pattern test fail even when the file is correctly tracked. Capture the original mtime and explicitly advance it by two seconds after rewriting notes.txt. Keep both inclusion and modification assertions and avoid sleeps or production fingerprint changes. Assisted-by: OpenAI Codex and Claude Code Signed-off-by: Elvand Lie Nababan <elvandlie@gmail.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Elvand-Lie 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 |
|
Hi @Elvand-Lie. Thanks for your PR. I'm waiting for a knative member to verify that this patch is reasonable to test. If it is, they should reply with Tip We noticed you've done this a few times! Consider joining the org to skip this step and gain 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. |
Legacy func.yaml files stored the chosen deployer only in observed state. Deleting clears that state, causing redeploy to fall back to the configured default. Recover missing top-level intent during migration while preserving explicit intent and observed state. Exercise real YAML loading and CLI delete, reload and redeploy for legacy 0.36.0 and 0.38.0 files, all deployers, global defaults, and flag and environment overrides. Keep plain redeploy as a control. Fixes knative#4054 Assisted-by: OpenAI Codex and Claude Code Signed-off-by: Elvand Lie Nababan <elvandlie@gmail.com>
Fixes #4054.
Legacy
func.yamlfiles stored the selected deployer only underdeploy.deployer.func deleteclears that deployment state, so the next deploy falls back to the configured default.Recover missing top-level deployer intent when migrating files whose
specVersionis below 0.39.0. This preserves the selected deployer across delete and redeploy while preserving explicit intent and observed state.Testing: regression tests cover legacy YAML loading and CLI delete/redeploy for raw, KEDA and Knative, including global defaults and flag/environment overrides. The recovery cases fail on main and pass with this fix; the control cases pass on both. Full Linux
make testandmake checkpassed. This PR also makes an existing fingerprint test explicitly advance the file timestamp so rapid writes cannot cause a spurious failure.Files whose
specVersionis already 0.39.0 or later with only observed deployer state are outside this migration's scope. Windows/macOS and cluster tests were not run locally./kind bug