Defining your extensions as Helm charts is one of two methods you can use to run k0s with your preferred extensions (the other being through the use of Manifest Deployer).
k0s supports two methods for deploying applications using Helm charts:
- Use Helm command in runtime to install applications. Refer to the Helm Quickstart Guide for more information.
- Insert Helm charts directly into the k0s configuration file,
k0s.yaml. This method does not require a separate install of
helmtool and the charts automatically deploy at the k0s bootstrap phase.
Helm charts in k0s configuration#
Adding Helm charts into the k0s configuration file gives you a declarative way in which to configure the cluster. k0s controller manages the setup of Helm charts that are defined as extensions in the k0s configuration file.
In the example, Prometheus is configured from "stable" Helms chart repository. Add the following to
k0s.yaml and restart k0s, after which Prometheus should start automatically with k0s.
spec: extensions: helm: repositories: - name: stable url: https://charts.helm.sh/stable - name: prometheus-community url: https://prometheus-community.github.io/helm-charts charts: - name: prometheus-stack chartname: prometheus-community/prometheus version: "14.6.1" values: | alertmanager: persistentVolume: enabled: false server: persistentVolume: enabled: false namespace: default
Example extensions that you can use with Helm charts include:
- Ingress controllers: Nginx ingress, Traefix ingress (refer to the k0s documentation for Installing the Traefik Ingress Controller)
- Volume storage providers: OpenEBS, Rook, Longhorn
- Monitoring: Prometheus, Grafana