c9s

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-releases command executed in the clabernetes repository
  • browsing the published charts on Artifact Hub
  • browsing the tags of the clabernetes OCI 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/clabernetes

With 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.

clone the clabernetes repository if you haven't already
git clone https://github.com/clabernetes/clabernetes
cd clabernetes

The Makefile takes care of all the dependencies and tools, so you can just relax:

make install

make install uses the current Kubernetes context. Set C9S_CONTEXT when installing into a specific context:

 C9S_CONTEXT=my-cluster make install

Upgrade

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/clabernetes

If 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

On this page