VictoriaMetrics / VictoriaMetrics/operator

Upgrade Dry-Run Check

Open
#2,494 0 comments 1 reaction 1 assignee View on GitHub

@AquaOctet is already working on this.

Since Aug 19, 2026.

Dominant language
Go
Stars
589
Forks
229
Avg merge
1d 9h
Merged PRs (30d)
77

Description

Current gap:

The existing --dry-run lists real CRs and calls their reconcilers with writes disabled. List and reconcile errors are logged, but the command can still print success and return exit code 0. A blocked cached read has no per-object timeout.

Change:

Update the existing --dry-run to:

  • check that required CRDs and Kubernetes APIs exist
  • run as the Operator ServiceAccount and execute the same list and reconcile paths as the Operator
  • apply a timeout to each list and reconcile operation
  • print the controller, object, phase, Kubernetes reason, and original error
  • exit with a non-zero code on a real failure or timeout
  • keep create, update, patch, and delete disabled.

If a check waits for a write that dry-run suppressed, report planned_change_not_applied and do not count it as a failure. The command must not change RBAC or other resources.

Done when:

The stale v0.73 ClusterRole fails in under one minute and names both missing v0.74 permissions. The correct v0.74 package passes.

Product result:

A bad upgrade fails with a clear reason before the running Operator is changed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.