.. Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. CloudStack CSI Driver ======================= CloudStack Container Storage Interface (CSI) plugin enables Kubernetes clusters running on Apache CloudStack to dynamically provision, manage, and use CloudStack storage volumes Features -------- - Automatic provisioning: Create persistent volumes on-demand from Kubernetes PVCs - No manual intervention: Eliminates need to manually create CloudStack volumes - Kubernetes-native: Uses standard Kubernetes storage classes and PVC workflows Advanced Storage Features ------------------------- - Volume snapshots: Backup and restore capabilities - Dynamic expansion: Grow volumes without downtime or data migration - Flexible reclaim policies: Choose between automatic cleanup or data retention Core Components ----------------- - CSI Controller: Manages volume lifecycle, snapshots, and CloudStack API interactions - CSI Node Driver: Handles volume mounting and unmounting on worker nodes - Storage Class Syncer: Automatically syncs CloudStack disk offerings to Kubernetes storage classes CSI integration with CKS ~~~~~~~~~~~~~~~~~~~~~~~~~~ From 4.22.0, CloudStack Kubernetes Service provides CSI integration that allows dynamic provisioning of CloudStack volumes for Kubernetes pods running on CKS clusters. To enable CSI integration, the CKS data ISOs must have the CSI manifests. Rebuilding the CKS data ISOs using the `create-kubernetes-binaries-iso.sh` script will build ISOs with CSI manifests and images. Pre-built ISOs for Kubernetes versions 1.31.1, 1.32.5 and 1.33.1 are available at https://download.cloudstack.org/cks/ |cks-csi-integration.png| Enabling CSI integration for a CKS cluster can be done by selecting the `Enable CSI Integration` checkbox in the Advanced Settings section of the Kubernetes cluster creation form. Doing so will setup the CSI components - the CSI controller and the CSI node daemonset - on the cluster during its creation. |cks-csi-pods.png| Further details about using CSI with CKS can be found at: https://github.com/cloudstack/cloudstack-csi-driver/blob/main/README.md .. |cks-csi-integration.png| image:: /_static/images/cks-csi-integration.png :alt: Integration of CSI with CKS. .. |cks-csi-pods.png| image:: /_static/images/cks-csi-pods.png :alt: CSI Pods.