All Projects → scalair → robokops

scalair / robokops

Licence: AGPL-3.0 License
Manage Kubernetes clusters and deploy common features

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Dockerfile
14818 projects
python
139335 projects - #7 most used programming language
HCL
1544 projects
Jsonnet
166 projects
Makefile
30231 projects

Robokops

TL;DR

robokops --config example/ --terraform apply --action deploy --target cluster-init --target cluster-autoscaler --target dashboard --target monitoring --target elastic-stack

Checkout the Getting started guide for details on how to set up example

Introduction

Robokops is an opensource product developped by Scalair that helps you to manage Kubernetes clusters and deploy common features.

With Robokops, you can easily automate:

  • Creation & destruction of Kubernetes cluster
  • Deployment of Prometheus Operator
  • Deployment of an Elastic stack
  • Deployment of an ingress
  • Management of DNS
  • etc...

Your clusters can either be hosted and managed by us or you can use that product to build and manage your owns.

Terraform

Robokops is managing infrastructure using Terraform wrapped by Terragrunt. Robokops does not have its own way of creating clusters, instead its relaying on existing Terraform modules to do so. The only thing Robokops is doing here is calling the code. You can still use this product's features if you have existing clusters or if you manage them with something else than Terraform. More info in terraform.

K8s

Robokops has a set a prepacked features ready to deploy to solve common problems. Robokops abstract the complexity of deploying features by providing a common interface to manage all of them. More info in k8s.

Docker

All features deployed by Robokops are deployed using Docker containers. Containers have been chosen because they provide identical environments to run commands, such as terraform, kubectl or helm. All containers are based on the same image defined in docker.

Getting started

Getting started guide.

Robokops parameters

Here is the list of parameters for robokops:

Name Description Required
config Customer configuration folder. Checkout example for more details. yes
terraform Plan, apply or destroy infrastructure. Choose between plan, apply or destroy no
action Action to execute. Choose between: deploy, delete or dry-run no
target Targets of the action. If not provided will execute against all matching configuration folders no
env Define environment variables to pass to containers. You can use --env all to map all env vars available in your OS context no
ssh Path of the .ssh directory (use only by Terraform to clone private modules) no
network Network mode to use for the containers: default, host, none no
dev Add this flag to use local docker image instead of the remote registry no
version Return the installed version of Robokops no

Changelog

See CHANGELOG.md

Release

Features

In order to release features, a pull request must be made, with a specific branch format:

  • base/x.y.z for robokops-base image (docker/ folder)
  • terraform/x.y.z for robokops-terraform image (terraform/ folder)
  • <feature name>/x.y.z for all other features images (k8s/ folder)

Robokops

Robokops release is triggered when a tag with x.y.z format is pushed.

Documentation

The documentation can be find in docs

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].