beiboot
beiboot copied to clipboard
Getdeck Beiboot is a Kubernetes-in-Kubernetes solution :rocket: It allows creating multiple logical Kubernetes environments within one :arrow_right: physical host cluster.

Getdeck Beiboot
Getdeck Beiboot is a Kubernetes-in-Kubernetes solution. It allows managing, snapshotting, and restoring many logical Kubernetes environments running on top of one physical host cluster.
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
-
About The Project
- Features
- What is hybrid cloud development?
- Kubernetes-in-Kubernetes
- Built with
-
Getting Started
- Install the operator to the Kubernetes host cluster
- Usage
- License
- Reporting bugs
- Acknowledgments
About the project
The Problem
With complex application landscapes, running Kubernetes-based workloads locally becomes infeasible. Swiftly testing applications with different Kubernetes versions can be impossible depending on organizational policies. Spinning up a Kubernetes cluster with Terraform or Cloud providers takes to long for a convenient development workflow or CI pipelines.
The Solution
With Beiboot you only need one host Kubernetes cluster that runs the Getdeck Beiboot operator. Beiboot creates Kubernetes clusters as deployments in a matter of seconds. The operator creates several ways to connect to that cluster and makes it simple to get started working with Kubernetes.
Features
Beiboot offers:
- to create a fresh ad-hoc Kubernetes cluster in seconds (much faster than Terraform or Cloud-provider)
- automatic management of Beiboot clusters (via lifetime, inactivity, etc.)
- shelve ("snapshot") a running Beiboot cluster with state and restore them as often as needed
- run isolated workloads within Kubernetes; cheap and with the best resource utilization
- automatic distribution of kubeconfig and tunnel connection to clients (using the Beiboot client package)
- built-in support for Gefyra
Kubernetes-in-Kubernetes
There are many use-cases running a logical ("virtual") Kubernetes cluster within a physical Kubernetes cluster. The main focus of Beiboot is the on-demand creation of Kubernetes clusters for development and testing purposes. Beiboot has potential for other scenarios, too. For example, strong workload isolation, multi-tenancy, CI, security and more.
Beiboot comes with a Kubernetes operator that handles the ad-hoc logical clusters based on the requested parameters. This includes the Kubernetes version, the way of exposing the cluster, lifetime and so on. It can also snapshop ("shelve") and restore a cluster many times.

(back to top)
Built with
Beiboot builds on top of the following popular open-source technologies:
k3s
k3s is the foundation for the logical Kubernetes clusters.
Docker
Docker is currently used in order to run the proxy setup for clients.
Kopf Framework
Kopf a framework to write Python-based Kubernetes operators.
(back to top)
Getting Started
beibootctl
Please download the latest version of beibootctl
from the GitHub release section and add it to your path.
Install the operator to the Kubernetes host cluster
Install the Getdeck Beiboot operator with:
beibootctl install | kubectl apply -f -
This creates the target namespace getdeck
for the operator and kubernetes extension (CRD) beiboot, beiboots, bbt
.
For more information about the installation, check out the docs.
Usage
There are multiple ways you can manage Beiboot in a Kubernetes host cluster. The clients of Beiboot create a mTLS secured connection, making the Beiboot cluster become available on localhost. That way, Beiboot feels like it would run on the developer's machiene.

Using beibootctl
The static binary beibootctl
is created for Beiboot administrators. It allows to create, delete, inspect Beiboot clusters and connect to them. Please check out the documentation.

Beiboot Python client
Getdeck Beiboot comes with a Python client. You find it in this repository under client/
or on PyPI. The API offers many functions to manage Beiboot and establish a local connection to Beiboot clusters.
Using Poetry
Important: Using Poetry is only intended for development and testing purposes of Beiboot itself. You can use it like so:
poetry run beibootctl ...
API documentation
Coming soon.
Getdeck CLI
Beiboot will soon be integrated with Getdeck as a new "provider", so you can use Deckfiles as origin for Beiboots.
Beiboot Desktop
We're currently working on releasing a desktop client for end users of Beiboot, e.g. developers and testers.
(back to top)
License
Distributed under the Apache License 2.0. See LICENSE
for more information.
(back to top)
Reporting bugs
If you encounter issues, please create a new issue on GitHub or talk to us on the Unikube Slack channel.
(back to top)
Acknowledgments
Getdeck Beiboot is sponsored by the Blueshoe GmbH. Beiboot heavily relies on the work of Rancher k3s.
(back to top)