mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-08 21:14:56 +09:00
Backport of #3552 to `release-1.6`. Tenant cilium HelmRelease on this branch sets `install.remediation.retries: -1` with no `strategy:`, so helm-controller uses its default install remediation, which is uninstall. Cilium is the tenant cluster's only CNI, so a tenant whose install misses its budget gets the CNI torn down and reinstalled once per cycle, and `-1` lets that repeat without end. `RetryOnFailure` keeps applied manifests in place and retries the failed install as an upgrade instead. Strategy is set on both actions because the retry of a failed install runs as an upgrade. Shipped broken in v1.6.0, v1.6.1 and v1.6.2. `RetryOnFailure` appears in none of the 19 helmrelease templates on this branch, and the Flux CRD release-1.6 already ships accepts it - enum at `spec.install.strategy.name` and `spec.upgrade.strategy.name`, with the `retryInterval` CEL guard. Cost is carried over from the original PR: a genuine upgrade failure now retries on failed manifests instead of rolling back. Controller can't tell a retried install from a real upgrade, and what it replaces was an unbounded rollback-and-retry flap. Auto backport did not apply here, and it was not a conflict. Bot picked four commits from the PR branch, three of them empty `ci: re-run` commits, and `git cherry-pick` exits non-zero on an empty pick with no unmerged paths, which the action reads as a conflict. Picking `80a209044` alone is the whole backport and applies with a line offset only. Resulting tree matches the bot's four-SHA-with-three-skips recipe byte for byte. ### Testing - `make test` in `packages/apps/kubernetes` - 18 suites, 186 tests green. - New suite is mutation-proven rather than revert-proven: setting `install.strategy.name` to `Rollback` reds exactly the install test, removing the `upgrade.strategy` block reds exactly the upgrade test, other 185 unaffected both times. - `make unit-tests` and `make test-controllers` green, `make generate` leaves no drift. - No migration touched, `targetVersion` still 54. ```release-note fix(kubernetes): retry the tenant CNI install instead of uninstalling it ```