See your future in progress with ephemeral environments.
The ephemerator shows how to create on-demand preview environments with ephemeral Kubernetes clusters.
We want this project to be just enough that a small or medium-sized team can use it to operate preview environments on their Kubernetes cluster.
We use it to demo a small set of whitelisted Tilt example projects.
There are many features that go into a "gold standard" env operator:
-
Creating a new env on every code change.
-
Destroying / scaling down envs that aren't being used to save on cost.
-
Secrets needed to checkout private code and access control over the managed envs.
The ephemerator operator isn't trying to solve these problems right now.
See CONTRIBUTING.md for details on how to run this locally or in your own cluster.
The desired state of ephemeral environments in the cluster are stored in ConfigMaps
on the cluster itself with the label app: ephemerator.tilt.dev
.
The ephemerator consists of four servers:
ephctrl
- A Kubernetes controller that continuously configmaps in the cluster
and creates the environments.
ephdash
- A dashboard where users manage their environments.
ephgateway
- The ingress that routes traffic to each environment.
oauth2-proxy
- An oauth2 proxy
for authenticating users. Can also be used for access control.
The servers need the following permissions:
ephctrl
- Read/write access on Deployments, Services, Ingresses, and ConfigMaps in its own namespace.
ephdash
- Read/write access on ConfigMaps in its own namespace.
The ephctrl
and ephdash
servers are written in Go. They could be written in
any language with a Kubernetes client library.
Copyright 2022 Windmill Engineering
Licensed under the Apache License, Version 2.0