https://github.com/ia-eknorr/stoker-operator
Kubernetes operator that syncs Ignition gateway configuration from a Git repository
https://github.com/ia-eknorr/stoker-operator
gitops ignition kubernetes operator
Last synced: 19 days ago
JSON representation
Kubernetes operator that syncs Ignition gateway configuration from a Git repository
- Host: GitHub
- URL: https://github.com/ia-eknorr/stoker-operator
- Owner: ia-eknorr
- License: mit
- Created: 2026-02-15T14:42:22.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-02-28T05:49:41.000Z (3 months ago)
- Last Synced: 2026-02-28T12:42:08.966Z (3 months ago)
- Topics: gitops, ignition, kubernetes, operator
- Language: Go
- Homepage:
- Size: 14.2 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
```bash
# 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](https://ia-eknorr.github.io/stoker-operator/quickstart)**.
## Architecture
```mermaid
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`](https://ia-eknorr.github.io/stoker-operator/reference/gatewaysync-cr) | `gs` | Defines the git repository, auth, polling, sync profiles, and gateway connection settings |
## Development
See [CONTRIBUTING.md](CONTRIBUTING.md) for build commands, testing, and development workflow.
## License
This project is licensed under the [MIT License](LICENSE).