From 04f8b28899cbeeaa1a02dfbec978c14c5de801e0 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Wed, 22 Oct 2025 13:50:56 +0200 Subject: [PATCH 01/16] feat(k8s): update sfs --- .../how-to/use-sfs-with-kubernetes.mdx | 261 ++++++++++++++++++ 1 file changed, 261 insertions(+) create mode 100644 pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx new file mode 100644 index 0000000000..3569de8f8f --- /dev/null +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -0,0 +1,261 @@ +--- +title: How to use SFS with Kubernetes Kapsule +description: This page explains how to use the Scaleway File Storage Container Storage Interface (CSI) driver to enable Kubernetes users to manage Scaleway File Storage volumes within their clusters. +tags: kubernetes kubernetes-kapsule kapsule sfs +dates: + validation: 2025-01-13 + posted: 2023-12-27 +categories: + - containers + - kubernetes +--- +import Requirements from '@macros/iam/requirements.mdx' + +The Scaleway File Storage Container Storage Interface (CSI) driver enables Kubernetes users to manage Scaleway File Storage volumes within their clusters. +The Scaleway File Storage CSI driver is designed to work with Kubernetes Kapsule and Kosmos clusters, providing a standardized interface to create, manage, and attach file storage volumes to your containerized workloads. For more details on Scaleway File Storage, refer to the [Scaleway File Storage documentation](https://www.scaleway.com/en/file-storage/). + +## Supported features + +The Scaleway File Storage CSI driver supports the following features: + +- Dynamic provisioning: Automatically create Scaleway File Storage volumes using PVCs and StorageClasses. +- `ReadWriteMany` access mode: Allows multiple pods to read from and write to the same file storage volume simultaneously. +- Import of existing Volumes: Integrate pre-existing Scaleway File Storage volumes into Kubernetes. +- Custom storage classes: Define specific parameters, such as file system type (e.g., ext4), for volumes. + + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization +- [Created](/kubernetes/how-to/create-cluster/) a Kubernetes Kapsule cluster +- Helm installed for deploying the CSI driver. +- Access to the Scaleway File Storage API. + +## Installation + +The Scaleway File Storage CSI driver can be installed using Helm. Follow these steps to deploy the driver in your Kubernetes Kapsule cluster: + +1. Add the Scaleway Helm repository: + ```bash + helm repo add scaleway https://helm.scw.cloud/ + helm repo update + ``` + +2. Deploy the Scaleway File Storage CSI Driver. Use the Helm chart to install the driver, configuring it with your Scaleway credentials and default zone: + ```bash + helm upgrade --install scaleway-filestorage-csi --namespace kube-system scaleway/scaleway-filestorage-csi \ + --set controller.scaleway.env.SCW_DEFAULT_ZONE=fr-par-1 \ + --set controller.scaleway.env.SCW_DEFAULT_PROJECT_ID= \ + --set controller.scaleway.env.SCW_ACCESS_KEY= \ + --set controller.scaleway.env.SCW_SECRET_KEY= + ``` + + Replace ``, ``, and `` with your Scaleway credentials. + +3. Check that the CSI driver pods are running in the `kube-system` namespace: + ```bash + kubectl get pods -n kube-system -l app=scaleway-filestorage-csi + ``` + + You should see the `scaleway-filestorage-csi-controller` and `scaleway-filestorage-csi-node` pods in a `Running` state. + +## Using the Scaleway File Storage CSI Driver + +The Scaleway File Storage CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Persistent Volume Claims (PVCs) in Kubernetes. Below are examples of how to use the driver to create and manage file storage volumes. + +### Creating a Persistent Volume Claim (PVC) + +This example demonstrates how to create a PVC to dynamically provision a Scaleway File Storage volume and use it in a pod. + +1. **Create a PVC**: + Create a file named `pvc.yaml` with the following content: + + ```yaml + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: my-file-pvc + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi + storageClassName: scaleway-file-default + ``` + + Apply the PVC: + ```bash + kubectl apply -f pvc.yaml + ``` + +2. Create a file named `pod.yaml` to define a pod that uses the PVC: + + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: my-file-app + spec: + containers: + - name: busybox + image: busybox + command: ["sleep", "3600"] + volumeMounts: + - mountPath: "/data" + name: file-volume + volumes: + - name: file-volume + persistentVolumeClaim: + claimName: my-file-pvc + ``` + + Apply the pod configuration: + ```bash + kubectl apply -f pod.yaml + ``` + +3. Check that the pod is running and the volume is mounted: + ```bash + kubectl get pods + kubectl exec -it my-file-app -- df -h /data + ``` + + The output should show the mounted Scaleway File Storage volume at `/data`. + +### Importing an existing File Storage volume + +You can import an existing Scaleway File Storage volume into Kubernetes using the Scaleway File Storage CSI driver. This is useful for integrating pre-existing storage volumes into your cluster. + +1. Create a file named `pv-import.yaml` to define a PV that references an existing Scaleway File Storage volume: + + ```yaml + apiVersion: v1 + kind: PersistentVolume + metadata: + name: my-imported-pv + spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + storageClassName: scaleway-file-default + csi: + driver: filestorage.csi.scaleway.com + volumeHandle: fr-par-1/ + volumeAttributes: + zone: fr-par-1 + ``` + + Replace `` with the ID of the existing Scaleway File Storage volume. + + Apply the PV: + ```bash + kubectl apply -f pv-import.yaml + ``` + +2. Create a file named `pvc-import.yaml` to define a PVC that binds to the imported PV: + + ```yaml + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: my-imported-pvc + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi + storageClassName: scaleway-file-default + volumeName: my-imported-pv + ``` + + Apply the PVC: + ```bash + kubectl apply -f pvc-import.yaml + ``` + +3. Create a pod that uses the imported PVC, similar to the previous example: + + ```yaml + apiVersion: v1 + kind: Pod + metadata: + name: my-imported-file-app + spec: + containers: + - name: busybox + image: busybox + command: ["sleep", "3600"] + volumeMounts: + - mountPath: "/data" + name: file-volume + volumes: + - name: file-volume + persistentVolumeClaim: + claimName: my-imported-pvc + ``` + + Apply the pod configuration: + ```bash + kubectl apply -f pod.yaml + ``` + +4. Verify that the pod is running and the imported volume is mounted: + ```bash + kubectl get pods + kubectl exec -it my-imported-file-app -- ls /data + ``` + + The output should list the contents of the imported Scaleway File Storage volume. + +### Using a custom storage class + +You can customize the storage class to define specific parameters for Scaleway File Storage volumes, such as the file system type. + +1. Create a file named `storageclass.yaml` with the following content: + + ```yaml + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: my-file-storage-class + provisioner: filestorage.csi.scaleway.com + reclaimPolicy: Delete + parameters: + csi.storage.k8s.io/fstype: ext4 + ``` + + Apply the storage class: + ```bash + kubectl apply -f storageclass.yaml + ``` + +2. Modify the PVC from the first example to use the custom storage class: + + ```yaml + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: my-custom-file-pvc + spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi + storageClassName: my-file-storage-class + ``` + + Apply the PVC: + ```bash + kubectl apply -f pvc.yaml + ``` + +3. Check that the PVC is created with the custom storage class: + ```bash + kubectl get pvc + kubectl describe pvc my-custom-file-pvc + ``` \ No newline at end of file From 8e6c98e0f0933301441fed980ad9cda507e71470 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Wed, 22 Oct 2025 13:51:08 +0200 Subject: [PATCH 02/16] feat(k8s): update sfs --- pages/kubernetes/menu.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pages/kubernetes/menu.ts b/pages/kubernetes/menu.ts index 583d7b7c01..3f78eaf718 100644 --- a/pages/kubernetes/menu.ts +++ b/pages/kubernetes/menu.ts @@ -101,6 +101,10 @@ export const kubernetesMenu = { label: 'Recover ETCD database space for a cluster', slug: 'recover-space-etcd', }, + { + "label": "How to use SFS with Kubernetes Kapsule", + "slug": "use-sfs-with-kubernetes" + }, { label: 'Enable or disable SSH', slug: 'enable-disable-ssh', From 19e6b9b56631843848f34489f7141872807204bb Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Fri, 18 Jul 2025 09:52:01 +0200 Subject: [PATCH 03/16] feat(k8s): sfs --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 3569de8f8f..e78e96529d 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -67,8 +67,7 @@ The Scaleway File Storage CSI driver supports dynamic provisioning of Persistent This example demonstrates how to create a PVC to dynamically provision a Scaleway File Storage volume and use it in a pod. -1. **Create a PVC**: - Create a file named `pvc.yaml` with the following content: +1. Create a file named `pvc.yaml` with the following content: ```yaml apiVersion: v1 From 4c7c9b20f56a3a1f7abddbc78b12436fd1b0b5b5 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Fri, 18 Jul 2025 10:40:17 +0200 Subject: [PATCH 04/16] feat(k8s): use sfs --- .../how-to/use-sfs-with-kubernetes.mdx | 187 ++++++++++-------- 1 file changed, 101 insertions(+), 86 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index e78e96529d..4b4c94318a 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -3,15 +3,15 @@ title: How to use SFS with Kubernetes Kapsule description: This page explains how to use the Scaleway File Storage Container Storage Interface (CSI) driver to enable Kubernetes users to manage Scaleway File Storage volumes within their clusters. tags: kubernetes kubernetes-kapsule kapsule sfs dates: - validation: 2025-01-13 - posted: 2023-12-27 + validation: 2025-07-18 + posted: 2025-07-18 categories: - containers - kubernetes --- import Requirements from '@macros/iam/requirements.mdx' -The Scaleway File Storage Container Storage Interface (CSI) driver enables Kubernetes users to manage Scaleway File Storage volumes within their clusters. +The Scaleway File Storage Container Storage Interface (CSI) driver enables Kubernetes users to manage Scaleway File Storage volumes within their clusters. The Scaleway File Storage CSI driver is designed to work with Kubernetes Kapsule and Kosmos clusters, providing a standardized interface to create, manage, and attach file storage volumes to your containerized workloads. For more details on Scaleway File Storage, refer to the [Scaleway File Storage documentation](https://www.scaleway.com/en/file-storage/). ## Supported features @@ -28,8 +28,8 @@ The Scaleway File Storage CSI driver supports the following features: - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - [Created](/kubernetes/how-to/create-cluster/) a Kubernetes Kapsule cluster -- Helm installed for deploying the CSI driver. -- Access to the Scaleway File Storage API. +- Helm installed for deploying the CSI driver +- Access to the Scaleway File Storage API ## Installation @@ -39,9 +39,10 @@ The Scaleway File Storage CSI driver can be installed using Helm. Follow these s ```bash helm repo add scaleway https://helm.scw.cloud/ helm repo update - ``` + ``` + +2. Deploy the Scaleway File Storage CSI Driver: -2. Deploy the Scaleway File Storage CSI Driver. Use the Helm chart to install the driver, configuring it with your Scaleway credentials and default zone: ```bash helm upgrade --install scaleway-filestorage-csi --namespace kube-system scaleway/scaleway-filestorage-csi \ --set controller.scaleway.env.SCW_DEFAULT_ZONE=fr-par-1 \ @@ -52,7 +53,8 @@ The Scaleway File Storage CSI driver can be installed using Helm. Follow these s Replace ``, ``, and `` with your Scaleway credentials. -3. Check that the CSI driver pods are running in the `kube-system` namespace: +3. Check that the CSI driver pods are running: + ```bash kubectl get pods -n kube-system -l app=scaleway-filestorage-csi ``` @@ -61,100 +63,105 @@ The Scaleway File Storage CSI driver can be installed using Helm. Follow these s ## Using the Scaleway File Storage CSI Driver -The Scaleway File Storage CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Persistent Volume Claims (PVCs) in Kubernetes. Below are examples of how to use the driver to create and manage file storage volumes. +The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Persistent Volume Claims (PVCs). ### Creating a Persistent Volume Claim (PVC) -This example demonstrates how to create a PVC to dynamically provision a Scaleway File Storage volume and use it in a pod. - -1. Create a file named `pvc.yaml` with the following content: +1. Create a file named `pvc.yaml`: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: my-file-pvc + name: my-pvc spec: accessModes: - ReadWriteMany resources: requests: - storage: 10Gi - storageClassName: scaleway-file-default + storage: 100Gi + storageClassName: scw-fs ``` - Apply the PVC: + Apply it: + ```bash kubectl apply -f pvc.yaml ``` -2. Create a file named `pod.yaml` to define a pod that uses the PVC: +2. Create a file named `pod.yaml`: ```yaml apiVersion: v1 kind: Pod metadata: - name: my-file-app + name: my-app spec: containers: - - name: busybox - image: busybox - command: ["sleep", "3600"] - volumeMounts: - - mountPath: "/data" - name: file-volume + - name: my-busybox + image: busybox + volumeMounts: + - name: my-volume + mountPath: "/data" + command: ["/bin/sh", "-c"] + args: ["tail -f /dev/null"] volumes: - - name: file-volume - persistentVolumeClaim: - claimName: my-file-pvc + - name: my-volume + persistentVolumeClaim: + claimName: my-pvc ``` Apply the pod configuration: + ```bash kubectl apply -f pod.yaml ``` -3. Check that the pod is running and the volume is mounted: +3. Verify the mount: + ```bash kubectl get pods - kubectl exec -it my-file-app -- df -h /data + kubectl exec -it my-app -- df -h /data ``` - The output should show the mounted Scaleway File Storage volume at `/data`. - ### Importing an existing File Storage volume -You can import an existing Scaleway File Storage volume into Kubernetes using the Scaleway File Storage CSI driver. This is useful for integrating pre-existing storage volumes into your cluster. - -1. Create a file named `pv-import.yaml` to define a PV that references an existing Scaleway File Storage volume: +1. Create a `pv-import.yaml` file: ```yaml apiVersion: v1 kind: PersistentVolume metadata: - name: my-imported-pv + name: test-pv spec: capacity: - storage: 10Gi + storage: 100Gi + volumeMode: Filesystem accessModes: - ReadWriteMany - persistentVolumeReclaimPolicy: Retain - storageClassName: scaleway-file-default + storageClassName: scw-fs csi: driver: filestorage.csi.scaleway.com - volumeHandle: fr-par-1/ - volumeAttributes: - zone: fr-par-1 + volumeHandle: fr-par/11111111-1111-1111-111111111111 + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: topology.filestorage.csi.scaleway.com/region + operator: In + values: + - fr-par ``` - Replace `` with the ID of the existing Scaleway File Storage volume. + Replace `volumeHandle` with the actual ID of your existing volume. + + Apply: - Apply the PV: ```bash kubectl apply -f pv-import.yaml ``` -2. Create a file named `pvc-import.yaml` to define a PVC that binds to the imported PV: +2. Create `pvc-import.yaml`: ```yaml apiVersion: v1 @@ -166,95 +173,103 @@ You can import an existing Scaleway File Storage volume into Kubernetes using th - ReadWriteMany resources: requests: - storage: 10Gi - storageClassName: scaleway-file-default - volumeName: my-imported-pv + storage: 100Gi + storageClassName: scw-fs + volumeName: test-pv ``` - Apply the PVC: + Apply: + ```bash kubectl apply -f pvc-import.yaml ``` -3. Create a pod that uses the imported PVC, similar to the previous example: +3. Create the pod (reuse the example from earlier with `claimName: my-imported-pvc`): ```yaml apiVersion: v1 kind: Pod metadata: - name: my-imported-file-app + name: my-imported-app spec: containers: - - name: busybox - image: busybox - command: ["sleep", "3600"] - volumeMounts: - - mountPath: "/data" - name: file-volume + - name: my-busybox + image: busybox + volumeMounts: + - name: my-volume + mountPath: "/data" + command: ["/bin/sh", "-c"] + args: ["tail -f /dev/null"] volumes: - - name: file-volume - persistentVolumeClaim: - claimName: my-imported-pvc + - name: my-volume + persistentVolumeClaim: + claimName: my-imported-pvc ``` - Apply the pod configuration: + Apply: + ```bash kubectl apply -f pod.yaml ``` -4. Verify that the pod is running and the imported volume is mounted: +4. Verify: + ```bash kubectl get pods - kubectl exec -it my-imported-file-app -- ls /data + kubectl exec -it my-imported-app -- ls /data ``` - The output should list the contents of the imported Scaleway File Storage volume. - ### Using a custom storage class -You can customize the storage class to define specific parameters for Scaleway File Storage volumes, such as the file system type. - -1. Create a file named `storageclass.yaml` with the following content: +1. Create `storageclass.yaml`: ```yaml - kind: StorageClass apiVersion: storage.k8s.io/v1 + kind: StorageClass metadata: - name: my-file-storage-class + name: my-default-storage-class + annotations: + storageclass.kubernetes.io/is-default-class: "true" provisioner: filestorage.csi.scaleway.com reclaimPolicy: Delete - parameters: - csi.storage.k8s.io/fstype: ext4 ``` - Apply the storage class: + Apply: + ```bash kubectl apply -f storageclass.yaml ``` -2. Modify the PVC from the first example to use the custom storage class: +2. Update the PVC to use this storage class: ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: - name: my-custom-file-pvc + name: my-pvc spec: accessModes: - ReadWriteMany resources: requests: - storage: 10Gi - storageClassName: my-file-storage-class - ``` - - Apply the PVC: - ```bash - kubectl apply -f pvc.yaml + storage: 100Gi + storageClassName: my-default-storage-class ``` -3. Check that the PVC is created with the custom storage class: - ```bash - kubectl get pvc - kubectl describe pvc my-custom-file-pvc - ``` \ No newline at end of file +### Specifying the region + +To specify a region explicitly for volume creation: + +```yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: my-ams-storage-class +provisioner: filestorage.csi.scaleway.com +reclaimPolicy: Delete +allowedTopologies: + - matchLabelExpressions: + - key: topology.filestorage.csi.scaleway.com/region + values: + - nl-ams +``` \ No newline at end of file From 3ea6b60db4dbc3b21708b58238ef00cee4c93d50 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Fri, 18 Jul 2025 10:55:03 +0200 Subject: [PATCH 05/16] feat(k8s): sfs --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 4b4c94318a..e148ed1ba0 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -79,7 +79,7 @@ The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Per - ReadWriteMany resources: requests: - storage: 100Gi + storage: 100G storageClassName: scw-fs ``` @@ -135,7 +135,7 @@ The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Per name: test-pv spec: capacity: - storage: 100Gi + storage: 100G volumeMode: Filesystem accessModes: - ReadWriteMany @@ -173,7 +173,7 @@ The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Per - ReadWriteMany resources: requests: - storage: 100Gi + storage: 100G storageClassName: scw-fs volumeName: test-pv ``` @@ -252,7 +252,7 @@ The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Per - ReadWriteMany resources: requests: - storage: 100Gi + storage: 100G storageClassName: my-default-storage-class ``` From d61965e7eac40b84499a2fa81896d6f8db390605 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Fri, 18 Jul 2025 12:23:16 +0200 Subject: [PATCH 06/16] feat(k8s): update content --- .../how-to/use-sfs-with-kubernetes.mdx | 37 +++++++------------ 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index e148ed1ba0..61eaa7950f 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -19,47 +19,34 @@ The Scaleway File Storage CSI driver is designed to work with Kubernetes Kapsule The Scaleway File Storage CSI driver supports the following features: - Dynamic provisioning: Automatically create Scaleway File Storage volumes using PVCs and StorageClasses. -- `ReadWriteMany` access mode: Allows multiple pods to read from and write to the same file storage volume simultaneously. - Import of existing Volumes: Integrate pre-existing Scaleway File Storage volumes into Kubernetes. -- Custom storage classes: Define specific parameters, such as file system type (e.g., ext4), for volumes. +- Volume upsizing: The size of the volume can be [increased](https://github.com/scaleway/scaleway-filestorage-csi/tree/main?tab=readme-ov-file#file-systems-resizing) without the need to detach the File System +- `ReadWriteOnce` access mode: The volume can be mounted as read-write by a single node. +- `ReadOnlyMany` access mode: The volume can be mounted read-only by many nodes. +- `ReadWriteMany` access mode: The volume can be mounted as read-write by many nodes. - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - [Created](/kubernetes/how-to/create-cluster/) a Kubernetes Kapsule cluster -- Helm installed for deploying the CSI driver - Access to the Scaleway File Storage API ## Installation -The Scaleway File Storage CSI driver can be installed using Helm. Follow these steps to deploy the driver in your Kubernetes Kapsule cluster: +The Scaleway File Storage CSI driver is preinstalled on Scaleway's managed Kubernetes. -1. Add the Scaleway Helm repository: - ```bash - helm repo add scaleway https://helm.scw.cloud/ - helm repo update - ``` + + During the private beta this feature is only available for users invited into the beta. + -2. Deploy the Scaleway File Storage CSI Driver: - - ```bash - helm upgrade --install scaleway-filestorage-csi --namespace kube-system scaleway/scaleway-filestorage-csi \ - --set controller.scaleway.env.SCW_DEFAULT_ZONE=fr-par-1 \ - --set controller.scaleway.env.SCW_DEFAULT_PROJECT_ID= \ - --set controller.scaleway.env.SCW_ACCESS_KEY= \ - --set controller.scaleway.env.SCW_SECRET_KEY= - ``` - - Replace ``, ``, and `` with your Scaleway credentials. - -3. Check that the CSI driver pods are running: +You can run the following command to check that the CSI driver pods are running: ```bash kubectl get pods -n kube-system -l app=scaleway-filestorage-csi ``` - You should see the `scaleway-filestorage-csi-controller` and `scaleway-filestorage-csi-node` pods in a `Running` state. +You should see the `scaleway-filestorage-csi-controller` and `scaleway-filestorage-csi-node` pods in a `Running` state. ## Using the Scaleway File Storage CSI Driver @@ -83,6 +70,10 @@ The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Per storageClassName: scw-fs ``` + + The minimum size for a File System is 100G. + + Apply it: ```bash From 37478362d6d8a74a7210b438af1bc7fd9c39eb58 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Tue, 22 Jul 2025 10:13:51 +0200 Subject: [PATCH 07/16] Update pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 61eaa7950f..2416ab8fc8 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -11,7 +11,7 @@ categories: --- import Requirements from '@macros/iam/requirements.mdx' -The Scaleway File Storage Container Storage Interface (CSI) driver enables Kubernetes users to manage Scaleway File Storage volumes within their clusters. +The Scaleway File Storage Container Storage Interface (CSI) driver enables Kubernetes users to manage Scaleway File Storage file systems within their clusters. The Scaleway File Storage CSI driver is designed to work with Kubernetes Kapsule and Kosmos clusters, providing a standardized interface to create, manage, and attach file storage volumes to your containerized workloads. For more details on Scaleway File Storage, refer to the [Scaleway File Storage documentation](https://www.scaleway.com/en/file-storage/). ## Supported features From 6c5f91ef32db7508956e4105ea4580382a4f22f8 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Wed, 23 Jul 2025 10:22:11 +0200 Subject: [PATCH 08/16] Apply suggestions from code review Co-authored-by: Rowena Jones <36301604+RoRoJ@users.noreply.github.com> --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 2416ab8fc8..b4f3fb9cdc 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -20,7 +20,7 @@ The Scaleway File Storage CSI driver supports the following features: - Dynamic provisioning: Automatically create Scaleway File Storage volumes using PVCs and StorageClasses. - Import of existing Volumes: Integrate pre-existing Scaleway File Storage volumes into Kubernetes. -- Volume upsizing: The size of the volume can be [increased](https://github.com/scaleway/scaleway-filestorage-csi/tree/main?tab=readme-ov-file#file-systems-resizing) without the need to detach the File System +- Volume upsizing: The size of the volume can be [increased](https://github.com/scaleway/scaleway-filestorage-csi/tree/main?tab=readme-ov-file#file-systems-resizing) without the need to detach the file system - `ReadWriteOnce` access mode: The volume can be mounted as read-write by a single node. - `ReadOnlyMany` access mode: The volume can be mounted read-only by many nodes. - `ReadWriteMany` access mode: The volume can be mounted as read-write by many nodes. @@ -37,7 +37,7 @@ The Scaleway File Storage CSI driver supports the following features: The Scaleway File Storage CSI driver is preinstalled on Scaleway's managed Kubernetes. - During the private beta this feature is only available for users invited into the beta. + This feature is currently in [Private Beta](https://www.scaleway.com/en/betas/), and available to selected testers only. You can run the following command to check that the CSI driver pods are running: From d3d78c498931bd9775a216a0c2b844ae35b98313 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Tue, 14 Oct 2025 08:41:35 +0200 Subject: [PATCH 09/16] Apply suggestions from code review --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index b4f3fb9cdc..82a9d89ffe 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -12,7 +12,7 @@ categories: import Requirements from '@macros/iam/requirements.mdx' The Scaleway File Storage Container Storage Interface (CSI) driver enables Kubernetes users to manage Scaleway File Storage file systems within their clusters. -The Scaleway File Storage CSI driver is designed to work with Kubernetes Kapsule and Kosmos clusters, providing a standardized interface to create, manage, and attach file storage volumes to your containerized workloads. For more details on Scaleway File Storage, refer to the [Scaleway File Storage documentation](https://www.scaleway.com/en/file-storage/). +The Scaleway File Storage CSI driver is designed to work with Kubernetes Kapsule and Kosmos clusters, providing a standardized interface to create, manage, and attach file storage volumes to your containerized workloads. For more details on Scaleway File Storage, refer to the [Scaleway File Storage documentation](https://www.scaleway.com/en/docs/file-storage/). ## Supported features @@ -30,6 +30,7 @@ The Scaleway File Storage CSI driver supports the following features: - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - [Created](/kubernetes/how-to/create-cluster/) a Kubernetes Kapsule cluster +- Added the tag `scw-filestorage-csi` to your Kubernetes Kapsule cluster - Access to the Scaleway File Storage API ## Installation @@ -262,5 +263,5 @@ allowedTopologies: - matchLabelExpressions: - key: topology.filestorage.csi.scaleway.com/region values: - - nl-ams + - fr-par ``` \ No newline at end of file From eaaf9c09826bbd81425fee0046913a0c6ec22150 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Wed, 22 Oct 2025 13:54:42 +0200 Subject: [PATCH 10/16] feat(k8s): update sfs --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 82a9d89ffe..43aa0bafdf 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -3,8 +3,8 @@ title: How to use SFS with Kubernetes Kapsule description: This page explains how to use the Scaleway File Storage Container Storage Interface (CSI) driver to enable Kubernetes users to manage Scaleway File Storage volumes within their clusters. tags: kubernetes kubernetes-kapsule kapsule sfs dates: - validation: 2025-07-18 - posted: 2025-07-18 + validation: 2025-10-22 + posted: 2025-10-22 categories: - containers - kubernetes From 5f29e823dbc0ac75f577d0ab57bd20c240f2d5e2 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Wed, 22 Oct 2025 17:36:10 +0200 Subject: [PATCH 11/16] Apply suggestions from code review Co-authored-by: Tomy Guichard --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 43aa0bafdf..95ee0322fe 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -44,10 +44,11 @@ The Scaleway File Storage CSI driver is preinstalled on Scaleway's managed Kuber You can run the following command to check that the CSI driver pods are running: ```bash - kubectl get pods -n kube-system -l app=scaleway-filestorage-csi + kubectl get pods -n kube-system -l app=filestorage-csi-node ``` -You should see the `scaleway-filestorage-csi-controller` and `scaleway-filestorage-csi-node` pods in a `Running` state. +You should see the `filestorage-csi-node` pods in a `Running` state. +If you don't see any pod after running the previous command, make sure the `filestorage-csi-node` DaemonSet is present in your cluster (`$ kubectl get daemonset -n kube-system filestorage-csi-node`) and you have at least one pool with POP2 Instances. ## Using the Scaleway File Storage CSI Driver @@ -256,7 +257,7 @@ To specify a region explicitly for volume creation: apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: - name: my-ams-storage-class + name: my-par-storage-class provisioner: filestorage.csi.scaleway.com reclaimPolicy: Delete allowedTopologies: From 92e0cb10348e79e025c8fd1e92c1deba3f0a854c Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Wed, 22 Oct 2025 17:36:41 +0200 Subject: [PATCH 12/16] Update pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx Co-authored-by: Tomy Guichard --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 2 -- 1 file changed, 2 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 95ee0322fe..0451ebe069 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -221,8 +221,6 @@ The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Per kind: StorageClass metadata: name: my-default-storage-class - annotations: - storageclass.kubernetes.io/is-default-class: "true" provisioner: filestorage.csi.scaleway.com reclaimPolicy: Delete ``` From 65d3bd3c5820db09cdce8675a12e8de11362d69b Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Fri, 24 Oct 2025 16:15:29 +0200 Subject: [PATCH 13/16] docs(k8s): update content --- .../how-to/use-sfs-with-kubernetes.mdx | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 0451ebe069..7d480641af 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -25,18 +25,27 @@ The Scaleway File Storage CSI driver supports the following features: - `ReadOnlyMany` access mode: The volume can be mounted read-only by many nodes. - `ReadWriteMany` access mode: The volume can be mounted as read-write by many nodes. + + Ensure you have created your Kapsule cluster with the tag `scw-filestorage-csi` (or added it to an existing cluster) to have the File Storage CSI driver enabled on your cluster. + + - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - [Created](/kubernetes/how-to/create-cluster/) a Kubernetes Kapsule cluster +- Installed the Kubernetes command-line tool `kubectl` - Added the tag `scw-filestorage-csi` to your Kubernetes Kapsule cluster -- Access to the Scaleway File Storage API +- Access to the Scaleway [File Storage API](https://www.scaleway.com/en/developers/api/file-storage/) ## Installation The Scaleway File Storage CSI driver is preinstalled on Scaleway's managed Kubernetes. + + Download the cluster's **kubeconfig** configuration file and make sure `kubectl` is configured to use the cluster's configuration before running any of the following commands. [Learn more.](/kubernetes/how-to/connect-cluster-kubectl/) + + This feature is currently in [Private Beta](https://www.scaleway.com/en/betas/), and available to selected testers only. @@ -119,6 +128,10 @@ The CSI driver supports dynamic provisioning of Persistent Volumes (PVs) and Per ### Importing an existing File Storage volume + + To import an existing File Storage volume you must have created it using the [Scaleway console](/file-storage/how-to/create-file-system/), [CLI](https://cli.scaleway.com/file/#create-a-new-filesystem), or the [File Storage API](https://www.scaleway.com/en/developers/api/file-storage/#path-filesystem-create-a-new-filesystem) prior the attachment. + + 1. Create a `pv-import.yaml` file: ```yaml @@ -263,4 +276,8 @@ allowedTopologies: - key: topology.filestorage.csi.scaleway.com/region values: - fr-par -``` \ No newline at end of file +``` + + + For further information, refer to the [Scaleway File Storage CSI driver](https://github.com/scaleway/scaleway-filestorage-csi/tree/main) documentation. + \ No newline at end of file From ddb04c42cf669f482a295b763b5c76b1ff0c63b2 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 27 Oct 2025 14:56:26 +0100 Subject: [PATCH 14/16] Apply suggestions from code review --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 7d480641af..9d1c95a489 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -47,7 +47,7 @@ The Scaleway File Storage CSI driver is preinstalled on Scaleway's managed Kuber - This feature is currently in [Private Beta](https://www.scaleway.com/en/betas/), and available to selected testers only. + This feature is currently in [Private Beta](https://www.scaleway.com/en/betas/) and available to selected testers only. If you would like to sign up for the Private Beta to enable `ReadWriteMany`, fill out [this form](https://www.scaleway.com/en/betas/#file-storage). You can run the following command to check that the CSI driver pods are running: From f4dd6cadf61e0c2e9fcc6264608beaf13f1b4465 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 27 Oct 2025 14:57:09 +0100 Subject: [PATCH 15/16] Apply suggestions from code review --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 9d1c95a489..6838d23f41 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -47,7 +47,7 @@ The Scaleway File Storage CSI driver is preinstalled on Scaleway's managed Kuber - This feature is currently in [Private Beta](https://www.scaleway.com/en/betas/) and available to selected testers only. If you would like to sign up for the Private Beta to enable `ReadWriteMany`, fill out [this form](https://www.scaleway.com/en/betas/#file-storage). + This feature is currently in [Private Beta](https://www.scaleway.com/en/betas/#file-storage) and available to selected testers only. If you would like to sign up for the Private Beta to enable `ReadWriteMany`, fill out [this form](https://www.scaleway.com/en/betas/#file-storage). You can run the following command to check that the CSI driver pods are running: From 45acc9f6c2cc661f8ecf14669f97f2abdaf9806c Mon Sep 17 00:00:00 2001 From: Benedikt Rollik Date: Mon, 27 Oct 2025 16:12:10 +0100 Subject: [PATCH 16/16] docs(k8s): update warning --- pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx index 6838d23f41..62d172260c 100644 --- a/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx +++ b/pages/kubernetes/how-to/use-sfs-with-kubernetes.mdx @@ -26,7 +26,8 @@ The Scaleway File Storage CSI driver supports the following features: - `ReadWriteMany` access mode: The volume can be mounted as read-write by many nodes. - Ensure you have created your Kapsule cluster with the tag `scw-filestorage-csi` (or added it to an existing cluster) to have the File Storage CSI driver enabled on your cluster. + Ensure you have created your Kapsule cluster with the tag `scw-filestorage-csi` (or added it to an existing cluster) to have the File Storage CSI driver enabled on your cluster. + Keep in mind, this tag must be specified at the **cluster level** rather than at the pool level. Setting it at the pool level has no effect.