Kairos Community Bundles
Welcome to the community-bundles repository! This repository builds and pushes Kairos community bundles that can be consumed by Kairos core or derivative images (such as provider-kairos ) to extend Kairos configurations and settings, and to add cloud-config keywords.
Please note that these community bundles are not officially supported and are provided on a best-effort basis by the community.
Table of Contents
Usage
To use a community bundle, you can load it with the bundles block in the Kairos configuration file, like this:
bundles:
- targets:
- run://quay.io/kairos/community-bundles:<bundle-name>
Here is an example of how you might use a community bundle in a Kairos core image:
#cloud-config
install:
device: "auto"
auto: true
reboot: true
image: "docker:quay.io/kairos/kairos-opensuse:v1.4.0-k3sv1.26.0-k3s1"
users:
- name: "kairos"
passwd: "kairos"
ssh_authorized_keys:
- ...
bundles:
- targets:
- run://quay.io/kairos/community-bundles:kubevirt
k3s:
enabled: true
Bundles
Calico
The calico bundle deploys Project Calico.
To configure the bundle, use the calico
block:
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:calico_latest
# Specify calico settings
calico:
values:
installation:
cni:
type: Calico
calicoNetwork:
bgp: Disabled
ipPools:
- cidr: 10.244.0.0/16
encapsulation: VXLAN
version: 3.25.0
Note that specifying values
and version
are optional. Specifying values
allows you to
customize the Helm Chart.
Cert-manager
The cert-manager bundle deploys cert-manager.
The bundle does add a certManager
block, that allow to change the version (currently only available v1.11.0
):
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:cert-manager_latest
# Specify cert-manager settings
certManager:
version: v1.11.0
Kairos
The Kairos bundle deploys the Kairos helm-charts. It installs the kairos-crds
chart, and allows to enable entangle-proxy, osbuilder, and entangle.
By default the bundle will install only the CRDs, components needs to be explicitly enabled:
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:kairos_latest
# Specify kairos bundle setting
kairos:
osbuilder:
enable: true
version: ... #optional
entangle:
enable: true
version: ... #optional
entangleProxy:
enable: true
version: ... #optional
Kyverno
The Kyverno bundle deploys Kyverno.
To configure the bundle, use the kyverno
block:
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:kyverno_latest
# Specify kyverno settings
kyverno:
values:
....
version: ...
Note that specifying values
and version
are optional. Specifying values
allows you to
customize the Helm Chart.
Kubevirt
The Kubevirt bundle deploys Kubevirt and optionally kubevirt-manager
The bundle does add a kubevirt
block, that allow to enable kubevirt-manager
:
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:kubevirt_latest
# Specify kubevirt settings
kubevirt:
manager: true
Longhorn
The longhorn bundle deploys Longhorn.
To configure the bundle, use the longhorn
block:
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:longhorn_latest
# Specify longhorn settings
longhorn:
values:
defaultSettings:
backupstorePollInterval: 600
version: 1.4.0
Note that specifying values
and version
are optional. Specifying values
allows you to
customize the Helm Chart.
MetalLB
The MetalLB bundle deploys MetalLB in the cluster, available after boostrap.
The bundle does add a metallb
block, that allow to set up the MetalLB version and the address pool in the Kairos configuration file:
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:metallb_latest
# Specify metallb settings
metallb:
version: 0.13.7
address_pool: 192.168.1.10-192.168.1.20
Note, you might want to disable the default LoadBalancer of k3s, a full example can be:
#cloud-config
hostname: kairoslab-{{ trunc 4 .MachineID }}
users:
- name: kairos
ssh_authorized_keys:
# Add your github user here!
- github:mudler
k3s:
enable: true
args:
- --disable=servicelb
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:metallb_latest
# Specify metallb settings
metallb:
version: 0.13.7
address_pool: 192.168.1.10-192.168.1.20
System upgrade controller
The System upgrade controller bundle deploys System upgrade controller.
The bundle does add a suc
block, that allow to change the version:
#cloud-config
# Specify the bundle to use
bundles:
- targets:
- run://quay.io/kairos/community-bundles:system-upgrade-controller_latest
# Specify system-upgrade-controller settings
suc:
version: v0.10.0
Development
If you want to build and test a bundle, you can use earthly by running the following commands:
# build
./earthly.sh +build --BUNDLE=<bundle-name>
# test
./earthly.sh +test --BUNDLE=<bundle-name>
We also provide a version of the earthly.sh
script for Windows (eartly.ps1
).