Available in:  EE

The module lifecycle stageGeneral Availability
The module has requirements for installation

The storage-volume-data-manager module enables secure HTTP-based export and import of persistent volume contents. It creates a namespaced DataExport or DataImport resource in the target namespace, which references the volume to be exported via the targetRef field. The module supports PersistentVolumeClaim, VolumeSnapshot, VirtualDisk, and VirtualDiskSnapshot resource types.

The module is built on the standard Go file server and supports both filesystem and block-level volume work modes. User authentication is handled through Kubernetes RBAC, with support for partial content downloads using HTTP Range headers.

Key Parameters

  • ttl: Time-to-live duration after the last server access (file download or directory listing). When the TTL expires, the exporter pod is automatically deleted and the PVC is released back to the original PV. The DataExport resource’s Ready condition is set to false with reason Expired.

  • publish: When set to true, enables external cluster access to the exporter pod. A public URL is generated in the PublicURL field with the format: https://data-exporter|importer.<public-domain>/<namespace>/<user-pvc-name>/.

Quick Start

Enabling the Module

To enable the module, use the following command:

d8 k apply -f - <<EOF
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: storage-volume-data-manager
spec:
  enabled: true
  version: 1
EOF

Creating DataExport and DataImport Resources

Use the d8 utility to create and manage resources.

Export:

d8 data export create -n <namespace> <data_export_name> <volume_type>/<volume_name> --ttl 5m --publish

Import:

d8 data import create -n <namespace> <data_import_name> -f <pvc-template.yaml> --ttl 60m --publish

PVC resources can only be exported when they are not currently mounted by any pods.

Example: Creating a DataExport resource for a PVC named “data” in the “project” namespace with a 5-minute TTL:

d8 data export create -n project my-export pvc/data --ttl 5m

Retrieving Resource Information

To view details about the created DataExport resource, execute the following command:

d8 k -n project get de my-export

Downloading Data

Use the following command to download files from exported volumes:

d8 data export download -n <namespace> <data_export_name> [/path/to/file] -o <file_name>

Example:

d8 data export download -n project my-export /test_file.txt -o test_file.txt --publish=true

For detailed usage examples, see USAGE. For workflows without the d8 utility (YAML manifests, curl, HTTP API), see the FAQ.