Providers
Kairos providers are plugin binaries used to extend node behavior through lifecycle events.
In practice, many users use providers for Kubernetes bootstrap, but providers are not limited to Kubernetes. A provider gives you a mechanism to react to lifecycle events and execute your own logic for system components.
Why providers exist​
Providers let Kairos keep a modular architecture:
- Core images stay minimal and do not include Kubernetes providers.
- Standard images include a Kubernetes provider and related integrations.
- Additional behavior can be added without changing the core agent architecture.
Examples of what a provider can do:
- Bootstrap a component during install/first boot.
- Register custom lifecycle hooks.
- Attach networking/coordination components.
- Expose provider-specific CLI behavior.
How provider integration works​
Provider integration is event-driven.
kairos-agentinitializes a provider bus and auto-loads provider binaries with theagent-providerprefix from standard provider directories.- Providers subscribe to known Kairos events and respond to them.
- Communication is done through the same plugin framework used by Kairos components (
go-pluggable).
Reference implementation points in source code:
- Agent bus initialization and provider autoload:
- Agent startup and event publishing:
- Provider event registration:
- Plugin framework used by agent/provider:
Lifecycle semantics (important)​
Provider hooks map to specific lifecycle events.
- A bootstrap event is tied to bootstrap/install flow.
- If you bootstrap Kubernetes with
provider-kairos, that bootstrap event is not the event you use for normal upgrade cycles. - For post-service orchestration patterns (for example running steps after k3s is up), use dedicated stages/services as shown in Run stages along with K3s.
For provider-related stage names, see Cloud-init architecture.
Official and community providers​
There are multiple providers in the ecosystem.
- Officially maintained by Kairos:
provider-kairos - Community-maintained: additional providers can be developed and maintained outside the core Kairos organization
The official provider-kairos currently includes:
- Kubernetes support for
k3sandk0s. - Edge networking capabilities through EdgeVPN for peer-to-peer coordination use cases.
Related docs:
- P2P Network architecture
- Single-node p2p
- Multi-node p2p
- Multi-node p2p HA
- Multi-node p2p HA with KubeVIP
- P2P end-to-end example
Core vs standard, from a provider perspective​
- Core: no Kubernetes provider selected.
- Standard: a Kubernetes provider is included. In the official path, this means
provider-kairoswith eitherk3sork0s.
For concrete build flags and examples, see:
Configuration and runtime hooks​
Provider behavior is configured through cloud-config provider sections and integrated with Kairos stages.
- Provider config keys: Configuration reference
- Provider-related lifecycle stages: Cloud-init architecture