Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
e95a47d
define the CompatibilityMode field
ftl Jun 11, 2026
0395e83
add the default value for CSI.CompatibilityMode
ftl Jun 11, 2026
9e3f0cf
provide access to the new CompatibilityMode field
ftl Jun 12, 2026
b6327d4
render the second DaemonSet in compatibility mode, if parameterized a…
ftl Jun 12, 2026
2e7ef9f
install control-plane stackit-blockstorage chart (compat) as ManagedR…
nschad Jun 15, 2026
ded54b7
fix chart path
nschad Jun 15, 2026
315a7b0
fix chart path and releaseName
nschad Jun 15, 2026
7ea066f
fix path?
nschad Jun 15, 2026
700c9cf
Move some things around
nschad Jun 15, 2026
599e6c5
fix values?
nschad Jun 15, 2026
69803f5
fix type assertion
nschad Jun 15, 2026
256fe30
fix namespace
nschad Jun 15, 2026
d8d047c
use different name for MR release
nschad Jun 15, 2026
053f355
apply fixes and inject images manually
nschad Jun 15, 2026
d8f5d45
remove the duplicated DaemonSet as it is not needed
ftl Jun 16, 2026
3992bb6
add a symmetric method for the Shoot controlplane in Compatibility Mode
ftl Jun 17, 2026
8470869
use the correct image vector for the Shoot controlplane
ftl Jun 17, 2026
38631b6
delete compatibility mode managed resources when not needed
ftl Jun 18, 2026
da9924a
control the legacy-volume-creation flag
ftl Jun 18, 2026
553c207
make sure to use the correct namespace and origin
ftl Jun 18, 2026
eb9840b
make generate
ftl Jun 19, 2026
680824c
extract the CSI compatibility related code and use dependency injecti…
ftl Jun 22, 2026
fc3d2b7
fix typo
ftl Jun 22, 2026
480a667
add a unit test scaffolding
ftl Jun 23, 2026
f6159d0
add checks for the relevant command line flags in the DaemonSets
ftl Jun 23, 2026
faa4edd
extract function
ftl Jun 23, 2026
3b4737f
separate chart rendering and deployment
ftl Jun 23, 2026
6dd7153
create the renderer only once
ftl Jun 23, 2026
d15c800
fix the compatibility mode accessor
ftl Jun 23, 2026
88c40ea
simplify test assertions
ftl Jun 24, 2026
7ece65f
extract helper methods and constants
ftl Jun 24, 2026
ed07511
handle unset compatibility mode
ftl Jun 24, 2026
6116e66
go mod tidy
ftl Jun 24, 2026
89bee29
modernize
ftl Jun 24, 2026
e324f1f
move the legacy-volume-creation flag to the seed control plane
ftl Jun 25, 2026
f6cca4e
use a different healthz port in the second csi drive instance, also i…
ftl Jun 25, 2026
48bbe2f
fix typo
ftl Jun 25, 2026
3d9af01
use a better prefix
ftl Jun 25, 2026
38c6ad3
fix: deploy seed part in correct namespace; findImage by specific ver…
nschad Jun 25, 2026
2cbfc21
make stackit-blockstorage-csi-driver (shoot) chart customizable for d…
nschad Jun 25, 2026
e85d5cf
make health-port of CSI livenessprobe configurable
nschad Jun 25, 2026
24f65b7
only deploy snapshot-controller once
nschad Jun 25, 2026
5610a2d
use the correct namespace
ftl Jun 26, 2026
05ef572
fix: deploy snapshotcontroller by default; but NOT if in compatibilit…
nschad Jun 26, 2026
0804373
check the liveness-probe healthz port
ftl Jun 29, 2026
f78f764
check the csi drive name in COMPAT(BLOCK) mode
ftl Jun 29, 2026
9899a45
check that there is no snapshot controller deployed with the
ftl Jun 29, 2026
af3c625
create an integration test that checks if the compatibility related
ftl Jun 29, 2026
60a7f79
add test to cover the transition from compat to default
ftl Jul 2, 2026
6ce05fd
go mod tidy
ftl Jul 6, 2026
4d8bffc
add a description for the two CSI config fields
ftl Jul 6, 2026
7eef97a
use the flag instead of a string comparison
ftl Jul 6, 2026
ef0520e
update api documentation
ftl Jul 6, 2026
eacb4a1
fix wrong check
ftl Jul 6, 2026
ecafaa8
replace switch/case with if and early bail out
ftl Jul 7, 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
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{- if not .Values.csi.enableCompatibilityMode }}
Comment thread
ftl marked this conversation as resolved.
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
Expand All @@ -13,3 +14,4 @@ spec:
app: {{.Values.prefix}}-csi-snapshot-controller
role: controller
unhealthyPodEvictionPolicy: AlwaysAllow
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
---
{{- if not .Values.csi.enableCompatibilityMode }}
Comment thread
ftl marked this conversation as resolved.
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
Expand All @@ -15,3 +15,4 @@ spec:
name: {{.Values.prefix}}-csi-snapshot-controller
updatePolicy:
updateMode: Auto
{{- end }}
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ spec:
{{- end }}
- --v=3
- --provide-node-service=false
{{- if .Values.csi.enableCompatibilityMode }}
- --legacy-storage-mode=true
{{- end }}
{{- if .Values.csi.blockLegacyCreation }}
- --legacy-volume-creation=false
{{- end }}
env:
- name: CSI_ENDPOINT
value: unix://{{ .Values.socketPath }}/csi.sock
Expand All @@ -72,7 +78,7 @@ spec:
{{- end }}
ports:
- name: healthz
containerPort: 9808
containerPort: {{ .Values.healthzPort }}
protocol: TCP
livenessProbe:
httpGet:
Expand Down Expand Up @@ -254,6 +260,7 @@ spec:
args:
- --probe-timeout=3m
- --csi-address=/csi/csi.sock
- --health-port={{.Values.healthzPort}}
{{- if .Values.resources.livenessProbe }}
resources:
{{ toYaml .Values.resources.livenessProbe | indent 10 }}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{{- if not .Values.csi.enableCompatibilityMode }}
Comment thread
ftl marked this conversation as resolved.
apiVersion: apps/v1
kind: Deployment
metadata:
Expand Down Expand Up @@ -70,3 +71,4 @@ spec:
path: token
name: shoot-access-csi-snapshot-controller
optional: false
{{- end }}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ kubernetesVersion: 1.30.0
prefix: stackit-blockstorage
projectID: ""

