Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .github/workflows/release-chart.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- 'release/[0-9]+.[0-9]+.*'

jobs:
release:
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
## unreleased

## v3.5.7-rc2 - 2025.12.23
* Minimum supported Kubernetes version is now 1.28.
* add volume locks to avoid concurrent operations on the same volume
* add detection if symlinks don't add up to the right volume
* increase logging once more

## v3.5.7-rc1 - 2025.12.17
* Adjust udevadm calls & reorder them, and put them behind a mutex to avoid a potential race condition
* Improve logging by adding debug logs
* Add `--log-level=(trace|debug|info|warn|error)` flag to customize log level

## v3.5.6 - 2024.04.18
* ~~Add support for Kubernetes 1.30~~
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ build: compile

.PHONY: push
push:
ifeq ($(DOCKER_REPO),cloudscalech/cloudscale-csi-plugin)
ifneq ($(BRANCH),master)
ifeq ($(DOCKER_REPO),quay.io/cloudscalech/cloudscale-csi-plugin)
ifeq ($(filter master,$(BRANCH))$(filter release/%,$(BRANCH)),)
ifneq ($(VERSION),dev)
$(error "Only the `dev` tag can be published from non-master branches")
$(error "Only the `dev` tag can be published from non-master/non-release branches")
endif
endif
endif
Expand Down
34 changes: 21 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ secret `my-pvc-luks-key`.
## Releases

