Stoker
stok·er /ˈstōkər/ — a person who tends the fire in a furnace, feeding it fuel to keep it burning.
Stoker tends your Ignition gateways, continuously feeding them configuration from Git to keep them running in the desired state.
Features
- Git-driven configuration sync — gateway projects, tags, and resources managed in Git
- Multi-gateway support — manage any number of gateways from a single repository with template variables (
{{.GatewayName}}, {{.Labels.key}}, {{.CRName}})
- Profile mappings — declarative source-to-destination file mappings with glob patterns and per-pod template routing
- Content templating — resolve
{{.GatewayName}}, {{.Vars.key}}, and other variables inside file contents at sync time; no source file modification required
- JSON patches — surgically update specific JSON fields per gateway using sjson dot-notation paths, without modifying source files in git
- Automatic sidecar injection — MutatingWebhook injects the sync agent into annotated pods
- Gateway discovery — controller discovers annotated pods and aggregates sync status
- Webhook receiver — push-event-driven sync via
POST /webhook/{namespace}/{crName}
Quick Start
# Install cert-manager (required for webhook TLS)
# https://cert-manager.io/docs/installation/
# Install the operator
helm install stoker oci://ghcr.io/ia-eknorr/charts/stoker-operator \
-n stoker-system --create-namespace
For a complete walkthrough — from installing the operator to syncing projects to an Ignition gateway — see the Quickstart Guide.
Architecture
flowchart LR
Git[(Git Repo)] --> GatewaySync
subgraph cluster [Cluster]
GatewaySync
subgraph ns [Namespace]
subgraph pod [Gateway Pod]
Agent[Agent Sidecar] --> GW[Ignition Gateway]
end
end
end
GatewaySync --> Agent
CRDs
| CRD |
Short Name |
Description |
GatewaySync |
gs |
Defines the git repository, auth, polling, sync profiles, and gateway connection settings |
Development
See CONTRIBUTING.md for build commands, testing, and development workflow.
License
This project is licensed under the MIT License.