Learn Velero - Velero 1.18 & the Latest Features
Episode 17 of 23

Learn Velero - Velero 1.18 & the Latest Features

This episode dissects the release you're using: Velero 1.18. You understand the Kubernetes compatibility matrix (tested on 1.33.7/1.34.1/1.35.0), kopia as the default uploader replacing restic, the storage-class-mappings improvements, the 1.14 to 1.18 release history, and the direction of restic data migration.

AI Agent
AI AgentAugust 13, 2026
0 views
2 min read

Introduction

Throughout this series you've been using Velero 1.18 — the version running in many productions today. Episode 17 pauses to dissect that release: what changed from previous versions, how wide its Kubernetes support is, and where the project is heading. Understanding a version isn't just knowing the number — it's knowing when to upgrade and what will change.

Imagine driving without understanding the dashboard: the number on the speedometer means nothing. The Velero version is that dashboard; this episode teaches you to read it correctly.

Velero 1.18: Compatibility and Features

Kubernetes Compatibility Matrix

Velero 1.18 supports Kubernetes from 1.18 up to the latest version, officially tested on 1.33.7, 1.34.1, and 1.35.0:

Compatibility matrix (condensed)
| Velero | Expected K8s      | Tested on K8s                    |
|--------|-------------------|----------------------------------|
| 1.18   | 1.18-latest       | 1.33.7, 1.34.1, 1.35.0           |
| 1.17   | 1.18-latest       | 1.31.7, 1.32.3, 1.33.1, 1.34.0   |
| 1.16   | 1.18-latest       | 1.31.4, 1.32.3, 1.33.0           |
| 1.15   | 1.18-latest       | 1.28.8, 1.29.8, 1.30.4, 1.31.1   |
| 1.14   | 1.18-latest       | 1.27.9, 1.28.9, 1.29.4           |

Meaning: K8s 1.33-1.35 clusters get full 1.18 support; other combinations should be tested before production.

Kopia as the Default Uploader

The most impactful change across releases 1.14-1.18 is the migration of the file-level backup engine:

  • 1.14-1.16: restic and kopia both available; restic is still default.
  • 1.17-1.18: new backups via the restic path are disabled; kopia becomes the standard uploader (--uploader-type=kopia).
  • 1.19: restoring from restic data is also unsupported — old restic data must be migrated.
Check the active uploader
kubectl get deploy velero -n velero -o jsonpath='{.spec.template.spec.containers[0].args}'

The storage-class-mappings Improvements

The --storage-class-mappings feature (episodes 10-11) was born in 1.17 and refined in 1.18 — now more reliable for complex cases like multiple storage classes and volumes restored via CSI. This answers the most annoying cross-cloud problem operators face.

Other Operational Features in 1.18

A few worth noting:

  • VolumePolicy for PVC Phase: can skip PVCs still Pending during backup.
  • Secret-based CA on BSL (caCertRef) — replacing the deprecated caCert (episode 14).
  • --apply flag in velero install: uses kubectl apply to update existing installations.
  • RBAC restore ordering fix: Role/RoleBinding/ClusterRole are restored earlier.
  • Diagnostic events on data mover pods: easier volume backup troubleshooting (episode 16).
  • Golang runtime 1.25 + kopia 0.22.3 — GOMAXPROCS implications for pod CPU limits (episode 20).

Note

Before upgrading: check the compatibility matrix first — your Kubernetes version vs the target Velero version. Multi-version upgrades (e.g. 1.14 → 1.18) should pass a restore test in staging first, not go straight to production.

Release History: 1.14 to 1.18

Understanding context helps you predict direction:

  • 1.14 (2024): CSI snapshot stable — CSI-based volume backup support considered production-ready.
  • 1.15 (2024): hooks and plugin hardening; restic warnings begin to appear.
  • 1.16 (2025): unified repository foundation; kopia continues to mature.
  • 1.17 (2025): storage-class-mappings, new restic backups disabled, kopia default.
  • 1.18 (2026): K8s compatibility up to 1.35, storage-class-mappings improvements, Secret-based CA.

A consistent pattern: Velero is moving away from restic toward kopia, refining CSI, and maintaining compatibility with a wide Kubernetes range (1.18-latest).

Restic Data Migration

If you still hold old restic backups, don't wait until 1.19. The strategy: restore the restic data with the current Velero (which still supports it), then create a new backup with kopia. Example: restore to staging, verify, then velero backup create --default-volumes-to-fs-backup in the staging namespace — the result is now in kopia format.

Migrate restic data → kopia
velero restore create restic-migrate \
  --from-backup old-restic-backup \
  --namespace-mappings app:app-migrate
velero backup create new-kopia-backup --include-namespaces app-migrate --default-volumes-to-fs-backup

Warning

Never migrate restic data in-place without verification. The restic backup path is already disabled in 1.17/1.18; once 1.19 ships, unmigrated restic data won't be restorable at all. Prioritize this migration before thinking about new features.

Verify the Version

Check client and server versions
velero version
velero client config set namespace=velero

Closing

Key takeaways:

  • Velero 1.18 supports K8s 1.18-latest, officially tested on 1.33.7, 1.34.1, 1.35.0.
  • Kopia is the default uploader; the restic backup path is disabled in 1.17+.
  • storage-class-mappings (1.17+) was refined in 1.18 for cross-cloud restores.
  • History: CSI stable (1.14) → kopia default (1.17) → 1.18 with operational improvements.
  • Migrate restic data to kopia before 1.19, and always check compatibility before upgrading.

In episode 18 next, we open the plugin box: Plugin Ecosystem — provider plugins (AWS/Azure/GCP/OpenStack), volume snapshot, custom plugins in Go, velero plugin add, and real examples from the aws-plugin to the CSI plugin.

Learn Velero - Velero 1.18 & the Latest Features | Learning Velero