Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lostromos/lostromos
Lostrómos is a service that creates Kubernetes resources based on a Custom Resource endpoint in the Kubernetes API
https://github.com/lostromos/lostromos
helm helm-operator kubernetes kubernetes-operator
Last synced: about 2 months ago
JSON representation
Lostrómos is a service that creates Kubernetes resources based on a Custom Resource endpoint in the Kubernetes API
- Host: GitHub
- URL: https://github.com/lostromos/lostromos
- Owner: lostromos
- License: apache-2.0
- Archived: true
- Created: 2017-10-17T00:11:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-09-27T17:03:08.000Z (over 5 years ago)
- Last Synced: 2024-06-20T06:34:26.124Z (7 months ago)
- Topics: helm, helm-operator, kubernetes, kubernetes-operator
- Language: Go
- Homepage:
- Size: 316 KB
- Stars: 133
- Watchers: 34
- Forks: 26
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
![Lostrómos logo](docs/images/logo.png)
[![Build Status](https://travis-ci.org/lostromos/lostromos.svg?branch=master)](https://travis-ci.org/lostromos/lostromos)
[![codecov](https://codecov.io/gh/lostromos/lostromos/branch/master/graph/badge.svg)](https://codecov.io/gh/lostromos/lostromos)
[![Go Report Card](https://goreportcard.com/badge/github.com/lostromos/lostromos)](https://goreportcard.com/report/github.com/lostromos/lostromos)# Lostrómos
Lostrómos is a templating [operator](https://coreos.com/blog/introducing-operators.html).
*Please note that the documentation on Kubernetes Operators is somewhat out of
date. [Third party resources](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-third-party-resource/)
have been deprecated, and operators now watch [Custom Resources](https://kubernetes.io/docs/concepts/api-extension/custom-resources/).*## Table of Contents
* [Overview](#overview)
* [Problem Statement](#problem-statement)
* [How It Works](#how-it-works)
* [Use Cases](#use-cases)
* [Using Lostrómos](docs/usinglostromos.md#usinglostromos)
* [Recommended Reading](docs/usinglostromos.md#reading)
* [Quick Start](docs/usinglostromos.md#quickstart)
* [Tutorial](docs/usinglostromos.md#tutorial)
* [Customization](docs/usinglostromos.md#customization)
* [Events](docs/events.md)
* [Using Helm](docs/helm.md)
* [Deploying Lostrómos](docs/usinglostromos.md#deployment)
* [Logs](docs/usinglostromos.md#logs)
* [Contributing to Lostrómos](docs/development.md#contributing)
* [Development](docs/development.md#development)
* [Testing](docs/development.md#testing)
* [Continuous Integration](docs/development.md#ci)
* [Contribution Guidelines](CONTRIBUTING.md)
* [Report a Bug](CONTRIBUTING.md#bugs)## 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](https://kubernetes.io/docs/user-guide/kubectl-overview/) or
[Helm](https://docs.helm.sh/).### 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.