This is a fork of the OpenStack Cinder CSI driver with added encryption features for Constellation.
This driver allows a Constellation cluster to use Cinder CSI volumes, csi plugin name: cinder.csi.confidential.cloud
Create a cloud configuration:
cat <<EOF > cloud-config.yaml
apiVersion: v1
kind: Secret
metadata:
name: cinder-csi-cloud-config
namespace: kube-system
type: Opaque
stringData:
cloud.conf: |-
[Global]
auth-url=<auth-url>
username=<username>
password=<password>
project-id=<project-id>
project-name=<project-name>
user-domain-name=<user-domain>
project-domain-name=<project-domain>
region=<region>
EOF
kubectl apply -f cloud-config.yaml
Use helm
to deploy the driver to your cluster:
helm install cinder-csi cloud-provider-openstack/charts/cinder-csi-plugin --namespace kube-system
See helm configuration for a detailed list on configuration options.
Remove the driver using helm:
helm uninstall cinder-csi -n kube-system
- Please refer to Cinder CSI Features
By default the CSI driver will transparently encrypt all disks staged on the node. Optionally, you can configure the driver to also apply integrity protection.
Please note that enabling integrity protection requires wiping the disk before use. Disk wipe speeds are largely dependent on IOPS and the performance tier of the disk. If you intend to provision large amounts of storage and Pod creation speed is important, we recommend requesting high-performance disks.
To enable integrity protection, create a storage class with an explicit file system type request and add the suffix -integrity
.
The following is a storage class for integrity protected ext4
formatted disks:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: integrity-protected
provisioner: azuredisk.csi.confidential.cloud
parameters:
skuName: StandardSSD_LRS
csi.storage.k8s.io/fstype: ext4-integrity
reclaimPolicy: Delete
volumeBindingMode: Immediate
Please note that volume expansion is not supported for integrity-protected disks.
- Please refer to development guide
To build the driver container image:
driver_version=v0.0.0-test
make REGISTRY=ghcr.io/edgelesssys/constellation VERSION=${driver_version} build-local-image-cinder-csi-plugin
docker push ghcr.io/edgelesssys/constellation/cinder-csi-plugin:${driver_version}
This project is licensed under the AGPLv3. It's based on code licensed under the Apache 2.0 license.