Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
57c44ea
add create and delete snapshot capability
disperate Jan 20, 2026
fdd653e
add csi-snapshotter sidecar
disperate Jan 20, 2026
ebf1153
Merge branch 'master' into julian/add-snapshot-create-delete-capability
disperate Jan 20, 2026
226e604
fix for existing snapshots on other volumes
disperate Jan 20, 2026
9177b94
Merge remote-tracking branch 'upstream/upgrade-go-1.25' into julian/a…
disperate Jan 21, 2026
a731ebe
add integraiton test covering creation and deletion of snapshot
disperate Jan 21, 2026
aa6bedb
add integration test creating a new volume from a snapshot
disperate Jan 21, 2026
eaa650c
improve error handling in CreateSnapshot if snapshot does not exist
disperate Jan 22, 2026
9bc534f
Merge branch 'master' into julian/add-snapshot-create-delete-capability
disperate Jan 22, 2026
a70fa50
improve error message formating
disperate Jan 22, 2026
bb3f558
fix error formatting
disperate Jan 22, 2026
68317ca
add integration test for luks volume
disperate Jan 22, 2026
000c1d9
add integration test for PVCs with wrong size
disperate Jan 22, 2026
576bd5a
add examples, including luks
disperate Jan 22, 2026
ec91d70
remove volume group snapshot permissions
disperate Jan 22, 2026
6180be8
add propper permission role and bindings
disperate Jan 26, 2026
1186d23
explain reason for DynamicSnapshotClient
disperate Jan 26, 2026
c3e163c
get rid of dynamicClient, use typed clientset from external-snapshotter
disperate Jan 26, 2026
73a757f
use errors.As to prevent issues with wraped errors
disperate Jan 26, 2026
d376c0b
throw InvalidArgument instead of warning for storageType missmatch
disperate Jan 27, 2026
760a5c7
improve error handling of existing snapshots and log levels
disperate Jan 27, 2026
40920be
simplify createdAt parsing
disperate Jan 27, 2026
f044acf
shorten compared error message
disperate Jan 27, 2026
567d561
replace custom CRD and snapshot controller installation with kustomize
disperate Jan 27, 2026
c8de277
ignoring storage type parameter, only add debug information
disperate Jan 29, 2026
da0b949
setup instructions for volumesnapshotclass.yaml
disperate Jan 29, 2026
9436917
remove leader-election config, as we run it on single replica
disperate Jan 29, 2026
23d371c
add documentation for luks examples
disperate Jan 29, 2026
64768a1
fail integration tests with clear error if CRDs or VolumeSnapshotClas…
disperate Jan 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,22 @@ The current version is: **`v3.6.0`**.

## Installing to Kubernetes

Follow these steps to deploy the cloudscale.ch CSI driver to your Kubernetes cluster.

### Prerequisites for Snapshot Support

To use CSI snapshots with this driver, your cluster must have the VolumeSnapshot CRDs and the snapshot controller installed.

Note: Some Kubernetes distributions already include these CRDs and controllers. You only need to apply them manually if your cluster does not provide them.

Install the snapshot resources using kustomize (recommended):
```
kubectl apply -k https://github.com/kubernetes-csi/external-snapshotter/client/config/crd?ref=v8.4.0
kubectl apply -k https://github.com/kubernetes-csi/external-snapshotter/deploy/kubernetes/snapshot-controller?ref=v8.4.0
# setup volumesnapshotclass in your cluster
kubectl apply -f examples/kubernetes/volume-snapshots/volumesnapshotclass.yaml
```

### Kubernetes Compatibility

The following table describes the required cloudscale.ch driver version per
Expand Down
43 changes: 37 additions & 6 deletions charts/csi-cloudscale/templates/rbac.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,9 @@ rules:
- apiGroups: [""]
resources: ["events"]
verbs: ["list", "watch", "create", "update", "patch"]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshots"]
verbs: [ "get", "list", "watch", "update" ]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshotcontents"]
verbs: ["get", "list"]
- apiGroups: [ "coordination.k8s.io" ]
resources: [ "leases" ]
verbs: [ "get", "list", "watch", "create", "update", "patch", "delete" ]
- apiGroups: [ "storage.k8s.io" ]
resources: [ "csinodes" ]
verbs: [ "get", "list", "watch" ]
Expand Down Expand Up @@ -52,6 +49,27 @@ rules:
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "csi-cloudscale.driver-name" . }}-snapshotter-role
rules:
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshots"]
verbs: [ "get", "list", "watch", "update" ]
- apiGroups: ["snapshot.storage.k8s.io"]
resources: ["volumesnapshotcontents"]
verbs: [ "get", "list", "watch", "update", "patch" ]
- apiGroups: [ "snapshot.storage.k8s.io" ]
resources: [ "volumesnapshotcontents/status" ]
verbs: [ "update", "patch" ]
- apiGroups: [ "snapshot.storage.k8s.io" ]
resources: [ "volumesnapshotclasses" ]
verbs: [ "get", "list", "watch" ]
- apiGroups: [""]
resources: ["events"]
verbs: ["list", "watch", "create", "update", "patch"]
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "csi-cloudscale.driver-name" . }}-resizer-role
rules:
Expand Down Expand Up @@ -99,6 +117,19 @@ roleRef:
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "csi-cloudscale.driver-name" . }}-snapshotter-binding
subjects:
- kind: ServiceAccount
name: {{ include "csi-cloudscale.controller-service-account-name" . }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: ClusterRole
name: {{ include "csi-cloudscale.driver-name" . }}-snapshotter-role
apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "csi-cloudscale.driver-name" . }}-resizer-binding
subjects:
Expand Down
11 changes: 11 additions & 0 deletions charts/csi-cloudscale/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,17 @@ spec:
volumeMounts:
- name: socket-dir
mountPath: /var/lib/csi/sockets/pluginproxy/
- name: csi-snapshotter
image: "{{ .Values.snapshotter.image.registry }}/{{ .Values.snapshotter.image.repository }}:{{ .Values.snapshotter.image.tag }}"
args:
- "--csi-address=$(CSI_ENDPOINT)"
- "--v=5"
env:
- name: CSI_ENDPOINT
value: unix:///var/lib/csi/sockets/pluginproxy/csi.sock
volumeMounts:
- name: socket-dir
mountPath: /var/lib/csi/sockets/pluginproxy/
- name: csi-cloudscale-plugin
image: "{{ .Values.controller.image.registry }}/{{ .Values.controller.image.repository }}:{{ .Values.controller.image.tag }}"
args :
Expand Down
12 changes: 12 additions & 0 deletions charts/csi-cloudscale/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,18 @@ resizer:
# cpu: 100m
# memory: 128Mi



snapshotter:
image:
registry: registry.k8s.io
repository: sig-storage/csi-snapshotter
tag: v8.4.0
pullPolicy: IfNotPresent
logLevelVerbosity: "5"
resources: {}


controller:
replicas: 1
image:
Expand Down
Loading