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 uses Lostrómos in conjunction with another tool to customize VM
deployments into GCE. Each VM instance offloads some of its workload to a
separate Kubernetes application. As we create new VMs in GCE, this other tool
monitors the Google API for these changes and creates a CR as they happen.
Lostrómos watches for changes to this CR endpoint and creates a Helm release
by combining information from the new CR and a predefined template. This allows
us to deconstruct some of the work for our deployment into GCE and reduce
maintenance work around sharing the data between applications.