Skip to main content

Addons

Butler manages cluster addons through a Helm-based catalog system. Addons extend cluster functionality with networking, storage, ingress, monitoring, and other capabilities.

Addon Types

Platform Addons

Required for cluster operation. Butler installs these automatically during cluster creation. They cannot be removed through the Console or CLI.

AddonPurpose
CiliumCNI networking (pod-to-pod communication)
MetalLBLoadBalancer Services (on-prem clusters only)
kube-vipControl plane virtual IP (on-prem management clusters)

Optional Addons

Users install and remove these through TenantCluster spec, the Console, or directly via TenantAddon CRDs.

CategoryAvailable Addons
StorageLonghorn, OpenEBS
IngressTraefik, nginx-ingress
Certificatescert-manager
MonitoringPrometheus, Victoria Metrics
GitOpsFlux, ArgoCD

How It Works

Three CRDs drive the addon system:

AddonDefinition -- Cluster-scoped catalog entries. Each definition specifies a Helm chart repository, chart name, available versions, default values, and whether the addon is a platform requirement. Platform admins manage the catalog.

TenantAddon -- Namespaced resources that represent an addon installed on a specific tenant cluster. Butler creates TenantAddons from TenantCluster.spec.addons or users can create them directly. The butler-controller installs the Helm chart on the tenant cluster and tracks its health.

ManagementAddon -- Cluster-scoped resources for addons installed on the management cluster itself (Steward, CAPI providers, monitoring stack).

Specifying Addons

Define addons in the TenantCluster spec:

spec:
addons:
cni:
provider: cilium
version: "1.17.0"
loadBalancer:
provider: metallb
version: "0.14.9"
storage:
provider: longhorn
version: "1.7.0"
certManager:
enabled: true
version: "1.16.0"

Each addon's version field is required. Butler does not auto-select versions.

See Also