https://github.com/azure/eno
Compose Kubernetes deployments
https://github.com/azure/eno
azure deployment go kubernetes
Last synced: 3 months ago
JSON representation
Compose Kubernetes deployments
- Host: GitHub
- URL: https://github.com/azure/eno
- Owner: Azure
- License: mit
- Created: 2023-04-18T16:01:29.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-09T17:41:19.000Z (12 months ago)
- Last Synced: 2025-04-09T21:43:34.054Z (12 months ago)
- Topics: azure, deployment, go, kubernetes
- Language: Go
- Homepage:
- Size: 1.75 MB
- Stars: 13
- Watchers: 57
- Forks: 9
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- 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 - <