On this page
Use persistent storage
Request an agreed StorageClass, understand PVC binding and protect data during changes.
For Enterprise Self-Hosted or a separately agreed technical evaluation. Not a Cloud customer procedure.
Before you start
You have a provided pilot cluster, a trusted kubeconfig, kubectl and access to an agreed namespace. Set KUBECONFIG, CP_CONTEXT and CP_NAMESPACE using the access guide before running the commands. The examples use a POSIX shell and a single access file. Grouped blocks stop at missing settings without closing your terminal; they do not provision infrastructure or grant permissions. Connect to your cluster →
Persistent storage must be confirmed for your pilot, including its price and class. Record the required access mode, backup needs and deletion behavior before allocating a volume. Stateful application operation is a separate decision from providing disk space.
Agree the storage contract
| Question | Why it matters |
|---|---|
| StorageClass / access mode | The class and access mode must suit the workload and placement. ReadWriteOnce does not mean one application instance or one Pod. |
| Size and growth | Confirm provisioned capacity, expansion support and cost approval. Volume shrinking is not an assumed capability. |
| Reclaim policy | Delete may remove the underlying storage after PVC deletion; Retain requires an explicit recovery/cleanup process. |
| Protection | A volume is not a backup. Confirm data-consistent backup, retention and a tested recovery path separately. |
Review a PersistentVolumeClaim
This illustrative request asks for 10Gi, which is not an included storage allowance. Replace the class with the provided value and confirm ReadWriteOnce support. Save as cloud-demo-pvc.yaml and validate in the agreed namespace. Allocating the claim may incur storage charges, so review it before applying.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: cloud-demo-data
spec:
storageClassName: REPLACE_WITH_AGREED_CLASS
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
(
: "${KUBECONFIG:?Set KUBECONFIG from your handover}"
: "${CP_CONTEXT:?Set CP_CONTEXT from your handover}"
: "${CP_NAMESPACE:?Set CP_NAMESPACE from your handover}"
case "$CP_CONTEXT:$CP_NAMESPACE" in
YOUR_*|*:YOUR_*) printf '%s\n' 'Replace the YOUR_ context and namespace placeholders first.' >&2; exit 1 ;;
esac
kubectl --kubeconfig="$KUBECONFIG" --context="$CP_CONTEXT" --namespace="$CP_NAMESPACE" apply --dry-run=server -f cloud-demo-pvc.yaml
kubectl --kubeconfig="$KUBECONFIG" --context="$CP_CONTEXT" --namespace="$CP_NAMESPACE" diff -f cloud-demo-pvc.yaml
)This claim alone does not configure a database or attach data to the stateless demo. Use a reviewed application manifest with the correct mount and controller for your stateful workload. Never mount production data into an unreviewed test image.
Interpret Pending and Bound
(
: "${KUBECONFIG:?Set KUBECONFIG from your handover}"
: "${CP_CONTEXT:?Set CP_CONTEXT from your handover}"
: "${CP_NAMESPACE:?Set CP_NAMESPACE from your handover}"
case "$CP_CONTEXT:$CP_NAMESPACE" in
YOUR_*|*:YOUR_*) printf '%s\n' 'Replace the YOUR_ context and namespace placeholders first.' >&2; exit 1 ;;
esac
kubectl --kubeconfig="$KUBECONFIG" --context="$CP_CONTEXT" --namespace="$CP_NAMESPACE" get pvc
kubectl --kubeconfig="$KUBECONFIG" --context="$CP_CONTEXT" --namespace="$CP_NAMESPACE" describe pvc cloud-demo-data
kubectl --kubeconfig="$KUBECONFIG" --context="$CP_CONTEXT" --namespace="$CP_NAMESPACE" get events --sort-by=.metadata.creationTimestamp
)Bound means the claim is linked to a volume, not that the application has passed a data test. Pending can indicate a missing class, unsupported access mode, quota/capacity trouble or deliberate delayed binding. With WaitForFirstConsumer, a compatible scheduled Pod may be needed before binding. Follow the events and ask ClusterPilot to inspect the storage layer when it is outside your role.
Change and delete with a data plan
For growth, request the target size and expected cost. Confirm whether the storage class, driver and filesystem support expansion and whether downtime is needed. For exit, verify a usable export at the destination before authorizing deletion.
Plan backups & prove recovery → Migrate workloads & plan an exit →Technical references
These Kubernetes references describe technical behavior. Your pilot agreement defines the capabilities confirmed for your cluster.
Use this guide within your agreed pilot scope. Kubernetes examples are not evidence of a generally available Cloud capability.