{"id":13983863,"url":"https://github.com/scaleway/scaleway-csi","last_synced_at":"2025-12-30T00:04:23.755Z","repository":{"id":45064293,"uuid":"249464023","full_name":"scaleway/scaleway-csi","owner":"scaleway","description":"Container Storage Interface (CSI) Driver for https://www.scaleway.com/block-storage/","archived":false,"fork":false,"pushed_at":"2025-01-16T16:46:12.000Z","size":187,"stargazers_count":57,"open_issues_count":4,"forks_count":16,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-22T15:49:54.557Z","etag":null,"topics":["container","csi","interface","k8s","kapsule","kubernetes","scaleway","storage"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scaleway.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-23T15:08:24.000Z","updated_at":"2025-02-11T22:57:19.000Z","dependencies_parsed_at":"2024-04-09T23:48:32.102Z","dependency_job_id":"e21e0f12-f71c-42fc-8d07-b0fa4dd2aae5","html_url":"https://github.com/scaleway/scaleway-csi","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/scaleway/scaleway-csi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scaleway%2Fscaleway-csi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scaleway%2Fscaleway-csi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scaleway%2Fscaleway-csi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scaleway%2Fscaleway-csi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scaleway","download_url":"https://codeload.github.com/scaleway/scaleway-csi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scaleway%2Fscaleway-csi/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266403045,"owners_count":23923403,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["container","csi","interface","k8s","kapsule","kubernetes","scaleway","storage"],"created_at":"2024-08-09T05:01:58.099Z","updated_at":"2025-12-30T00:04:23.749Z","avatar_url":"https://github.com/scaleway.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Scaleway Block Volume CSI driver\n\nThe [Scaleway Block Volume](https://www.scaleway.com/en/block-storage/)\nContainer Storage Interface (CSI) driver is an implementation of the\n[CSI interface](https://github.com/container-storage-interface/spec/blob/master/spec.md)\nto provide a way to manage Scaleway Block Volumes through a container orchestration system, like Kubernetes.\n\n## CSI Specification Compatibility Matrix\n\n| Scaleway CSI Driver \\ CSI Version | v1.2.0 | v1.6.0 | v1.8.0 |\n| --------------------------------- | ------ | ------ | ------ |\n| master branch                     | ✅      | ✅      | ✅      |\n| v0.1.x                            | ✅      | ❌      | ❌      |\n| v0.2.x                            | ✅      | ✅      | ❌      |\n| v0.3.x                            | ✅      | ✅      | ✅      |\n\n## Features\n\nHere is a list of features implemented by the Scaleway CSI driver.\n\n### Block device resizing\n\nThe Scaleway CSI driver implements the resize feature ([example for Kubernetes](https://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/)).\nIt allows an online resize (without the need to detach the block device).\nHowever resizing can only be done upwards, decreasing a volume's size is not supported.\n\n### Raw Block Volume\n\n[Raw Block Volumes](https://kubernetes.io/blog/2019/03/07/raw-block-volume-support-to-beta/)\nallows the block volume to be exposed directly to the container as a block device,\ninstead of a mounted filesystem. To enable it, the `volumeMode` needs to be set to `Block`.\nFor instance, here is a PVC in raw block volume mode:\n\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: my-raw-pvc\nspec:\n  volumeMode: Block\n  [...]\n```\n\n### At-Rest Encryption\n\nSupport for volume encryption with Cryptsetup/LUKS. [See more details in examples](./examples/kubernetes#encrypting-volumes)\n\n### Volume Snapshots\n\n[Volume Snapshots](https://kubernetes.io/docs/concepts/storage/volume-snapshots/)\nallows the user to create a snapshot of a specific block volume.\n\n### Volume Statistics\n\nThe Scaleway CSI driver implements the [`NodeGetVolumeStats`](https://github.com/container-storage-interface/spec/blob/master/spec.md#nodegetvolumestats)\nCSI method. It is used to gather statistics about the used block volumes. In Kubernetes,\n`kubelet` exposes these metrics.\n\n### Block Storage Low Latency\n\nThe Scaleway CSI driver is built upon the Block Storage Low Latency Scaleway product.\nIt currently provides volumes with up to 15,000 IOPS. By default, created volumes\nhave 5000 IOPS. To create volumes with higher IOPS, you can set the `iops` parameter\nto the requested number of IOPS in your `StorageClass`. For example:\n\n```yaml\nkind: StorageClass\napiVersion: storage.k8s.io/v1\nmetadata:\n  name: my-15k-iops-storage-class\nprovisioner: csi.scaleway.com\nreclaimPolicy: Delete\nparameters:\n  iops: \"15000\"\n```\n\n## Kubernetes\n\nThis section is Kubernetes specific. Note that Scaleway CSI driver may work for\nolder Kubernetes versions than those announced. The CSI driver allows to use\n[Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)\nin Kubernetes.\n\n### Kubernetes Version Compatibility Matrix\n\n| Scaleway CSI Driver \\ Kubernetes Version | Min K8s Version | Max K8s Version |\n| ---------------------------------------- | --------------- | --------------- |\n| master branch                            | v1.20           | -               |\n| v0.1.x                                   | v1.17           | -               |\n| v0.2.x                                   | v1.20           | -               |\n| v0.3.x                                   | v1.20           | -               |\n\n### Examples\n\nSome examples are available [here](./examples/kubernetes).\n\n### Installation\n\nThese steps will cover how to install the Scaleway CSI driver in your Kubernetes\ncluster, using Helm.\n\n\u003e [!WARNING]\n\u003e You should NOT install the Scaleway Block Volume CSI driver in a **Scaleway Kubernetes\n\u003e managed cluster (Kapsule / Kosmos)** as it is already installed and configured automatically.\n\n#### Requirements\n\n- A Kubernetes cluster running on Scaleway instances (v1.20+)\n- Scaleway Project or Organization ID, Access and Secret key\n- Helm v3\n\n#### Deployment\n\n1. Add the Scaleway Helm repository.\n\n    ```bash\n    helm repo add scaleway https://helm.scw.cloud/\n    helm repo update\n    ```\n\n2. Deploy the latest release of the `scaleway-csi` Helm chart.\n\n    ```bash\n    helm upgrade --install scaleway-csi --namespace kube-system scaleway/scaleway-csi \\\n        --set controller.scaleway.env.SCW_DEFAULT_ZONE=fr-par-1 \\\n        --set controller.scaleway.env.SCW_DEFAULT_PROJECT_ID=11111111-1111-1111-1111-111111111111 \\\n        --set controller.scaleway.env.SCW_ACCESS_KEY=ABCDEFGHIJKLMNOPQRST \\\n        --set controller.scaleway.env.SCW_SECRET_KEY=11111111-1111-1111-1111-111111111111\n    ```\n\n    Review the [configuration values](https://github.com/scaleway/helm-charts/blob/master/charts/scaleway-csi/values.yaml)\n    for the Helm chart.\n\n3. You can now verify that the driver is running:\n\n    ```bash\n    $ kubectl get pods -n kube-system\n    [...]\n    scaleway-csi-controller-76897b577d-b4dgw   8/8     Running   0          3m\n    scaleway-csi-node-hvkfw                    3/3     Running   0          3m\n    scaleway-csi-node-jmrz2                    3/3     Running   0          3m\n    [...]\n    ```\n\n    You should see the scaleway-csi-controller and the scaleway-csi-node pods.\n\n\u003e [!IMPORTANT]\n\u003e When upgrading an existing installation, you MUST upgrade CRDs before calling helm upgrade command.\n\u003e CRDs are not updated by Helm. See [HIP-0011](https://github.com/helm/community/blob/main/hips/hip-0011.md) for details.\n\u003e\n\u003e ```bash\n\u003e helm repo update\n\u003e helm show crds scaleway/scaleway-csi | kubectl apply --server-side --force-conflicts -f -\n\u003e helm upgrade --namespace kube-system --reuse-values scaleway-csi scaleway/scaleway-csi\n\u003e ```\n\n## Development\n\n### Build\n\nYou can build the Scaleway CSI driver executable using the following commands:\n\n```bash\nmake build\n```\n\nYou can build a local docker image named scaleway-csi for your current architecture\nusing the following command:\n\n```bash\nmake docker-build\n```\n\n### Test\n\nIn order to run the tests:\n\n```bash\nmake test\n```\n\nIn addition to unit tests, we provide tools to run the following tests:\n\n- [Kubernetes external storage e2e tests](./test/e2e/)\n- [CSI sanity tests](./test/sanity/)\n\n### Contribute\n\nIf you are looking for a way to contribute please read the [contributing guide](./CONTRIBUTING.md)\n\n### Code of conduct\n\nParticipation in the Kubernetes community is governed by the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).\n\n## Reach us\n\nWe love feedback. Feel free to reach us on [Scaleway Slack community](https://slack.scaleway.com),\nwe are waiting for you on #k8s.\n\nYou can also join the official Kubernetes slack on #scaleway-k8s channel\n\nYou can also [raise an issue](https://github.com/scaleway/scaleway-csi/issues/new)\nif you think you've found a bug.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscaleway%2Fscaleway-csi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscaleway%2Fscaleway-csi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscaleway%2Fscaleway-csi/lists"}