Skip to content

[Reliability] Harden operator reconciliation and deployment workflows - #618

Merged
loveRhythm1990 merged 11 commits into
mainfrom
lr90/harden-operator-reliability
Sep 2, 2026
Merged

[Reliability] Harden operator reconciliation and deployment workflows#618
loveRhythm1990 merged 11 commits into
mainfrom
lr90/harden-operator-reliability

Conversation

@loveRhythm1990

@loveRhythm1990 loveRhythm1990 commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • enqueue CNSet and DNSet only when the backing LogSet StatefulSet reserve ordinals change, without altering create/delete lifecycle ordering
  • support namespace-aware internal LogSet references through shared owner/reference matching rules
  • reconcile the managed shape of CN metrics Services while preserving unrelated metadata; a foreign-owned name collision is left untouched and cannot block CN rollout or scaling
  • keep Kruise Pod/PUB and custom-resource admission fail-closed, document the invariant, and test outage plus recovery after the established E2E suite
  • package the existing OpenKruise 1.8.3 dependency without modifying its Chart content or version
  • make local, E2E, and release Chart packaging deterministic in workspaces containing stale dependency archives
  • pin setup-envtest, golangci-lint, Go, GitHub Actions, and Ginkgo; align documented local verification with CI
  • allow reviewed top-level troubleshooting Markdown while ignoring evidence/generated subtrees by default

Regression coverage

  • update-only reserveOrdinals predicate, LogSet owner filtering, namespace-aware reference matching, and CNSet/DNSet request mapping
  • CN metrics Service drift recovery, stable CNSet selector with empty TypeMeta, and foreign-owner collision behavior
  • rendered webhook policy, ignored-lock isolation, and dirty-workspace packaging
  • Kind outage scenario covering unrelated API availability, Pod/Kruise CR fail-closed behavior, Helm upgrade, and webhook recovery
  • serialize the resource-intensive maximum-name cluster spec on the shared single-node Kind cluster

Verification

  • make ci-reviewable with Go 1.23.1
  • make verify-generated
  • make verify-chart
  • make go-lint with golangci-lint v2.1.6
  • make check-license
  • actionlint
  • focused controller tests and E2E suite compilation

The Kind outage scenario is wired into CI and was not run locally.

The OpenKruise StorageClass RBAC mismatch tracked by #610 is intentionally deferred to a separate change because it requires publishing a customized dependency Chart.

Refs #615
Refs #603

Resolve StorageClass watch permissions without enabling PVC auto-resize, define webhook outage behavior, and make chart packaging deterministic.

Refs #610

Refs #615
Use explicit supported Action revisions, pin setup-envtest and golangci-lint, and document the local checks mirrored by CI.

Refs #603

Refs #615
@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

Expose the version file value as a composite-step output so setup-go does not evaluate an unset dynamic environment expression.

Refs #615
Run the header action after repository verification because the action installs Go 1.25 internally and otherwise replaces the pinned Go 1.23.1 toolchain.

Refs #615
Pin setup-envtest to a Go 1.23 compatible revision that reads the current controller-tools release index, and fail before tests when assets cannot be resolved.

Refs #603

Refs #615
@loveRhythm1990
loveRhythm1990 merged commit e216d19 into main Sep 2, 2026
4 checks passed
@loveRhythm1990
loveRhythm1990 deleted the lr90/harden-operator-reliability branch September 2, 2026 16:33
@mergify

mergify Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants