https://github.com/azure/eno
Dynamic configuration management for Kubernetes
https://github.com/azure/eno
azure deployment go kubernetes
Last synced: 7 days ago
JSON representation
Dynamic configuration management for Kubernetes
- Host: GitHub
- URL: https://github.com/azure/eno
- Owner: Azure
- License: mit
- Created: 2023-04-18T16:01:29.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2026-06-08T19:20:01.000Z (11 days ago)
- Last Synced: 2026-06-08T21:14:49.314Z (10 days ago)
- Topics: azure, deployment, go, kubernetes
- Language: Go
- Homepage:
- Size: 73.5 MB
- Stars: 27
- Watchers: 53
- Forks: 23
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
- Support: SUPPORT.md
Awesome Lists containing this project
README
# Eno
Dynamic configuration management for Kubernetes.
- 🎹 **Synthesize**: generate manifests dynamically in short-lived pods
- ♻️ **Reconcile**: apply the generated configurations and rapidly correct any drift
- 🏃➡️ **React**: re-synthesize when input resources are modified
## What is Eno?
Eno deploys applications to Kubernetes using any programming language — not just YAML templates.
The Eno controllers execute your deployment code in short-lived pods and reconcile the results into Kubernetes resources.
Just print JSON objects to stdout and Eno will handle the rest.
## Docs
- [Synthesis](./docs/synthesis.md)
- [Reconciliation](./docs/reconciliation.md)
- [Symphony](./docs/symphony.md)
## Getting Started
### 1. Install Eno
```bash
export TAG=$(curl https://api.github.com/repos/Azure/eno/releases | jq -r '.[0].name')
kubectl apply -f "https://github.com/Azure/eno/releases/download/${TAG}/manifest.yaml"
```
### 2. Create a Synthesizer
Synthesizers model a reusable set of resources, similar to an `apt` package or Helm chart.
> ⚠️ This example uses a simple bash script but real applications should use [Helm](./examples/03-helm-shim), [Go](./examples/02-go-synthesizer/main.go), or [KCL](./pkg/kclshim/) (currently beta-ish) or any other process that implements the [KRM function API](https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md).
```yaml
kubectl apply -f - <