Basic Considerations
This section describes the installation methods and the connection requirements.
Methods
You can either install the Beiboot operator with beibootctl
(recommended) or by applying the required Kubernetes configs from pre-generated YAML files.
If you are running a managed Kubernetes cluster head over to their specific documentation:
Especially, if you are running the host clusters in a cloud environment, you can leverage their dynamic resource provisioning for your team. Once a new Beiboot cluster is ordered, but there is not enough capacity in the host cluster, you can make use of the node autoscaler and dynamically request new Kubernetes nodes for the host cluster.
Connection Requirements
Currently, clients (developers) connect to a Beiboot cluster using a NodePort service in the host cluster. Hence, the default port range to the Kubernetes nodes from the host cluster must be reachable by the clients (for TCP and UDP traffic). Beiboot randomly assigns node ports on the host cluster for all "forwarded ports" of a Beiboot cluster. We are working on a solution to make this also possible using load balancer.
Beiboot Kubernetes Components
The following components are created in the host cluster as part of Beiboot:
- a namespace (default is
getdeck
) - a service account called
beiboot-operator
- a cluster role and cluster role binding
- the deployment for the operator
- a configmap called
beiboot-config
storing the global configuration - a validatingwebhookconfiguration for Beiboot's validation
The operator itself registers a few additional Kubernetes objects, for example the beiboot
and shelf
custom resource
definitions (CRD).
Remove Beiboot from the Cluster
The best way to safely uninstall Beiboot is to run:
# be sure to have the right kubeconfig/context set
beibootctl uninstall
This will call a couple of different triggers to make sure everything will be removed, including
remaining namespaces, Beiboot clusters and others.
Alternatively, you could "reverse" the installation by running:
kubectl delete -f https://raw.githubusercontent.com/Getdeck/beiboot/main/operator/manifests/beiboot.yaml
with one of the pre-generated YAML configs.
Finally, you can uninstall the operator by removing the getdeck
namespace:
kubectl delete ns getdeck
The operator will catch the termination signal and delete its Kubernetes extensions. This way potentially leaves some remaining components.