Skip to content

Release 0.68.6 PR#2213

Open
vrutkovs wants to merge 19 commits into
release-0.68from
next-release-0.68.6
Open

Release 0.68.6 PR#2213
vrutkovs wants to merge 19 commits into
release-0.68from
next-release-0.68.6

Conversation

@vrutkovs

Copy link
Copy Markdown
Collaborator

No description provided.

@vrutkovs vrutkovs requested a review from AndrewChubatiuk as a code owner May 27, 2026 08:45

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 10 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="internal/controller/operator/factory/reconcile/statefulset.go">

<violation number="1" location="internal/controller/operator/factory/reconcile/statefulset.go:224">
P2: The early return skips syncing `status.currentReplicas` when `currentRevision` is already up to date, so replica status can remain stale on later reconciles/scale events.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Fix all with cubic | Re-trigger cubic

Comment thread internal/controller/operator/factory/reconcile/statefulset.go
AndrewChubatiuk and others added 6 commits May 27, 2026 11:20
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Signed-off-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>
Signed-off-by: Vadim Rutkovsky <vadim@vrutkovs.eu>
Co-authored-by: Vadim Rutkovsky <vadim@vrutkovs.eu>
…hen HPA enabled on a storage (#2119)

* [vm|vl|vt]cluster: properly generate storageNode command line flags when HPA enabled on a storage

* Update docs/CHANGELOG.md

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Signed-off-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>

* apply suggestions

---------

Signed-off-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>
Signed-off-by: Vadim Rutkovsky <vadim@vrutkovs.eu>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Vadim Rutkovsky <vadim@vrutkovs.eu>
* tests: add more reconcile status change e2e tests

* fix: nitpick in status update logic

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

10 issues found across 42 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".github/workflows/main.yaml">

<violation number="1" location=".github/workflows/main.yaml:63">
P0: Unresolved merge conflict markers in CI workflow. The `<<<<<<< HEAD`, `|||||||`, `=======`, `>>>>>>>` markers are present across all action steps, making the YAML unparseable and blocking all CI runs.</violation>
</file>

<file name=".github/workflows/docs.yaml">

<violation number="1" location=".github/workflows/docs.yaml:23">
P0: Unresolved merge conflict markers left in workflow YAML. The file has `<<<<<<< HEAD` / `|||||||` / `=======` / `>>>>>>>` blocks at 4 action steps, making the YAML invalid and breaking CI.</violation>
</file>

<file name=".github/workflows/crds.yaml">

<violation number="1" location=".github/workflows/crds.yaml:19">
P0: Unresolved merge conflict markers (`<<<<<<<`, `|||||||`, `=======`, `>>>>>>>`) in YAML workflow file — the GitHub Actions runner will fail to parse this as valid YAML, breaking the entire release workflow.</violation>
</file>

<file name=".github/workflows/sandbox.yaml">

<violation number="1" location=".github/workflows/sandbox.yaml:28">
P0: Unresolved merge conflict markers left in the workflow file — YAML parser will reject the file and the workflow will not run.</violation>
</file>

<file name=".github/workflows/release.yaml">

<violation number="1" location=".github/workflows/release.yaml:17">
P1: Unresolved merge-conflict markers were committed into the workflow. This makes the release workflow YAML invalid and blocks release automation.</violation>
</file>

<file name="Makefile">

<violation number="1" location="Makefile:461">
P2: Shell `&&`/`||` chain masks allure command failures. If `./allure-results` exists but `npx allure awesome` exits non-zero, the `||` echo runs and the recipe succeeds silently, hiding genuine report generation errors.</violation>
</file>

<file name="cmd/config-reloader/k8s_watch.go">

<violation number="1" location="cmd/config-reloader/k8s_watch.go:87">
P2: Dropping secret watch events can miss the final config change and keep local config outdated. With default `resync-interval=0`, there is no guaranteed recovery path after a dropped event.</violation>
</file>

<file name="cmd/config-reloader/main.go">

<violation number="1" location="cmd/config-reloader/main.go:281">
P2: waitDelay ignores context cancellation when delayInterval is 0, so shutdown can still trigger an extra reload call. This can produce spurious reload/logging and delay graceful stop if reload path blocks.</violation>
</file>

<file name="api/operator/v1beta1/vmrule_types.go">

<violation number="1" location="api/operator/v1beta1/vmrule_types.go:33">
P3: `+patchStrategy=merge`, `+patchMergeKey=name` comment annotations and `patchStrategy:"merge" patchMergeKey:"name"` struct tags are dead code for this CRD type — controller-gen ignores them, and the k8s API server does not read struct tags for CRD strategic-merge-patch. Only `+listType=map`/`+listMapKey=name` enable server-side apply merge behavior for CRDs.</violation>
</file>

<file name="internal/controller/operator/factory/vmanomaly/config/config_test.go">

<violation number="1" location="internal/controller/operator/factory/vmanomaly/config/config_test.go:546">
P1: Test expects `exact: true` in config output but backtestingScheduler struct has no `Exact` field — test will fail under yaml.UnmarshalStrict</violation>
</file>

Tip: instead of fixing issues one by one fix them all with cubic
Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread .github/workflows/main.yaml Outdated
SAVED=$((AFTER-BEFORE))
echo "Saved $(formatByteCount $SAVED)"
- name: Checkout code
<<<<<<< HEAD

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Unresolved merge conflict markers in CI workflow. The <<<<<<< HEAD, |||||||, =======, >>>>>>> markers are present across all action steps, making the YAML unparseable and blocking all CI runs.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/main.yaml, line 63:

<comment>Unresolved merge conflict markers in CI workflow. The `<<<<<<< HEAD`, `|||||||`, `=======`, `>>>>>>>` markers are present across all action steps, making the YAML unparseable and blocking all CI runs.</comment>

<file context>
@@ -60,30 +60,60 @@ jobs:
           SAVED=$((AFTER-BEFORE))
           echo "Saved $(formatByteCount $SAVED)"
       - name: Checkout code
+<<<<<<< HEAD
         uses: actions/checkout@v5
+||||||| parent of 34bf0a5895 (pin actions to full-length commit SHAs (#2168))
</file context>
Fix with cubic

@@ -20,20 +20,38 @@ jobs:
url: https://docs.victoriametrics.com/operator

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Unresolved merge conflict markers left in workflow YAML. The file has <<<<<<< HEAD / ||||||| / ======= / >>>>>>> blocks at 4 action steps, making the YAML invalid and breaking CI.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/docs.yaml, line 23:

<comment>Unresolved merge conflict markers left in workflow YAML. The file has `<<<<<<< HEAD` / `|||||||` / `=======` / `>>>>>>>` blocks at 4 action steps, making the YAML invalid and breaking CI.</comment>

<file context>
@@ -20,20 +20,38 @@ jobs:
       url: https://docs.victoriametrics.com/operator
     steps:
       - name: Checkout operator repo
+<<<<<<< HEAD
         uses: actions/checkout@v5
+||||||| parent of 34bf0a5895 (pin actions to full-length commit SHAs (#2168))
</file context>
Fix with cubic

Comment thread .github/workflows/crds.yaml Outdated
name: docs
steps:
- name: Check out operator code
<<<<<<< HEAD

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: Unresolved merge conflict markers (<<<<<<<, |||||||, =======, >>>>>>>) in YAML workflow file — the GitHub Actions runner will fail to parse this as valid YAML, breaking the entire release workflow.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/crds.yaml, line 19:

<comment>Unresolved merge conflict markers (`<<<<<<<`, `|||||||`, `=======`, `>>>>>>>`) in YAML workflow file — the GitHub Actions runner will fail to parse this as valid YAML, breaking the entire release workflow.</comment>

<file context>
@@ -16,22 +16,40 @@ jobs:
       name: docs
     steps:
       - name: Check out operator code
+<<<<<<< HEAD
         uses: actions/checkout@v5
+||||||| parent of 34bf0a5895 (pin actions to full-length commit SHAs (#2168))
</file context>
Fix with cubic

Comment thread .github/workflows/sandbox.yaml
Comment thread .github/workflows/release.yaml Outdated
pages: write
steps:
- name: Checkout code
<<<<<<< HEAD

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Unresolved merge-conflict markers were committed into the workflow. This makes the release workflow YAML invalid and blocks release automation.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/release.yaml, line 17:

<comment>Unresolved merge-conflict markers were committed into the workflow. This makes the release workflow YAML invalid and blocks release automation.</comment>

<file context>
@@ -14,14 +14,32 @@ jobs:
       pages: write
     steps:
       - name: Checkout code
+<<<<<<< HEAD
         uses: actions/checkout@v5
+||||||| parent of 34bf0a5895 (pin actions to full-length commit SHAs (#2168))
</file context>
Fix with cubic

fit_every: 1h
from_s: 1000
to_s: 2000
exact: true

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Test expects exact: true in config output but backtestingScheduler struct has no Exact field — test will fail under yaml.UnmarshalStrict

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At internal/controller/operator/factory/vmanomaly/config/config_test.go, line 546:

<comment>Test expects `exact: true` in config output but backtestingScheduler struct has no `Exact` field — test will fail under yaml.UnmarshalStrict</comment>

<file context>
@@ -300,14 +300,314 @@ monitoring:
+    fit_every: 1h
+    from_s: 1000
+    to_s: 2000
+    exact: true
+    infer_every: 5m
+reader:
</file context>
Fix with cubic

Comment thread Makefile
.PHONY: allure-report
allure-report:
npx allure awesome --single-file ./allure-results -o ./allure-report
@[ -d ./allure-results ] && npx allure awesome --single-file ./allure-results -o ./allure-report || echo "allure-results dir not found, skipping report generation"

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Shell &&/|| chain masks allure command failures. If ./allure-results exists but npx allure awesome exits non-zero, the || echo runs and the recipe succeeds silently, hiding genuine report generation errors.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At Makefile, line 461:

<comment>Shell `&&`/`||` chain masks allure command failures. If `./allure-results` exists but `npx allure awesome` exits non-zero, the `||` echo runs and the recipe succeeds silently, hiding genuine report generation errors.</comment>

<file context>
@@ -458,7 +458,7 @@ $(MIRRORD_BIN): $(LOCALBIN)
 .PHONY: allure-report
 allure-report:
-	npx allure awesome --single-file ./allure-results -o ./allure-report
+	@[ -d ./allure-results ] && npx allure awesome --single-file ./allure-results -o ./allure-report || echo "allure-results dir not found, skipping report generation"
 
 # go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
</file context>
Suggested change
@[ -d ./allure-results ] && npx allure awesome --single-file ./allure-results -o ./allure-report || echo "allure-results dir not found, skipping report generation"
@if [ -d ./allure-results ]; then npx allure awesome --single-file ./allure-results -o ./allure-report; else echo "allure-results dir not found, skipping report generation"; fi
Fix with cubic

select {
case syncChan <- syncEvent{op: "update", obj: s}:
default:
logger.Infof("syncChan full, dropping update event for secret: %s", s.Name)

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Dropping secret watch events can miss the final config change and keep local config outdated. With default resync-interval=0, there is no guaranteed recovery path after a dropped event.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At cmd/config-reloader/k8s_watch.go, line 87:

<comment>Dropping secret watch events can miss the final config change and keep local config outdated. With default `resync-interval=0`, there is no guaranteed recovery path after a dropped event.</comment>

<file context>
@@ -73,15 +73,27 @@ func newKubernetesWatcher(ctx context.Context, secretName, namespace string) (*k
+			select {
+			case syncChan <- syncEvent{op: "update", obj: s}:
+			default:
+				logger.Infof("syncChan full, dropping update event for secret: %s", s.Name)
+			}
 		},
</file context>
Fix with cubic

if *delayInterval > 0 {
t := time.NewTimer(*delayInterval)
defer t.Stop()
select {

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: waitDelay ignores context cancellation when delayInterval is 0, so shutdown can still trigger an extra reload call. This can produce spurious reload/logging and delay graceful stop if reload path blocks.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At cmd/config-reloader/main.go, line 281:

<comment>waitDelay ignores context cancellation when delayInterval is 0, so shutdown can still trigger an extra reload call. This can produce spurious reload/logging and delay graceful stop if reload path blocks.</comment>

<file context>
@@ -283,6 +274,25 @@ func (c *cfgWatcher) close() {
+	if *delayInterval > 0 {
+		t := time.NewTimer(*delayInterval)
+		defer t.Stop()
+		select {
+		case <-t.C:
+		case <-ctx.Done():
</file context>
Fix with cubic

// +patchStrategy=merge
// +listType=map
// +listMapKey=name
Groups []RuleGroup `json:"groups" patchStrategy:"merge" patchMergeKey:"name"`

@cubic-dev-ai cubic-dev-ai Bot Jun 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: +patchStrategy=merge, +patchMergeKey=name comment annotations and patchStrategy:"merge" patchMergeKey:"name" struct tags are dead code for this CRD type — controller-gen ignores them, and the k8s API server does not read struct tags for CRD strategic-merge-patch. Only +listType=map/+listMapKey=name enable server-side apply merge behavior for CRDs.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At api/operator/v1beta1/vmrule_types.go, line 33:

<comment>`+patchStrategy=merge`, `+patchMergeKey=name` comment annotations and `patchStrategy:"merge" patchMergeKey:"name"` struct tags are dead code for this CRD type — controller-gen ignores them, and the k8s API server does not read struct tags for CRD strategic-merge-patch. Only `+listType=map`/`+listMapKey=name` enable server-side apply merge behavior for CRDs.</comment>

<file context>
@@ -26,7 +26,11 @@ var initVMAlertTemplatesOnce sync.Once
+	// +patchStrategy=merge
+	// +listType=map
+	// +listMapKey=name
+	Groups []RuleGroup `json:"groups" patchStrategy:"merge" patchMergeKey:"name"`
 }
 
</file context>
Fix with cubic

rudransh-shrivastava and others added 12 commits June 17, 2026 16:11
Signed-off-by: Rudransh Shrivastava <rudransh@victoriametrics.com>
…ed (#2172)

* fix: emitting config-reloader signals when delay-interval is customized

Each reload called a separate goroutine, instead we should use delay-interval

* fix: rework to avoid using goto

* Update cmd/config-reloader/main.go

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Signed-off-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>

---------

Signed-off-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>
Co-authored-by: Andrii Chubatiuk <achubatiuk@victoriametrics.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* vmanomaly: fix marshalling of verify_tls

Sync behaviour of "verify_tls" with vmanomaly itself: accept 3 values: true / false / path to CA to be used for
verification.

* vmanomaly: add tests for boolean TLS insecure skip verify
* fix: drop events when channel overflows to avoid blocking it

* fix: don't block on sleep when ctx is cancelled

* fix: add informer goroutine to the waitgroup

* fix: don't bump contentUpdateErrorsTotal metric when request cancelled

Also fixes a typo
* feat: ensure that all operator-controlled resources have victoriametrics_app=true metric label

* docs: update 0.71.0 release details

* Apply suggestion from @AndrewChubatiuk

Signed-off-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>

---------

Signed-off-by: Andrii Chubatiuk <andrew.chubatiuk@gmail.com>
Co-authored-by: Andrii Chubatiuk <achubatiuk@victoriametrics.com>
@vrutkovs vrutkovs force-pushed the next-release-0.68.6 branch from 22ab1e3 to eabbd6e Compare June 17, 2026 14:12
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.

8 participants