Introduce Infrastructure Providers to Krake

This issue is dedicated on tracking the status of the implementation of so called Infrastructure Providers. Overall goal: give Krake the ability to trigger the instanciation of new VMs + K8s cluster through third party infrastructure providing software.

New Components:

  • Infrastructure Controller

Affected Components:

  • Infrastructure Controller
  • Krake API
  • Scheduler
  • Kubernetes Cluster Controller
  • ...

General Description: We planned to integrate these providers based on or similar to the Krake Metrics Provider logic. That means we can create several endpoints to talk with several third party infrastructure providing tools. In the moment there are two known tools we want to integrate:

With the integration of these tools, Krake should be able to create new VMs with K8s clusters automatically or through manual user interaction. This gives Krake some scalability.

Technical Details: Several steps are required to achieve the full functionality of this feature.

  • rework of the CLI tool rok, create vs. register clusters + new flags #495 (closed)
  • add a new API group called infrastructure, generate its server, and client code bases, and adjust rok CLI #496 (closed)
  • build a new Infrastructure Controller #497 (closed)
  • create Infrastructure Manager templates (to roll out new infrastructure) #498 (closed)
  • update Krake architecture diagram (include Infrastructure Provider/Controller #500 (closed)
  • create e2e tests for a new Infrastructure Controller #505 (closed)
  • create OpenStack CAPI Provider templates
  • create Yaook CAPI Provider templates
  • include an automated scale down (destruction of cluster VMs) process
  • automated scale up/down based on custom metrics/triggers

Currently there are 4 goals that need to be achieved.

  • 1. goal: manually trigger cluster creation via Krake + Infrastructure Provider
  • 2. goal: automatically create another cluster and reschedule workload
  • 3. goal: automatically scale a cluster
  • 4. goal: automatically scale down clusters based on triggers inside cluster

In the comment section of this issue you will find some drawings showing some details. This is an umbrella issue, please create sub issues as needed and link them with this issue.

Edited by Patrick Thiem