Repository navigation
feat(etcd-operator): bump to v0.5.5 and vendor EtcdDefragPolicy CRDs - #3968
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (9)
Included review availability: Your plan provides up to 8 included reviews per hour; 5 remain after this review. 📝 WalkthroughWalkthroughThe change updates the etcd operator to v0.5.5, adds ChangesEtcd defragmentation operator update
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: ⚪ Minimal · up to This localized upgrade adds the new defragmentation APIs and required permissions without any actionable merge-blocking risk remaining beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (9 skipped: 9 unsupported.) ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
v0.5.5 ships the EtcdDefrag and EtcdDefragPolicy API types (a controller plus a cron that stamps scheduled defrag runs). Vendor both CRDs into the etcd-operator-crds package and grant the manager ClusterRole the verbs the new controllers need: defragpolicies read/patch, defrags full CRUD, the two new /status subresources, and cluster-scoped event emission. Signed-off-by: Andrey Kolkov <[email protected]> Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
… comment The manager ClusterRole header still pointed at the upstream config/rbac/role.yaml path, which 404s at v0.5.5; the rules now live in charts/etcd-operator/files/manager-role-rules.yaml (already corrected in the Makefile and rbac_test.yaml). Signed-off-by: Andrey Kolkov <[email protected]> Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
The prior CI run stalled in the self-hosted runner queue for days and never scheduled; an empty commit forces a fresh run on the same tree. Signed-off-by: Andrey Kolkov <[email protected]> Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
40fc285 to
6afe69b
Compare
|
Created backport PR for
Please cherry-pick the changes locally and resolve any conflicts. git fetch origin backport-3968-to-release-1.6
git worktree add --checkout .worktree/backport-3968-to-release-1.6 backport-3968-to-release-1.6
cd .worktree/backport-3968-to-release-1.6
git reset --hard HEAD^
git cherry-pick -x 85cbb3d7cbed73d959e011e8448c1ba20dada432 5896484c4a29467594798d128ba42766046a6cef 6afe69b35b2c90f02fd601ccf16d253af85ab5f9
git push --force-with-lease |
v0.5.5 ships the EtcdDefrag and EtcdDefragPolicy API types (a controller plus a cron that stamps scheduled defrag runs). Vendor both CRDs into the etcd-operator-crds package and grant the manager ClusterRole the verbs the new controllers need: defragpolicies read/patch, defrags full CRUD, the two new /status subresources, and cluster-scoped event emission. Backport of #3968 to release-1.6. The automatic cherry-pick could not merge the etcd-operator-crds Makefile and left the conflict markers in the file; resolved by taking the five-CRD list the two new CRDs require. The comment that came with it on main describes an update target that counts annotations and swaps templates/ atomically — this branch has neither, so it is left out rather than carried in as a false description. Everything else applied unchanged. Signed-off-by: Andrey Kolkov <[email protected]> Signed-off-by: Andrei Kvapil <[email protected]>
A candidate counted as backported as soon as its backport PR had merged, or as soon as any one of its commits showed up on the branch by subject or -x reference. That is exactly the shape of the backport bot's conflict drafts: they stop at the first commit that does not apply and drop the rest, so merging one reads as a finished backport. A two-commit PR with only its first commit on the branch and no backport PR linked reported clean and exited 0. Judge delivery per commit. Every commit the PR contributed has to be on the branch -- reachable, named by an -x reference, or present under its own subject -- skipping merge commits and commits that change nothing, which the bot drops as well (merge_commits: skip; an empty cherry-pick applies nothing). Nothing weaker counts: not an -x reference to the PR's merge commit, which survives a cherry-pick later amended to drop a commit, and not matching lines, which an unrelated line of the same text satisfies. Subjects are matched one to one, so two commits both called "fix tests" need two branch commits of that name, and a branch commit whose -x reference names another commit is evidence only through that reference. A wrong "backported" is the one answer a release gate must not give, while a false alarm costs a look. Some commits carried is partial, listing the missing ones, whatever the linked backport PR says. A merged backport PR settles a PR of one commit alone, as before; for a PR of several with none of them found it proves only that something merged, and the candidate is unverified. Both fail the gate. Backports squashed by hand would then keep a branch red for good, so a maintainer who has checked one can attest it on the merged backport PR with a comment that is "backport-audit: complete" and nothing else. That lifts partial or unverified to confirmed, which passes; the report names who and links the comment. It counts only as the whole comment, so it needs no reading of markdown: any other text -- a sentence mentioning it, a quote, a code block, an explanation -- and it is not an attestation. It counts only on a PR that merged, only from an author GitHub associates with the repository as OWNER, MEMBER or COLLABORATOR, and never from automation, whether its login ends in [bot] or is a review or dependency bot gh reports without the suffix. A review bot quoting the marker, a maintainer writing "do not post backport-audit: complete yet", or a contributor vouching for their own backport confirms nothing. The audit never infers it. A git read a verdict depends on that fails, a merge commit missing from the local repository for instance, now stops the audit with exit 2 instead of being read as a PR with no commits to check. Unlabelled originals are never checked commit by commit, so their merged claims read "backport PR merged" rather than "backported here". On release-1.6 this reports five partials. #3955 and #3968 are real gaps: a labeler mapping and a comment fix never reached the branch. #4254 and #4292 were squashed by hand and their remaining changes are on the branch; #3936's backport cherry-picked the PR's merge commit. Those three are what an attestation is for, once someone has checked them. Assisted-by: LLM Signed-off-by: Myasnikov Daniil <[email protected]>
What this PR does
Bumps the vendored
etcd-operatorfrom v0.5.4 to v0.5.5 and adopts the new defrag API.v0.5.5 ships the
EtcdDefragandEtcdDefragPolicytypes — a controller that runs a one-shot defrag against a target etcd cluster, plus a cron-style policy that stamps scheduledEtcdDefragruns (schedule/suspend/concurrencyPolicy/historyLimit).etcd-operator-crds: vendor the two new CRDs (etcddefragpolicies,etcddefrags) alongside the existing three; bumpETCD_OPERATOR_REF. Re-vendoring also refreshedetcdmembers.yaml(a doc-string change from the version-matched-etcdutlrestore work in v0.5.5). All five carryhelm.sh/resource-policy: keep; the existing resource-policy suite covers the new CRDs via its wildcard template scope.etcd-operator: bumpappVersion/image tag to v0.5.5 and re-vendor the managerClusterRolefrom the operator'scharts/etcd-operator/files/manager-role-rules.yaml. New grants match what the defrag controllers need: full CRUD onetcddefrags, read/patch/watch onetcddefragpolicies, the two new/statussubresources, and cluster-scopedeventscreate/patch. Fixed the staleconfig/rbac/role.yamlpath in the Makefile/test comments (upstream moved the role rules).Screenshots
n/a — no UI changes.
Downstream repositories
Walked the trigger map against the diff. The change is confined to
packages/system/etcd-operator{,-crds}: etcd-operator is a system component (not apackages/apps/packages/extrapackage the website and TF provider track), the new CRDs are in groupetcd-operator.cozystack.io(notcozystack.io/backups.cozystack.io, the only CRD groups the TF provider types), and nothing underhack/, the installer values, or the platform values changed.Release note
Summary by CodeRabbit
New Features
Enhancements