Skip to content
This repository has been archived by the owner on Sep 10, 2020. It is now read-only.
/ lostromos Public archive

Lostrómos is a service that creates Kubernetes resources based on a Custom Resource endpoint in the Kubernetes API

License

Notifications You must be signed in to change notification settings

lostromos/lostromos

Repository files navigation

Lostrómos logo

Build Status codecov Go Report Card

Lostrómos

Lostrómos is a templating operator.

Please note that the documentation on Kubernetes Operators is somewhat out of date. Third party resources have been deprecated, and operators now watch Custom Resources.

Table of Contents

Overview

Problem Statement

Managing, sharing, and controlling an application's operational domain knowledge can be prone to human error and may create points of failure. Instead of maintaining lists, databases, and/or logic structures to control this information, Lostrómos automates maintenance of this information with only the need for a predefined template.

How It Works

Lostrómos is a Kubernetes operator. It watches a Custom Resource (CR) endpoint. When a change is detected, it uses the information in the CR to fill a template. This template is applied either via kubectl or Helm.

Use Cases

Control access to creation of Kubernetes resources

As a Kubernetes admin, allow developers to create instances of an application for development purposes without giving them direct access to deploy to the production cluster. Developers can create a CR, and with Lostrómos, the instance is deployed with development specific operational parameters (such as a test database or a specific application package).

Automate deployment of services alongside your application

Deploy a Kubernetes application and an accompanying monitoring service that relies on operational data from that application (such as an IP address) by creating a single CR.

Eliminate maintenance of application operational knowledge for deployments

WP Engine previously used Lostrómos in conjunction with another tool to customize VM deployments into GCE. Each VM instance offloaded some of its workload to a separate Kubernetes application. As new VMs were created in GCE, this other tool monitored the Google API for these changes and created a CR as they happened. Lostrómos watched for changes to this CR endpoint and created a Helm release by combining information from the new CR and a predefined template. This allowed WP Engine to deconstruct some of the work for deployment into GCE and reduce maintenance work around sharing the data between applications.