SnapScheduler v1.1.0 released
Today marks the release of snapscheduler v1.1.0. This release brings support for
Kubernetes 1.17 and the snapshot.storage.k8s.io/v1beta1
API for CSI snapshots.
In the switch from 1.16 to 1.17, the snapshot API moved from v1alpha1
to
v1beta1
. Since snapscheduler directly manipulates the VolumeSnapshot objects,
it required some code updates. However, snapscheduler retains compatibility with
the older alpha API, so it continues to function on pre-1.17 clusters.
With these changes, official support for 1.12 has been removed, largely due to a lack of testing.
Behind the scenes
Some of the other highlights of this release are less user-visible.
During the development of v1.1, CI was moved from Travis CI over to GitHub Actions. This has improved the speed and reliability of the tests on PRs. Each PR is now also being tested against Kubernetes minor versions from 1.13 through 1.17 with the use of Kind and the CSI Hostpath Driver.
In order to support both the v1alpha1
and v1beta1
VolumeSnapshot objects, an
abstraction layer was introduced in the code to permit the same scheduling and
expiration logic to work independent of the snapshot API version. This will
hopefully also ease the transition to the eventual v1
API.
Snapscheduler is built on the Operator Framework’s
operator-sdk. As a part of
this release, the operator-sdk was updated to v0.15.1
.
For a full list of changes, feel free to browse the repository CHANGELOG.
Installing and updating
The easiest way to get up and running is via the Helm chart, available from Helm Hub: https://hub.helm.sh/charts/backube/snapscheduler
New installation:
$ helm repo add backube https://backube.github.io/helm-charts/
$ kubectl create ns backube-snapscheduler
$ helm install -n backube-snapscheduler snapscheduler backube/snapscheduler
Upgrade:
$ helm repo update
$ helm upgrade -n backube-snapscheduler snapscheduler backube/snapscheduler
The full documentation is available at https://backube.github.io/snapscheduler/