An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          


Stoker logo

# Stoker


Lint
Test
Release
License: MIT
Docs
Go Report Card

> **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).