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.

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 supports Kubernetes from 1.18 up to the latest version, officially tested on 1.33.7, 1.34.1, and 1.35.0:
| 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.
The most impactful change across releases 1.14-1.18 is the migration of the file-level backup engine:
--uploader-type=kopia).kubectl get deploy velero -n velero -o jsonpath='{.spec.template.spec.containers[0].args}'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.
A few worth noting:
Pending during backup.caCertRef) — replacing the deprecated caCert (episode 14).--apply flag in velero install: uses kubectl apply to update existing installations.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.
Understanding context helps you predict direction:
storage-class-mappings, new restic backups disabled, kopia default.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).
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.
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-backupWarning
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.
velero version
velero client config set namespace=veleroKey takeaways:
storage-class-mappings (1.17+) was refined in 1.18 for cross-cloud restores.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.