Repository navigation
feat(monitoring): upgrade victoria-metrics-operator to v0.68.4 - #2426
Conversation
Bumps the vendored victoria-metrics-operator chart from 0.59.1 to 0.61.0 (operator appVersion v0.68.1 to v0.68.4) via `make update`. Picks up upstream bugfixes in the v0.68.x line: correct VMPodScrape port for VMAgent/VLAgent, StatefulSet pod deletion when maxUnavailable=100%, VMDistributed PVC ownership fix, finalizer cleanup, ingest-only mode not mounting scrape config secrets, STS recreation on immutable field changes, and PVC resize completion wait. Chart 0.60.0 is skipped because it introduced a matchLabels change requiring Deployment recreation that was reverted in 0.61.0. Local patch disable-ca-key-rotation.patch reapplies cleanly. Assisted-By: Claude <[email protected]> Signed-off-by: Aleksei Sviridkin <[email protected]>
📝 WalkthroughWalkthroughThis PR updates the VictoriaMetrics Operator Helm chart with version bumps to v0.61.0, refactors label and selector templating logic to revert Deployment matchLabels changes, extends CRD schemas with new configuration fields, and introduces new values for pod disruption budgets, deployment strategy, and webhook annotations. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 Trivy (0.69.3)Failed to read Trivy output file: ENOENT: no such file or directory, open '/inmem/1273/nsjail-01e7ec6a-9bd4-42bc-95e9-b1b92bc2faad/merged/.trivy-output.json' Warning Review ran into problems🔥 ProblemsTimed out fetching pipeline failures after 30000ms 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 |
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (1)
packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/templates/_helpers.tpl (1)
177-183: UsedeepCopywhen assigning.extraLabelsto prevent future mutation bugs.
vm.selectorLabels(line 233) andvm.metaLabels(line 180) both mutate.extraLabelsdirectly viaset. While the current code structure—where template outputs are serialized to YAML text and re-parsed in callers—prevents mutations from leaking, this pattern is fragile. Future refactoring that directly reuses maps instead of parsing text could reintroduce mutation bugs. ApplyingdeepCopyto avoid referencing mutable context maps is a defensive practice that eliminates this risk.Proposed fix
{{- define "vm.metaLabels" -}} {{- include "vm.validate.args" . -}} {{- $Release := (.helm).Release | default .Release -}} - {{- $labels := .extraLabels | default dict -}} + {{- $labels := deepCopy (.extraLabels | default dict) -}} {{- $_ := set $labels "helm.sh/chart" (include "vm.chart" .) -}} {{- $_ := set $labels "app.kubernetes.io/managed-by" $Release.Service -}} {{- toYaml $labels -}} {{- end -}}{{- define "vm.selectorLabels" -}} - {{- $labels := .extraLabels | default dict -}} + {{- $labels := deepCopy (.extraLabels | default dict) -}} {{- $_ := set $labels "app.kubernetes.io/name" (include "vm.name" .) -}} {{- $_ := set $labels "app.kubernetes.io/instance" (include "vm.release" .) -}} {{- with (include "vm.app.name" .) -}} {{- $_ := set $labels "app" . -}}Also applies to: 198–208, 232–249
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/templates/_helpers.tpl` around lines 177 - 183, The templates vm.metaLabels and vm.selectorLabels currently assign $labels := .extraLabels then mutate it with set, which risks mutating the shared context; change those assignments to create an isolated copy first, e.g. use deepCopy on the defaulted map: set $labels to deepCopy (default dict .extraLabels) before any $_ := set calls, and apply the same pattern to the other occurrences noted (the blocks around the other set usages). This ensures you never call set directly on the original .extraLabels map and prevents future mutation bugs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/README.md`:
- Around line 3-4: Replace the non-descriptive link text "here" with meaningful,
accessible text: update the first link to read something like "Victoria Metrics
Common chart documentation" (linking to
https://docs.victoriametrics.com/helm/victoria-metrics-common/) and update the
second link to read "Victoria Metrics Common changelog" (linking to
https://docs.victoriametrics.com/helm/victoria-metrics-common/changelog/),
ensuring the README.md uses descriptive anchor text to satisfy markdownlint
MD059.
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/README.md`:
- Around line 3-4: Replace non-descriptive "here" link text with descriptive
link labels: change "Chart documentation is available [here](...)" to "Chart
documentation is available at the VictoriaMetrics Operator Helm chart docs"
(linking the same URL) and change "Changelog is [here](...)" to "Changelog for
the VictoriaMetrics Operator Helm chart" (linking the same URL); update the
README.md lines that contain those link occurrences so the link text describes
the target rather than using "here".
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/webhook.yaml`:
- Around line 17-28: The annotations block currently emits cert-manager keys and
then separately renders $certManager.annotations and $webhooks.annotations which
can produce duplicate keys; change the template to merge the maps into a single
annotations map (e.g., using the existing mustMerge helper pattern used in
monitor.yaml) so certmanager.k8s.io/inject-ca-from and
cert-manager.io/inject-ca-from are included in a base map and then mustMerge
with $certManager.annotations and $webhooks.annotations, then render that single
merged map with toYaml | nindent 4 to avoid duplicate YAML keys.
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/values.yaml`:
- Around line 279-284: The PDB defaults currently set both minAvailable: 0 and
maxUnavailable: 0 which Helm treats as falsy so neither renders; update values
so only one PDB field is set and the other is empty (for example set
maxUnavailable to 0 and set minAvailable to an empty string/omitted) or
alternatively change templates/pdb.yaml to explicitly render numeric zero values
(handle "0" or use explicit equality checks) so that either minAvailable or
maxUnavailable is present; reference the minAvailable, maxUnavailable and
unhealthyPodEvictionPolicy entries in values.yaml and the templates/pdb.yaml
rendering logic when making this change.
---
Nitpick comments:
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/templates/_helpers.tpl`:
- Around line 177-183: The templates vm.metaLabels and vm.selectorLabels
currently assign $labels := .extraLabels then mutate it with set, which risks
mutating the shared context; change those assignments to create an isolated copy
first, e.g. use deepCopy on the defaulted map: set $labels to deepCopy (default
dict .extraLabels) before any $_ := set calls, and apply the same pattern to the
other occurrences noted (the blocks around the other set usages). This ensures
you never call set directly on the original .extraLabels map and prevents future
mutation bugs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: df790bfb-9ee8-41ee-b4dd-74e838b87e7d
⛔ Files ignored due to path filters (2)
packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/Chart.lockis excluded by!**/*.lockpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/crds/files/crd.yaml.bz2is excluded by!**/*.bz2
📒 Files selected for processing (16)
packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/Chart.yamlpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/README.mdpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/RELEASE_NOTESpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/crds/crds/crd.yamlpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/Chart.yamlpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/README.mdpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/RELEASE_NOTESpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/templates/_helpers.tplpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/templates/_image.tplpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/templates/_pod.tplpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/templates/_service.tplpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/NOTES.txtpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/pdb.yamlpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/server.yamlpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/webhook.yamlpackages/system/victoria-metrics-operator/charts/victoria-metrics-operator/values.yaml
| Chart documentation is available [here](https://docs.victoriametrics.com/helm/victoria-metrics-common/). | ||
| Changelog is [here](https://docs.victoriametrics.com/helm/victoria-metrics-common/changelog/). |
There was a problem hiding this comment.
Use descriptive link text.
here is non-descriptive and matches the markdownlint MD059 warning.
Proposed docs wording
-Chart documentation is available [here](https://docs.victoriametrics.com/helm/victoria-metrics-common/).
-Changelog is [here](https://docs.victoriametrics.com/helm/victoria-metrics-common/changelog/).
+See the [VictoriaMetrics Common Helm chart documentation](https://docs.victoriametrics.com/helm/victoria-metrics-common/).
+See the [VictoriaMetrics Common Helm chart changelog](https://docs.victoriametrics.com/helm/victoria-metrics-common/changelog/).🧰 Tools
🪛 markdownlint-cli2 (0.22.0)
[warning] 3-3: Link text should be descriptive
(MD059, descriptive-link-text)
[warning] 4-4: Link text should be descriptive
(MD059, descriptive-link-text)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/charts/victoria-metrics-common/README.md`
around lines 3 - 4, Replace the non-descriptive link text "here" with
meaningful, accessible text: update the first link to read something like
"Victoria Metrics Common chart documentation" (linking to
https://docs.victoriametrics.com/helm/victoria-metrics-common/) and update the
second link to read "Victoria Metrics Common changelog" (linking to
https://docs.victoriametrics.com/helm/victoria-metrics-common/changelog/),
ensuring the README.md uses descriptive anchor text to satisfy markdownlint
MD059.
| Chart documentation is available [here](https://docs.victoriametrics.com/helm/victoria-metrics-operator/). | ||
| Changelog is [here](https://docs.victoriametrics.com/helm/victoria-metrics-operator/changelog/). |
There was a problem hiding this comment.
Use descriptive link text.
Avoid here so the README remains clear in rendered docs and link-only navigation.
Proposed docs wording
-Chart documentation is available [here](https://docs.victoriametrics.com/helm/victoria-metrics-operator/).
-Changelog is [here](https://docs.victoriametrics.com/helm/victoria-metrics-operator/changelog/).
+See the [VictoriaMetrics Operator Helm chart documentation](https://docs.victoriametrics.com/helm/victoria-metrics-operator/).
+See the [VictoriaMetrics Operator Helm chart changelog](https://docs.victoriametrics.com/helm/victoria-metrics-operator/changelog/).📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Chart documentation is available [here](https://docs.victoriametrics.com/helm/victoria-metrics-operator/). | |
| Changelog is [here](https://docs.victoriametrics.com/helm/victoria-metrics-operator/changelog/). | |
| See the [VictoriaMetrics Operator Helm chart documentation](https://docs.victoriametrics.com/helm/victoria-metrics-operator/). | |
| See the [VictoriaMetrics Operator Helm chart changelog](https://docs.victoriametrics.com/helm/victoria-metrics-operator/changelog/). |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/README.md`
around lines 3 - 4, Replace non-descriptive "here" link text with descriptive
link labels: change "Chart documentation is available [here](...)" to "Chart
documentation is available at the VictoriaMetrics Operator Helm chart docs"
(linking the same URL) and change "Changelog is [here](...)" to "Changelog for
the VictoriaMetrics Operator Helm chart" (linking the same URL); update the
README.md lines that contain those link occurrences so the link text describes
the target rather than using "here".
| {{- if or $certManager.enabled $webhooks.annotations }} | ||
| annotations: | ||
| {{- if $certManager.enabled }} | ||
| certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-validation" $ns $fullname | quote }} | ||
| cert-manager.io/inject-ca-from: {{ printf "%s/%s-validation" $ns $fullname | quote }} | ||
| {{- end }} | ||
| {{- with $certManager.annotations }} | ||
| {{- toYaml . | nindent 4 }} | ||
| {{- end }} | ||
| {{- with $webhooks.annotations }} | ||
| {{- toYaml . | nindent 4 }} | ||
| {{- end }} |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C3 'certmanager\.k8s\.io/inject-ca-from|cert-manager\.io/inject-ca-from|\$certManager\.annotations|\$webhooks\.annotations' \
packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/webhook.yamlRepository: cozystack/cozystack
Length of output: 684
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Check the full webhook.yaml file to understand context and confirm no other issues
cat -n packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/webhook.yamlRepository: cozystack/cozystack
Length of output: 5580
🏁 Script executed:
#!/bin/bash
set -euo pipefail
# Search for mergeOverwrite or similar annotation merging patterns in the entire chart
rg -n 'mergeOverwrite|merge|annotations' \
packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/ \
--type yaml -A 2 -B 2Repository: cozystack/cozystack
Length of output: 14707
Merge annotations before rendering to avoid duplicate YAML keys.
The annotations block renders three separate sources sequentially: hardcoded cert-manager keys (lines 20–21), $certManager.annotations, and $webhooks.annotations. If either user-provided annotation source contains a key matching the cert-manager keys, that key will appear multiple times in the same YAML map. While YAML parsers handle this by using the last occurrence, this is error-prone and violates the principle of explicit configuration.
Merge all annotation sources into a single map before rendering, following the pattern already used elsewhere in the chart (e.g., monitor.yaml line 3 with mustMerge):
🛠️ Proposed fix
- {{- if or $certManager.enabled $webhooks.annotations }}
- annotations:
- {{- if $certManager.enabled }}
- certmanager.k8s.io/inject-ca-from: {{ printf "%s/%s-validation" $ns $fullname | quote }}
- cert-manager.io/inject-ca-from: {{ printf "%s/%s-validation" $ns $fullname | quote }}
- {{- end }}
- {{- with $certManager.annotations }}
- {{- toYaml . | nindent 4 }}
- {{- end }}
- {{- with $webhooks.annotations }}
- {{- toYaml . | nindent 4 }}
- {{- end }}
+ {{- $mergedAnnotations := dict }}
+ {{- if $certManager.enabled }}
+ {{- $_ := set $mergedAnnotations "certmanager.k8s.io/inject-ca-from" (printf "%s/%s-validation" $ns $fullname) }}
+ {{- $_ := set $mergedAnnotations "cert-manager.io/inject-ca-from" (printf "%s/%s-validation" $ns $fullname) }}
+ {{- end }}
+ {{- $mergedAnnotations = mergeOverwrite $mergedAnnotations ($certManager.annotations | default dict) ($webhooks.annotations | default dict) }}
+ {{- if or $certManager.enabled $webhooks.annotations }}
+ annotations: {{ toYaml $mergedAnnotations | nindent 4 }}
+ {{- end }}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/webhook.yaml`
around lines 17 - 28, The annotations block currently emits cert-manager keys
and then separately renders $certManager.annotations and $webhooks.annotations
which can produce duplicate keys; change the template to merge the maps into a
single annotations map (e.g., using the existing mustMerge helper pattern used
in monitor.yaml) so certmanager.k8s.io/inject-ca-from and
cert-manager.io/inject-ca-from are included in a base map and then mustMerge
with $certManager.annotations and $webhooks.annotations, then render that single
merged map with toYaml | nindent 4 to avoid duplicate YAML keys.
| # -- min number or percentage of pods that can be unavailable | ||
| minAvailable: 0 | ||
| # -- max number or percentage of pods that can be unavailable | ||
| maxUnavailable: 0 | ||
| # -- Defines criteria when unhealthy pods should be considered for eviction | ||
| unhealthyPodEvictionPolicy: |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
rg -n -C4 'podDisruptionBudget:|minAvailable: 0|maxUnavailable: 0|with \$pdb\.(minAvailable|maxUnavailable)' \
packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/values.yaml \
packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/templates/pdb.yamlRepository: cozystack/cozystack
Length of output: 3401
🌐 Web query:
Helm Go template "with" numeric zero falsy behavior
💡 Result:
Yes, in Helm (Go templates), the "with" action treats a numeric zero value (0, 0.0) as falsy/empty, causing it to skip the block entirely, just like "if". This follows Go template semantics where pipelines in control structures like "if" and "with" evaluate to false/empty for: boolean false, numeric zero, empty string, nil, or empty collections. Official Helm docs confirm this for "if": "A pipeline is evaluated as false if the value is: a boolean false, a numeric zero, an empty string, a nil (empty or null), [or] an empty collection." Helm docs explicitly state for "with": "the block after with only executes if the value of PIPELINE is not empty." Go template docs confirm: "{{with pipeline}} ... {{end}}" behaves like "if" - skips if pipeline is empty (includes numeric zero). This causes common issues in Helm charts, e.g., setting replicaCount: 0 in values.yaml skips rendering the replicas field (treated as falsy in {{- if .Values.replicaCount }}), defaulting to 1. Workarounds use hasKey, kindIs "float64", or ne 0.
Citations:
- 1: https://helm.sh/docs/chart_template_guide/control_structures
- 2: https://helm.sh/docs/chart_template_guide/control_structures/
- 3: https://github.com/golang/go/blob/master/src/text/template/doc.go
- 4: https://pkg.go.dev/text/[email protected]
- 5: Wrong interpretation of Zero in templates files when having a default value helm/helm#3164
- 6: [Grafana] Unable to set the replicas to 0 grafana/helm-charts#3337
- 7: [grafana] Enhance Deployment Template Flexibility for Zero Replicas grafana/helm-charts#2866
- 8: Can't set
replicaCountto 0 itzg/minecraft-server-charts#195 - 9: [stable/redis] zero slaveCount is ignored helm/charts#17142
🌐 Web query:
Kubernetes PodDisruptionBudget API spec minAvailable maxUnavailable required
💡 Result:
In the Kubernetes PodDisruptionBudget (PDB) API (policy/v1), the spec fields minAvailable and maxUnavailable are optional and mutually exclusive. Exactly one of them must be specified to define the disruption budget, but neither is strictly required if the other is provided. The selector field is required. Status fields like currentHealthy, desiredHealthy, disruptionsAllowed, and expectedPods are required.
Citations:
- 1: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1
- 2: http://k8s.io/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1/
- 3: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
- 4: https://kubespec.dev/kubernetes/policy/v1/PodDisruptionBudget
- 5: https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/pod-disruption-budget-v1/
Fix the PDB defaults to render a valid Kubernetes spec.
The current defaults set both minAvailable: 0 and maxUnavailable: 0. Helm's with blocks treat numeric 0 as falsy, so neither field renders when PDB is enabled. Kubernetes PodDisruptionBudget requires at least one of these fields to be specified.
Set one field to a valid value and leave the other empty:
Proposed fix
# -- min number or percentage of pods that can be unavailable
- minAvailable: 0
+ minAvailable:
# -- max number or percentage of pods that can be unavailable
- maxUnavailable: 0
+ maxUnavailable: 1Alternatively, update templates/pdb.yaml to render explicit zero values and ensure only one of the fields is set.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # -- min number or percentage of pods that can be unavailable | |
| minAvailable: 0 | |
| # -- max number or percentage of pods that can be unavailable | |
| maxUnavailable: 0 | |
| # -- Defines criteria when unhealthy pods should be considered for eviction | |
| unhealthyPodEvictionPolicy: | |
| # -- min number or percentage of pods that can be unavailable | |
| minAvailable: | |
| # -- max number or percentage of pods that can be unavailable | |
| maxUnavailable: 1 | |
| # -- Defines criteria when unhealthy pods should be considered for eviction | |
| unhealthyPodEvictionPolicy: |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@packages/system/victoria-metrics-operator/charts/victoria-metrics-operator/values.yaml`
around lines 279 - 284, The PDB defaults currently set both minAvailable: 0 and
maxUnavailable: 0 which Helm treats as falsy so neither renders; update values
so only one PDB field is set and the other is empty (for example set
maxUnavailable to 0 and set minAvailable to an empty string/omitted) or
alternatively change templates/pdb.yaml to explicitly render numeric zero values
(handle "0" or use explicit equality checks) so that either minAvailable or
maxUnavailable is present; reference the minAvailable, maxUnavailable and
unhealthyPodEvictionPolicy entries in values.yaml and the templates/pdb.yaml
rendering logic when making this change.
## What this PR does Follow-up to #2675. Fixes four broken references in `docs/changelogs/v1.4.0.md` that were caught by re-verifying every link in the merged changelog: | Where | Was | Now | |---|---|---| | Resource Presets doc link (Feature Highlights) | `cozystack.io/docs/operations/resource-presets/` (404) | `cozystack.io/docs/v1.4/guides/resource-management/` | | HAMi doc link (Feature Highlights) | `cozystack.io/docs/operations/kubernetes/hami/` (404) | `cozystack.io/docs/v1.4/kubernetes/gpu-sharing/` | | Upgrade notes — resource presets PR ref | `#2426` (`feat(monitoring): upgrade victoria-metrics-operator`) | `#2607` (`feat(apps): instance-type resource presets`) | | Upgrade notes — postgres parameters PR ref | `#2475` (unrelated open issue about bundle YAML) | `#2466` (`feat(postgres)!: support all PostgreSQL configuration parameters`) | The Feature Highlights / Major Features sections already cited #2607 and #2466 correctly; only the Upgrade Notes section pointed at the wrong PR numbers. ### Release note ```release-note NONE ``` <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated changelog documentation links to reflect new resource management guides location. * Refreshed HAMi compatibility references to point to current GPU-sharing documentation. * Updated related PR references in upgrade notes for accuracy. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/cozystack/cozystack/pull/2693?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
- Resource Presets doc URL: /docs/operations/resource-presets/ → /docs/v1.4/guides/resource-management/ (was 404) - HAMi doc URL: /docs/operations/kubernetes/hami/ → /docs/v1.4/kubernetes/gpu-sharing/ (was 404) - Upgrade-notes PR ref for presets: cozystack#2426 → cozystack#2607 - Upgrade-notes PR ref for postgres parameters: cozystack#2475 → cozystack#2466 Assisted-By: Claude <[email protected]> Signed-off-by: Myasnikov Daniil <[email protected]>
What this PR does
Upgrades the vendored
victoria-metrics-operatorHelm chart from0.59.1to0.61.0(operator appVersionv0.68.1→v0.68.4) by re-runningmake updateinpackages/system/victoria-metrics-operator/.Picks up upstream bugfixes in the
v0.68.xoperator line:VMPodScrapeport forVMAgent/VLAgent(previously misrouted, causing scrape failures)StatefulSetpod deletion (not eviction) whenmaxUnavailable=100%— matches the minimum-downtime upgrade strategyVMDistributedPVC no longer owned by both theStatefulSetand the top-level objectVLAgent/VLogs/VMAgent/VMSingleVMSingle/VMAgentno longer mount scrape config secrets (avoids RBAC errors)StatefulSetrecreation when immutable fields changeChart
0.60.0is skipped deliberately: it switched the operator Deployment's selector toapp.kubernetes.io/component, which required Deployment recreation on upgrade.0.61.0reverts that change, so jumping straight from0.59.1to0.61.0avoids the disruption.Local patch
patches/disable-ca-key-rotation.patchstill applies cleanly against the newtemplates/webhook.yaml.Release note
Summary by CodeRabbit
New Features
Bug Fixes
Documentation