Skip to content

chore(velero): bump velero to 12.0.3 - #2974

Merged
Aleksei Sviridkin (lexfrei) merged 2 commits into
mainfrom
chore/bump-velero-12.0.3
Jun 23, 2026
Merged

chore(velero): bump velero to 12.0.3#2974
Aleksei Sviridkin (lexfrei) merged 2 commits into
mainfrom
chore/bump-velero-12.0.3

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

What this PR does

Bumps velero from 11.0.0 to 12.0.3 (appVersion 1.17.0 → 1.18.1, latest upstream), picking up the published security fixes the issue enumerates across the velero server and its backup plugins.

  • Re-vendors the chart via make update (now pinned to --version 12.0.3 for reproducible re-vendoring). The 12.0 major bump's values-schema changes are backward-compatible (two required fields relaxed, one optional key added), so all cozystack overrides (upgradeCRDs, initContainers, configuration.*, deployNodeAgent) stay valid.
  • Moves the backup-plugin initContainers to their velero-1.18-aligned releases: velero-plugin-for-aws v1.12.1 → v1.14.1 (the release that bumps to velero 1.18.1; also corrects a pre-existing plugin/server skew) and kubevirt-velero-plugin v0.8.0 → v0.9.0.
  • Adds helm-unittest coverage (the package shipped none): pins the server + plugin image tags and the upgradeCRDs: false → no upgrade-crds Job invariant, which has silently regressed before.

The 1.18 "PVC selected-node" deprecation needs no action (velero handles it transparently); CRD changes are additive.

Verified: helm template renders all three images; helm unittest 3/3 pass (mutation-checked).

Upgrade note: Helm v3 does not update CRDs on helm upgrade (upgradeCRDs is disabled). On existing clusters the 1.18 CRDs must be applied manually (kubectl apply --filename packages/system/velero/charts/velero/crds/).

Closes #2886

Release note

chore(velero): bump velero to 12.0.3 (app 1.18.1) and backup plugins to velero-1.18-compatible releases

Summary by CodeRabbit

  • New Features
    • Added Backup status queue tracking (queuePosition) plus new phase states.
    • Added caCertRef Secret reference for BackupStorageLocation (with caCert marked deprecated).
    • Added incremental-bytes reporting (DataUpload, PodVolumeBackup) and snapshotSize for PodVolumeRestore.
    • Added backupSyncPeriod configuration and nodeAgent.disableHostPath option.
  • Upgrades
    • Updated Velero to app 1.18.1 / chart 12.0.3, including plugin image tag bumps and updated kubectl image defaults.
    • Added chart/app version labels across key resources.
  • Operational Improvements
    • Improved CRD cleanup/upgrade job execution and tuned the “VeleroNoNewBackup” alert.
  • Tests
    • Added a test target (runs helm unittest) and expanded chart rendering invariants checks.

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: e8eafe33-9ff2-4faf-9281-3bce4b8684db

📥 Commits

Reviewing files that changed from the base of the PR and between 6da7e91 and 992076d.

📒 Files selected for processing (2)
  • packages/system/velero/tests/velero_test.yaml
  • packages/system/velero/values.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/system/velero/tests/velero_test.yaml
  • packages/system/velero/values.yaml

📝 Walkthrough

Walkthrough

Upgrades the Velero Helm chart from version 11.0.0/appVersion 1.17.0 to 12.0.3/appVersion 1.18.1. The change adds CRD schema fields (queuePosition, phase enums, caCertRef, incremental bytes), refactors cleanup-crds and upgrade-crds job templates, introduces backupSyncPeriod and nodeAgent.disableHostPath configuration options, updates observability templates with conditional rendering, bumps all container images, and adds a helm unittest test suite.

Changes

Velero v1.18.1 upgrade

