Installation
Install c9s into an existing Kubernetes cluster.
C9s can be installed into an existing Kubernetes cluster with version 1.31 or higher. No custom CNI, no additional storage class, no special tuning.
A typical installation method uses the c9s Helm chart distributed as an OCI artifact.
Versions
The charts are versioned with semantic versioning and the available versions can be listed using one of the following methods:
- with
make ls-releasescommand executed in the clabernetes repository - browsing the published charts on Artifact Hub
- browsing the tags of the
clabernetesOCI artifact on GitHub
You don't need to know the exact version to just install c9s, however, if you need to install a specific version, that's how to know what is available.
With helm
A common way to install applications on Kubernetes typically uses helm:
helm upgrade --install --create-namespace --namespace c9s \
clabernetes oci://ghcr.io/clabernetes/clabernetes/clabernetesWith make
While users can install c9s directly with Helm, the Makefile provided in the clabernetes repository offers a convenient way to install c9s into an existing Kubernetes cluster.
git clone https://github.com/clabernetes/clabernetes
cd clabernetesThe Makefile takes care of all the dependencies and tools, so you can just relax:
make installmake install uses the current Kubernetes context. Set C9S_CONTEXT when installing into a
specific context:
C9S_CONTEXT=my-cluster make installUpgrade
From 0.7 onward, c9s upgrades in place with Helm. Topology, Node, Link, and LauncherProfile objects are kept. There is no in-place path from 0.6; that cutover is described in the 0.7 release notes.
The installation commands above already use helm upgrade --install. Running them again against
the existing clabernetes release in the c9s namespace is the upgrade.
helm upgrade --install --namespace c9s \
clabernetes oci://ghcr.io/clabernetes/clabernetes/clabernetesIf you installed with a values file, pass the same -f on upgrade so Helm does not reset the
release to chart defaults.
Helm rolls the manager Deployment to the chart's manager image. The new manager applies CRD
updates on startup, so additive schema changes (for example 0.8 affinity and criHostsDir) take
effect without a separate kubectl apply of the CRDs.
Launcher images live on the global Config singleton, and Helm's default merge mode leaves an
already-set launcherImage alone. After the Helm upgrade, point that field at the same chart
version:
kubectl --namespace c9s patch configs.c9s.run/clabernetes --type merge \
--patch '{"spec":{"deployment":{"launcherImage":"ghcr.io/clabernetes/clabernetes/clabernetes-launcher:0.8.0"}}}'Replace 0.8.0 with the chart version you just installed (helm --namespace c9s list). Existing
launcher Deployments roll to the new image when Config changes.
make install (optionally with VERSION=0.8.0) performs the Helm upgrade and the launcher-image
update together.
Uninstallation
To uninstall c9s, you can remove the Helm release, or run:
make uninstall