Skip to content

Manage Kubernetes clusters and deploy common features

License

Notifications You must be signed in to change notification settings

scalair/robokops

Repository files navigation

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