Layer / File(s) Summary
Chart version pin and Makefile test target
packages/system/velero/Makefile, packages/system/velero/charts/velero/Chart.yaml
Makefile adds a test target running helm unittest . and pins helm pull tanzu/velero --version 12.0.3; Chart.yaml bumps appVersion to 1.18.1 and version to 12.0.3.
CRD schema field and enum additions
packages/system/velero/charts/velero/crds/backups.yaml, packages/system/velero/charts/velero/crds/backupstoragelocations.yaml, packages/system/velero/charts/velero/crds/datauploads.yaml, packages/system/velero/charts/velero/crds/podvolumebackups.yaml, packages/system/velero/charts/velero/crds/podvolumerestores.yaml
Adds Backup.status.queuePosition (integer), extends Backup.status.phase enum with Queued and ReadyToStart, introduces BackupStorageLocation.spec.objectStorage.caCertRef (Secret reference marking caCert deprecated), adds DataUpload.status.incrementalBytes and PodVolumeBackup.status.incrementalBytes int64 fields with printer columns, and PodVolumeRestore.spec.snapshotSize (int64).
CRD OpenAPI description text rewrapping
packages/system/velero/charts/velero/crds/*.yaml
Bulk formatting updates to field descriptions across all CRD manifests; no schema structure, field types, or validation constraints changed.
cleanup-crds and upgrade-crds job template refactors
packages/system/velero/charts/velero/templates/cleanup-crds.yaml, packages/system/velero/charts/velero/templates/upgrade-crds/upgrade-crds.yaml
cleanup-crds replaces monolithic cleanup with a per-resource initContainers loop running kubectl delete <resource> --all for non-CRDs; main container restricted to label-selected CRD deletion. upgrade-crds removes kubectl init container and emptyDir volume, replaces shell-based upgrade with velero install --crds-only --apply; volumeMounts and volumes become conditional.
backupSyncPeriod, disableHostPath, and KubernetesVersion helper
packages/system/velero/charts/velero/values.schema.json, packages/system/velero/charts/velero/values.yaml, packages/system/velero/charts/velero/ci/test-values.yaml, packages/system/velero/charts/velero/templates/backupstoragelocation.yaml, packages/system/velero/charts/velero/templates/node-agent-daemonset.yaml, packages/system/velero/charts/velero/templates/_helpers.tpl, packages/system/velero/charts/velero/templates/label-namespace/labelnamespace.yaml
Wires backupSyncPeriod through schema, values, test-values, and BackupStorageLocation template with conditional rendering. Introduces nodeAgent.disableHostPath to guard host-pods/host-plugins volumes and volumeMounts. Updates chart.KubernetesVersion helper to extract full semantic version. Refactors label-namespace Job to direct /bin/kubectl label command.
PodMonitor, ServiceMonitor, PrometheusRule, and version labels
packages/system/velero/charts/velero/templates/podmonitor.yaml, packages/system/velero/charts/velero/templates/servicemonitor.yaml, packages/system/velero/charts/velero/templates/prometheusrule.yaml, packages/system/velero/charts/velero/templates/configmaps.yaml, packages/system/velero/charts/velero/templates/schedule.yaml, packages/system/velero/charts/velero/templates/service.yaml, packages/system/velero/charts/velero/templates/node-agent-daemonset.yaml, packages/system/velero/charts/velero/templates/volumesnapshotlocation.yaml
PodMonitor and ServiceMonitor endpoints refactored to with-block conditional rendering for interval, scrapeTimeout, scheme, metricRelabelings, relabelings, and tlsConfig. PrometheusRule gains chart labels and VeleroNoNewBackup alert updated with new PromQL expression and reduced for duration. app.kubernetes.io/version label added to multiple templates.
Container image bumps and values updates
packages/system/velero/charts/velero/values.yaml, packages/system/velero/values.yaml, packages/system/velero/charts/velero/values.schema.json
Velero core bumped to docker.io/velero/velero:v1.18.1; velero-plugin-for-aws to v1.13.1 and v1.14.1; kubevirt-velero-plugin to v0.9.0. kubectl image changed from alpine/k8s to registry.k8s.io/kubectl. Removes scrapeInterval/scrapeTimeout from metrics required properties. Updates comments and documentation.
Helm unittest chart invariants
packages/system/velero/tests/velero_test.yaml
Adds test suite asserting pinned images for Velero container and initContainers (AWS and KubeVirt plugins), and verifying upgrade-crds template emits zero documents when upgradeCRDs is disabled.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

size:M

Suggested reviewers

  • lllamnyp
  • klinch0
  • kvaps

Poem

🐇 Hop, hop—a new backup queue!
Queued and ReadyToStart are shiny and new,
caCertRef replaces the old way,
incremental bytes reported today.
The upgrade job sheds its init shell call—
velero install --crds-only does it all,
v1.18.1 ships with a joyful bound! 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore(velero): bump velero to 12.0.3' clearly summarizes the main change—upgrading the Velero chart from 11.0.0 to 12.0.3, which is the primary objective of this PR.
Linked Issues check ✅ Passed The PR fully satisfies issue #2886 by bumping the Velero package to the latest upstream release (12.0.3), addressing all documented security vulnerabilities and including verification tests.
Out of Scope Changes check ✅ Passed All changes are within scope: Velero chart upgrade (CRDs, templates, values), plugin version updates, helm-unittest coverage, and supporting documentation adjustments directly support the bump objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-velero-12.0.3

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added area/storage Issues or PRs related to storage (linstor, seaweedfs, bucket, velero, harbor) kind/cleanup Categorizes issue or PR as related to cleanup of code, process, or technical debt size/M This PR changes 30-99 lines, ignoring generated files labels Jun 22, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the Velero package to the latest upstream version to incorporate critical security fixes and maintain compatibility with newer plugin releases. It also formalizes the testing process for the chart to prevent future regressions in deployment configuration.

Highlights

  • Velero Version Upgrade: Upgraded the Velero chart to version 12.0.3, which includes an update to appVersion 1.18.1.
  • Plugin Updates: Updated backup-plugin initContainers to versions compatible with Velero 1.18.1: velero-plugin-for-aws to v1.14.1 and kubevirt-velero-plugin to v0.9.0.
  • Testing Infrastructure: Added helm-unittest coverage to verify chart rendering invariants, including image pinning and the exclusion of the upgrade-crds Job.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: **/charts/** (30)
    • packages/system/velero/charts/velero/Chart.yaml
    • packages/system/velero/charts/velero/ci/test-values.yaml
    • packages/system/velero/charts/velero/crds/backuprepositories.yaml
    • packages/system/velero/charts/velero/crds/backups.yaml
    • packages/system/velero/charts/velero/crds/backupstoragelocations.yaml
    • packages/system/velero/charts/velero/crds/datadownloads.yaml
    • packages/system/velero/charts/velero/crds/datauploads.yaml
    • packages/system/velero/charts/velero/crds/deletebackuprequests.yaml
    • packages/system/velero/charts/velero/crds/downloadrequests.yaml
    • packages/system/velero/charts/velero/crds/podvolumebackups.yaml
    • packages/system/velero/charts/velero/crds/podvolumerestores.yaml
    • packages/system/velero/charts/velero/crds/restores.yaml
    • packages/system/velero/charts/velero/crds/schedules.yaml
    • packages/system/velero/charts/velero/crds/serverstatusrequests.yaml
    • packages/system/velero/charts/velero/crds/volumesnapshotlocations.yaml
    • packages/system/velero/charts/velero/templates/_helpers.tpl
    • packages/system/velero/charts/velero/templates/backupstoragelocation.yaml
    • packages/system/velero/charts/velero/templates/cleanup-crds.yaml
    • packages/system/velero/charts/velero/templates/configmaps.yaml
    • packages/system/velero/charts/velero/templates/label-namespace/labelnamespace.yaml
    • packages/system/velero/charts/velero/templates/node-agent-daemonset.yaml
    • packages/system/velero/charts/velero/templates/podmonitor.yaml
    • packages/system/velero/charts/velero/templates/prometheusrule.yaml
    • packages/system/velero/charts/velero/templates/schedule.yaml
    • packages/system/velero/charts/velero/templates/service.yaml
    • packages/system/velero/charts/velero/templates/servicemonitor.yaml
    • packages/system/velero/charts/velero/templates/upgrade-crds/upgrade-crds.yaml
    • packages/system/velero/charts/velero/templates/volumesnapshotlocation.yaml
    • packages/system/velero/charts/velero/values.schema.json
    • packages/system/velero/charts/velero/values.yaml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment Gemini (@gemini-code-assist) Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on Gemini (@gemini-code-assist) comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request adds a new test target to the Velero package Makefile and pins the upstream Velero Helm chart version to 12.0.3. It also updates the backup-plugin initContainer images in values.yaml to newer compatible versions and introduces a new Helm unit test suite to verify key rendering invariants, such as image pinning and the exclusion of the upgrade-crds Job. There are no review comments, and the changes look solid, so I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
packages/system/velero/tests/velero_test.yaml (1)

6-37: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick win

Add regression assertions for the new value knobs introduced in this PR.

The suite currently pins images and upgradeCRDs: false, but it does not lock behavior for configuration.backupStorageLocation[].backupSyncPeriod or nodeAgent.disableHostPath. Adding one assertion per knob would prevent silent regressions in the exact areas this upgrade introduces.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/system/velero/tests/velero_test.yaml` around lines 6 - 37, Add
regression test assertions for the two new configuration knobs introduced in
this PR. Create or extend test cases in the velero_test.yaml file to add equal
assertions that pin the expected values for
configuration.backupStorageLocation[].backupSyncPeriod and
nodeAgent.disableHostPath, similar to the existing pattern used in the "renders
the velero server Deployment on the pinned upstream image" and "pins the
backup-plugin initContainers to velero-1.18-compatible releases" test cases.
Each assertion should specify the path to the configuration option and its
expected value to prevent silent regressions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@packages/system/velero/charts/velero/templates/label-namespace/labelnamespace.yaml`:
- Around line 31-37: The kubectl label command in the args list of the
labelnamespace.yaml template is missing the --overwrite flag, which causes the
hook to fail on subsequent runs when labels already exist on the namespace. Add
the --overwrite flag as an argument in the args list immediately after the label
argument and before the namespace argument to make the label operation
idempotent and upgrade-safe.

---

Nitpick comments:
In `@packages/system/velero/tests/velero_test.yaml`:
- Around line 6-37: Add regression test assertions for the two new configuration
knobs introduced in this PR. Create or extend test cases in the velero_test.yaml
file to add equal assertions that pin the expected values for
configuration.backupStorageLocation[].backupSyncPeriod and
nodeAgent.disableHostPath, similar to the existing pattern used in the "renders
the velero server Deployment on the pinned upstream image" and "pins the
backup-plugin initContainers to velero-1.18-compatible releases" test cases.
Each assertion should specify the path to the configuration option and its
expected value to prevent silent regressions.
🪄 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: 9efce91e-1431-44fd-8bdd-085ab38b55b1

📥 Commits

Reviewing files that changed from the base of the PR and between 77d42ab and 676709d.

📒 Files selected for processing (33)
  • packages/system/velero/Makefile
  • packages/system/velero/charts/velero/Chart.yaml
  • packages/system/velero/charts/velero/ci/test-values.yaml
  • packages/system/velero/charts/velero/crds/backuprepositories.yaml
  • packages/system/velero/charts/velero/crds/backups.yaml
  • packages/system/velero/charts/velero/crds/backupstoragelocations.yaml
  • packages/system/velero/charts/velero/crds/datadownloads.yaml
  • packages/system/velero/charts/velero/crds/datauploads.yaml
  • packages/system/velero/charts/velero/crds/deletebackuprequests.yaml
  • packages/system/velero/charts/velero/crds/downloadrequests.yaml
  • packages/system/velero/charts/velero/crds/podvolumebackups.yaml
  • packages/system/velero/charts/velero/crds/podvolumerestores.yaml
  • packages/system/velero/charts/velero/crds/restores.yaml
  • packages/system/velero/charts/velero/crds/schedules.yaml
  • packages/system/velero/charts/velero/crds/serverstatusrequests.yaml
  • packages/system/velero/charts/velero/crds/volumesnapshotlocations.yaml
  • packages/system/velero/charts/velero/templates/_helpers.tpl
  • packages/system/velero/charts/velero/templates/backupstoragelocation.yaml
  • packages/system/velero/charts/velero/templates/cleanup-crds.yaml
  • packages/system/velero/charts/velero/templates/configmaps.yaml
  • packages/system/velero/charts/velero/templates/label-namespace/labelnamespace.yaml
  • packages/system/velero/charts/velero/templates/node-agent-daemonset.yaml
  • packages/system/velero/charts/velero/templates/podmonitor.yaml
  • packages/system/velero/charts/velero/templates/prometheusrule.yaml
  • packages/system/velero/charts/velero/templates/schedule.yaml
  • packages/system/velero/charts/velero/templates/service.yaml
  • packages/system/velero/charts/velero/templates/servicemonitor.yaml
  • packages/system/velero/charts/velero/templates/upgrade-crds/upgrade-crds.yaml
  • packages/system/velero/charts/velero/templates/volumesnapshotlocation.yaml
  • packages/system/velero/charts/velero/values.schema.json
  • packages/system/velero/charts/velero/values.yaml
  • packages/system/velero/tests/velero_test.yaml
  • packages/system/velero/values.yaml

Re-vendors the velero chart from 11.0.0 to 12.0.3 (app 1.17.0 -> 1.18.1) and
moves the backup-plugin initContainers to the matching releases:
velero-plugin-for-aws v1.12.1 -> v1.14.1 (the release that bumps to velero
1.18.1) and kubevirt-velero-plugin v0.8.0 -> v0.9.0. The chart-major bump's
values-schema changes are backward-compatible (two required fields relaxed,
one optional key added), so all cozystack overrides (upgradeCRDs,
initContainers, configuration.{features,defaultItemOperationTimeout},
deployNodeAgent) stay valid. The 1.18 "PVC selected-node" deprecation needs no
action (velero handles it transparently); the CRD changes are additive.

Adds helm-unittest coverage (the package shipped none): pins the server and
plugin image tags and the upgradeCRDs=false -> no upgrade-crds Job invariant,
which has silently regressed before. Pins the update target's helm pull to an
explicit chart version so re-vendoring is reproducible.

Note: Helm v3 does not update CRDs on `helm upgrade` (upgradeCRDs is disabled);
the 1.18 CRDs must be applied manually on existing clusters.

Adaptations:
- charts/: re-vendored via make update (helm pull velero --version 12.0.3)
- values.yaml: plugin images to velero-1.18-compatible releases
- Makefile: pin update target to --version 12.0.3; add test target
- tests/velero_test.yaml: new helm-unittest coverage

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
The comment justified upgradeCRDs: false by a kubectl-image-compatibility
problem in the upgrade-crds Job. That rationale is obsolete in velero 12.x:
the Job now runs the velero image natively, not a kubectl image. The real,
current reason the Job stays disabled is that CRDs ship via the chart's
crds/ directory, making the Job redundant. Correct both the values.yaml
override comment and the helm-unittest comment to match.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>

@myasnikovdaniil myasnikovdaniil 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.

LGTM. Verified end-to-end.

Versions / re-vendoring — all claims check out: chart 12.0.3, appVersion/server 1.18.1, AWS plugin v1.14.1, kubevirt plugin v0.9.0. The vendored charts/velero/ tree is byte-for-byte identical to upstream tanzu/velero 12.0.3 (diff -rq clean) — no local patches; all cozystack overrides correctly live in the package values.yaml. Pinning --version 12.0.3 in the Makefile is a nice reproducibility win.

CRD migration safety — additive only. Confirmed across all 14 CRD diffs: no field removals, no new required fields, no enum values dropped (the backups phase enum gains Queued/ReadyToStart), no validation tightening. Removed lines are all reflowed description: text. New optional fields: caCertRef on BSL (with caCert deprecated-but-retained), queuePosition, and several int64 status fields. No standalone CSI plugin referenced — correctly relies on CSI-in-core (merged 1.14) with features: EnableCSI; the running server registers the built-in csi-* plugins.

Tests — the new helm unittest suite pins meaningful invariants (server + both plugin image tags, and the upgradeCRDs: false → no upgrade-crds Job regression guard). Mutation-checked locally: flipping the AWS plugin tag and flipping upgradeCRDs both correctly fail the suite. 3/3 pass.

dev10 verification — deployed the bumped chart into an isolated namespace: server v1.18.1 1/1, both plugin init-containers exit 0, node-agent 3/3 ready, EnableCSI active. All 1.18 CRDs apply cleanly against the live API server (server-dry-run, --force-conflicts) with no schema conflict against the existing BSL object. Did not exercise a real backup/restore — dev10's BSL is independently Unavailable (stale S3 key), unrelated to this PR.

One informational note on the upgrade path (left inline). Approving.

# the Job is redundant. (The old kubectl-image-compatibility rationale is
# obsolete in velero 12.x — the Job now runs the velero image natively, not a
# kubectl one — but it stays disabled because cozystack manages CRDs via crds/.)
upgradeCRDs: false

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.

Confirmed accurate and worth keeping. On dev10 the velero HelmRelease sets no explicit spec.upgrade.crds policy, so helm-controller's default applies (Skip on upgrade) — combined with upgradeCRDs: false, the new additive 1.18 CRD fields (caCertRef, queuePosition, the Queued/ReadyToStart phase enum values) will NOT auto-apply on existing clusters. The 1.18.1 server runs fine against the old 1.17 CRDs since every addition is optional, so this is not a regression — but the documented manual kubectl apply -f .../crds/ step is the correct operational guidance for operators who want to use the new fields (e.g. caCertRef). No change requested; flagging for release-note visibility.

@lexfrei
Aleksei Sviridkin (lexfrei) merged commit 713fcdc into main Jun 23, 2026
15 of 16 checks passed
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the chore/bump-velero-12.0.3 branch June 23, 2026 10:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/storage Issues or PRs related to storage (linstor, seaweedfs, bucket, velero, harbor) kind/cleanup Categorizes issue or PR as related to cleanup of code, process, or technical debt size/M This PR changes 30-99 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore(velero): bump system/velero images to current upstream release

2 participants