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: 3 months ago
JSON representation

Compose Kubernetes deployments

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