https://github.com/azure/eno
Compose Kubernetes deployments
https://github.com/azure/eno
azure deployment go kubernetes
Last synced: 26 days 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 (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-09T17:41:19.000Z (26 days ago)
- Last Synced: 2025-04-09T21:43:34.054Z (26 days 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
Compose Kubernetes deployments.
- 🎹 **Synthesize**: generate manifests dynamically in short-lived pods
- ♻️ **Reconcile**: apply the generated configurations to one (or more!) clusters
- 🏃➡️ **React**: track and aggregate the readiness state of managed resources
## What can Eno do?
- Magically regenerate configurations when their inputs change
- Safely roll out changes that impact many instances of a configuration
- Support deployments larger than apiserver's 1.5MB resource limit
- Define complex ordering relationships between resources
- Patch resources without taking full ownership
- Use custom CEL expressions to determine the readiness of resources## Docs
- [Reconciliation](./docs/reconciliation.md)
- [Synthesis](./docs/synthesis.md)
- [Symphony](./docs/symphony.md)
- [Synthesizer API](./docs/synthesizer-api.md)
- [Generated API Docs](./docs/api.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 reference a container image that implements a [KRM function](https://github.com/kubernetes-sigs/kustomize/blob/master/cmd/config/docs/api-conventions/functions-spec.md).
This example uses a small bash script, but you will probably want to use `github.com/Azure/eno/pkg/function`.```bash
kubectl apply -f - <