healthzPort: 9808

csi:
enableCompatibilityMode: false
blockLegacyCreation: false

images:
csi-driver-stackit: image-repository:image-tag
csi-provisioner: image-repository:image-tag
Expand All @@ -12,7 +18,6 @@ images:
csi-resizer: image-repository:image-tag
csi-liveness-probe: image-repository:image-tag
csi-snapshot-controller: image-repository:image-tag
csi-snapshot-validation-webhook: image-repository:image-tag

socketPath: /var/lib/csi/sockets/pluginproxy
region: ""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ spec:
metadata:
annotations:
checksum/configmap-cloud-provider-config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
node.gardener.cloud/wait-for-csi-node-stackit: block-storage.csi.stackit.cloud
{{- if .Values.csi.enableCompatibilityMode }}
Comment thread
ftl marked this conversation as resolved.
node.gardener.cloud/wait-for-csi-node-openstack: {{ .Values.driverName }}
{{- else }}
node.gardener.cloud/wait-for-csi-node-stackit: {{ .Values.driverName }}
{{- end }}
labels:
node.gardener.cloud/critical-component: "true"
app: {{ .Values.prefix }}-csi
Expand Down Expand Up @@ -48,6 +52,9 @@ spec:
{{- end }}
- --v=2
- --provide-controller-service=false
{{- if .Values.csi.enableCompatibilityMode }}
- --legacy-storage-mode=true
{{- end }}
env:
- name: CSI_ENDPOINT
value: unix://{{ .Values.socketPath }}
Expand All @@ -62,7 +69,7 @@ spec:
allowPrivilegeEscalation: true
ports:
- name: healthz
containerPort: 9908
containerPort: {{ .Values.healthzPort }}
protocol: TCP
livenessProbe:
httpGet:
Expand Down Expand Up @@ -94,7 +101,7 @@ spec:
- name: ADDRESS
value: {{ .Values.socketPath }}
- name: DRIVER_REG_SOCK_PATH
value: /var/lib/kubelet/plugins/block-storage.csi.stackit.cloud/csi.sock
value: /var/lib/kubelet/plugins/{{ .Values.driverName }}/csi.sock
{{- if .Values.resources.nodeDriverRegistrar }}
resources:
{{ toYaml .Values.resources.nodeDriverRegistrar | indent 10 }}
Expand All @@ -112,7 +119,7 @@ spec:
args:
- --probe-timeout=3m
- --csi-address={{ .Values.socketPath }}
- --health-port=9908
- --health-port={{ .Values.healthzPort }}
{{- if .Values.resources.livenessProbe }}
resources:
{{ toYaml .Values.resources.livenessProbe | indent 10 }}
Expand All @@ -130,7 +137,7 @@ spec:
type: Directory
- name: plugin-dir
hostPath:
path: /var/lib/kubelet/plugins/block-storage.csi.stackit.cloud/
path: /var/lib/kubelet/plugins/{{ .Values.driverName }}/
type: DirectoryOrCreate
- name: registration-dir
hostPath:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@ driverName: block-storage.csi.stackit.cloud

