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

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

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 - <