Docs: PV migration to SSD - #155
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
Several runbook steps/wording are internally inconsistent or overly hardcoded (e.g., StatefulSet orphaning references and StorageClass values), which could lead to operators executing incorrect actions during a migration/rollback.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds an operational runbook documenting how to migrate a GKE Persistent Volume from the legacy in-tree kubernetes.io/gce-pd driver to the GKE PD CSI driver (pd.csi.storage.gke.io) by snapshotting the underlying disk, creating a new SSD-backed disk, and re-binding a PVC with the original name (plus a rollback path).
Changes:
- Introduces a step-by-step PV/PVC migration procedure (snapshot → new disk → static PV/PVC bind).
- Documents a rollback procedure using the retained original PV.
- Provides reusable placeholders for environment-specific values (namespace, PV/PVC names, project, zone, etc.).
File summaries
| File | Description |
|---|---|
| docs/gke-pv-migration-runbook.md | New runbook describing PV migration to CSI/SSD plus rollback steps |
Review details
Suppressed comments (2)
docs/gke-pv-migration-runbook.md:122
- This PVC hardcodes
storageClassName: premium-rwo. For static binding, it must match the PV’s storageClassName; use the same placeholder to avoid mismatches.
storageClassName: premium-rwo
docs/gke-pv-migration-runbook.md:201
- Rollback instructions are vague ("Edit storage type back to previous") and again say "Remove StatefulSet orphaning" while the command orphan-deletes the StatefulSet. Make the instruction explicit (update Helm values/manifests back to the original StorageClass) and fix the wording to match the command.
Edit storage type back to previous.
Remove StatefulSet orphaning to allow Helm to manage the new PVC and PV definitions cleanly.
- Files reviewed: 1/1 changed files
- Comments generated: 8
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| | Placeholder | Meaning | | ||
| | --- | --- | | ||
| | `[namespace]` | Namespace of the workload | | ||
| | `[original-pvc-name]` | Existing PVC name (reused at the end) | | ||
| | `[statefulset-name]` | Workload StatefulSet | | ||
| | `[snapshot-name]` | Name for the GCP disk snapshot | | ||
| | `[new-disk-name]` | Name for the new `pd-ssd` disk | | ||
| | `[migrated-pv-name]` | Name for the new statically bound PV | | ||
| | `[original-pv-name]` | Original PV name (value of `$PV_NAME`) | | ||
| | `[gke-project-id]` | GCP project ID | | ||
| | `[gcp-zone]` | Zone of the disk (value of `$GCP_ZONE`) | | ||
| | `[disk-size]` | Disk size, e.g. `500Gi` | |
| accessModes: | ||
| - ReadWriteOnce | ||
| persistentVolumeReclaimPolicy: Retain | ||
| storageClassName: premium-rwo |
| spec: | ||
| accessModes: | ||
| - ReadWriteOnce | ||
| storageClassName: standard # Original storage class |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
No description provided.