The cloudscale.ch CSI plugin follows [semantic versioning](https://semver.org/).
The current version is: **`v3.5.6`**.
The current version is: **`v3.5.7-rc2`**.

* Bug fixes will be released as a `PATCH` update.
* New features (such as CSI spec bumps) will be released as a `MINOR` update.
Expand All @@ -85,13 +85,13 @@ We recommend using the latest cloudscale.ch CSI driver compatible with your Kube
| 1.21 | v2.0.0 | v3.5.2 |
| 1.22 | v3.1.0 | v3.5.2 |
| 1.23 | v3.1.0 | v3.5.2 |
| 1.24 | v3.1.0 | v3.5.6 |
| 1.25 | v3.3.0 | v3.5.6 |
| 1.26 | v3.3.0 | v3.5.6 |
| 1.27 | v3.3.0 | v3.5.6 |
| 1.28 | v3.3.0 | v3.5.6 |
| 1.29 | v3.3.0 | v3.5.6 |
| 1.30 | v3.3.0 | v3.5.6 |
| 1.24 | v3.1.0 | v3.5.7-rc2 |
| 1.25 | v3.3.0 | v3.5.7-rc2 |
| 1.26 | v3.3.0 | v3.5.7-rc2 |
| 1.27 | v3.3.0 | v3.5.7-rc2 |
| 1.28 | v3.3.0 | v3.5.7-rc2 |
| 1.29 | v3.3.0 | v3.5.7-rc2 |
| 1.30 | v3.3.0 | v3.5.7-rc2 |
| 1.31 | v3.3.0 | v3.5.6 |
| 1.32 | v3.3.0 | v3.5.6 |
| 1.33 | v3.3.0 | v3.5.6 |
Expand Down Expand Up @@ -198,10 +198,10 @@ $ helm install -g -n kube-system --set controller.image.tag=dev --set node.image
Before you continue, be sure to checkout to a [tagged
release](https://github.com/cloudscale-ch/csi-cloudscale/releases).
Always use the [latest stable version](https://github.com/cloudscale-ch/csi-cloudscale/releases/latest)
For example, to use the latest stable version (`v3.5.6`) you can execute the following command:
For example, to use the latest stable version (`v3.5.7-rc2`) you can execute the following command:

```
$ kubectl apply -f https://raw.githubusercontent.com/cloudscale-ch/csi-cloudscale/master/deploy/kubernetes/releases/csi-cloudscale-v3.5.6.yaml
$ kubectl apply -f https://raw.githubusercontent.com/cloudscale-ch/csi-cloudscale/master/deploy/kubernetes/releases/csi-cloudscale-v3.5.7-rc2.yaml
```

The storage classes `cloudscale-volume-ssd` and `cloudscale-volume-bulk` will be created. The
Expand Down Expand Up @@ -421,15 +421,23 @@ $ git push origin

After it's merged to master, [create a new Github
release](https://github.com/cloudscale-ch/csi-cloudscale/releases/new) from
master with the version `v3.5.6` and then publish a new docker build:
master with the version `v3.5.7-rc2` and then publish a new docker build:

```
$ git checkout master
$ make publish
```

This will create a binary with version `v3.5.6` and docker image pushed to
`cloudscalech/cloudscale-csi-plugin:v3.5.6`
This will create a binary with version `v3.5.7-rc2` and docker image pushed to
`cloudscalech/cloudscale-csi-plugin:v3.5.7-rc2`

### Release a pre-release version

To release a new pre-release (or a patch version based on an existing tag) version, follow the following steps:

1. create a new branch called `release/x.y` (or with the full version)
2. push it to GitHub
3. Follow the flow for creating a new release, making sure to set the appropriate versions.

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v3.5.6
v3.5.7-rc2
4 changes: 2 additions & 2 deletions charts/csi-cloudscale/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: v2
name: csi-cloudscale
description: A Container Storage Interface Driver for cloudscale.ch volumes.
type: application
version: 1.3.6
appVersion: "3.5.6"
version: 1.3.7-rc2
appVersion: "3.5.7-rc2"
home: https://github.com/cloudscale-ch/csi-cloudscale
sources:
- https://github.com/cloudscale-ch/csi-cloudscale.git
Expand Down
1 change: 1 addition & 0 deletions charts/csi-cloudscale/templates/daemonset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ spec:
args :
- "--endpoint=$(CSI_ENDPOINT)"
- "--url=$(CLOUDSCALE_API_URL)"
- "--log-level={{ .Values.node.logLevel }}"
{{- with .Values.node.resources }}
resources:
{{ toYaml . | indent 12 }}
Expand Down
1 change: 1 addition & 0 deletions charts/csi-cloudscale/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ spec:
args :
- "--endpoint=$(CSI_ENDPOINT)"
- "--url=$(CLOUDSCALE_API_URL)"
- "--log-level={{ .Values.controller.logLevel }}"
{{- with .Values.controller.resources }}
resources:
{{ toYaml . | indent 12 }}
Expand Down
6 changes: 4 additions & 2 deletions charts/csi-cloudscale/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,10 @@ controller:
image:
registry: quay.io
repository: cloudscalech/cloudscale-csi-plugin
tag: v3.5.6
tag: v3.5.7-rc2
pullPolicy: IfNotPresent
serviceAccountName:
logLevel: info
resources: {}
# limits:
# cpu: 100m
Expand All @@ -99,11 +100,12 @@ node:
image:
registry: quay.io
repository: cloudscalech/cloudscale-csi-plugin
tag: v3.5.6
tag: v3.5.7-rc2
pullPolicy: IfNotPresent
nodeSelector: {}
tolerations: []
serviceAccountName:
logLevel: info
resources: {}
# limits:
# cpu: 100m
Expand Down
9 changes: 8 additions & 1 deletion cmd/cloudscale-csi-plugin/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"os"

"github.com/cloudscale-ch/csi-cloudscale/driver"
"github.com/sirupsen/logrus"
)

func main() {
Expand All @@ -32,6 +33,7 @@ func main() {
token = flag.String("token", "", "cloudscale.ch access token")
url = flag.String("url", "https://api.cloudscale.ch/", "cloudscale.ch API URL")
version = flag.Bool("version", false, "Print the version and exit.")
logLevel = flag.String("log-level", "info", "Log level (trace, debug, info, warn, error, fatal, panic)")
)
flag.Parse()

Expand All @@ -44,7 +46,12 @@ func main() {
os.Exit(0)
}

drv, err := driver.NewDriver(*endpoint, *token, *url)
level, err := logrus.ParseLevel(*logLevel)
if err != nil {
log.Fatalf("invalid log level %q: %v", *logLevel, err)
}

drv, err := driver.NewDriver(*endpoint, *token, *url, level)
if err != nil {
log.Fatalln(err)
}
Expand Down
Loading
Loading