rescanBlockStorageOnResize: "true"

healthzPort: 9908

csi:
enableCompatibilityMode: false

images:
csi-driver-stackit: image-repository:image-tag
csi-node-driver-registrar: image-repository:image-tag
Expand Down
27 changes: 26 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ require (
k8s.io/utils v0.0.0-20260507154919-ff6756f316d2
sigs.k8s.io/controller-runtime v0.23.3
sigs.k8s.io/controller-runtime/tools/setup-envtest v0.0.0-20231015215740-bf15e44028f9
sigs.k8s.io/yaml v1.6.0
)

require (
Expand All @@ -53,6 +54,7 @@ require (
github.com/BurntSushi/toml v1.6.0 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
github.com/NYTimes/gziphandler v1.1.1 // indirect
github.com/PaesslerAG/gval v1.2.4 // indirect
github.com/PaesslerAG/jsonpath v0.1.2-0.20240726212847-3a740cf7976f // indirect
github.com/VictoriaMetrics/VictoriaLogs v1.36.2-0.20251008164716-21c0fb3de84d // indirect
Expand Down Expand Up @@ -81,19 +83,23 @@ require (
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/bmatcuk/doublestar/v4 v4.10.0 // indirect
github.com/brunoga/deep v1.3.1 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/coreos/go-semver v0.3.1 // indirect
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/elastic/crd-ref-docs v0.3.0 // indirect
github.com/elliotchance/orderedmap/v3 v3.1.0 // indirect
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
github.com/fatih/color v1.19.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fluent/fluent-operator/v3 v3.7.0 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/gardener/cert-management v0.23.0 // indirect
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-logr/zapr v1.3.0 // indirect
github.com/go-openapi/errors v0.22.7 // indirect
github.com/go-openapi/jsonpointer v0.22.5 // indirect
Expand All @@ -111,6 +117,7 @@ require (
github.com/go-openapi/swag/typeutils v0.26.0 // indirect
github.com/go-openapi/swag/yamlutils v0.25.5 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/go-test/deep v1.1.1 // indirect
github.com/gobuffalo/flect v1.0.3 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/goccy/go-yaml v1.19.2 // indirect
Expand All @@ -123,6 +130,8 @@ require (
github.com/google/gnostic-models v0.7.1 // indirect
github.com/google/pprof v0.0.0-20260402051712-545e8a4df936 // indirect
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/huandu/xstrings v1.5.0 // indirect
Expand All @@ -131,6 +140,7 @@ require (
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
github.com/klauspost/compress v1.18.6 // indirect
github.com/kubernetes-csi/external-snapshotter/client/v4 v4.2.0 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/labstack/echo/v4 v4.15.1 // indirect
github.com/labstack/gommon v0.4.2 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
Expand All @@ -157,6 +167,7 @@ require (
github.com/prometheus/common v0.68.1 // indirect
github.com/prometheus/procfs v0.20.1 // indirect
github.com/prometheus/sigv4 v0.3.0 // indirect
github.com/robfig/cron v1.2.0 // indirect
github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/sirupsen/logrus v1.9.4 // indirect
Expand All @@ -172,8 +183,19 @@ require (
github.com/x448/float16 v0.8.4 // indirect
github.com/zitadel/oidc/v3 v3.45.4 // indirect
github.com/zitadel/schema v1.3.2 // indirect
go.etcd.io/etcd/api/v3 v3.6.5 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.6.5 // indirect
go.etcd.io/etcd/client/v3 v3.6.5 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect
go.opentelemetry.io/otel v1.44.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0 // indirect
go.opentelemetry.io/otel/metric v1.44.0 // indirect
go.opentelemetry.io/otel/sdk v1.44.0 // indirect
go.opentelemetry.io/otel/trace v1.44.0 // indirect
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.28.0 // indirect
go.yaml.in/yaml/v2 v2.4.4 // indirect
Expand All @@ -192,9 +214,11 @@ require (
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect
google.golang.org/grpc v1.81.1 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
helm.sh/helm/v4 v4.1.4 // indirect
Expand All @@ -205,14 +229,15 @@ require (
k8s.io/component-helpers v0.35.5 // indirect
k8s.io/gengo/v2 v2.0.0-20251215205346-5ee0d033ba5b // indirect
k8s.io/klog/v2 v2.140.0 // indirect
k8s.io/kms v0.35.5 // indirect
k8s.io/kube-aggregator v0.35.5 // indirect
k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a // indirect
k8s.io/metrics v0.35.5 // indirect
k8s.io/pod-security-admission v0.35.5 // indirect
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.33.0 // indirect
sigs.k8s.io/controller-tools v0.20.1 // indirect
sigs.k8s.io/gateway-api v1.5.0 // indirect
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.2 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
)
Loading