Code Monkey home page Code Monkey logo

ephemerator's Introduction

ephemerator

See your future in progress with ephemeral environments.

The ephemerator shows how to create on-demand preview environments with ephemeral Kubernetes clusters.

Goals

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.

Non-Goals

There are many features that go into a "gold standard" env operator:

The ephemerator operator isn't trying to solve these problems right now.

Development

See CONTRIBUTING.md for details on how to run this locally or in your own cluster.

Architecture

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.

License

Copyright 2022 Windmill Engineering

Licensed under the Apache License, Version 2.0

ephemerator's People

Contributors

nicks avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.