KubeAid Bootstrap
Welcome to the KubeAid Bootstrap repository! This project aims to simplify the process of setting up a Kubernetes (K8s) cluster across multiple cloud providers. With KubeAid Bootstrap, you can get your cluster up and running in just 10 minutes, complete with essential tools like Keycloak, ArgoCD, Cert-Manager, and monitoring via Kube-Prometheus.
Features
- Multi-Cloud Support: Easily deploy on AWS (Self-managed, EKS), Azure (AKS and self-managed), Hetzner (Cloud, Robot, and Hybrid), and local environments.
- Latest Kubernetes Version: Always set up the latest stable version of Kubernetes.
- GitOps Workflow: Manage your cluster configuration and deployments using GitOps principles.
- Integrated Tools:
- Keycloak: For identity and access management.
- ArgoCD: For continuous delivery and GitOps.
- Cert-Manager: For managing TLS certificates.
- Kube-Prometheus: For monitoring and alerting.
Getting Started
Follow these steps to set up your Kubernetes cluster:
Prerequisites
- A cloud account for your chosen provider (AWS, Azure, Hetzner).
kubectl installed on your local machine.
git installed on your local machine.
docker installed on your local machine.
jsonnet installed on your local machine.
kubeseal installed on your local machine.
k3d installed on your local machine.
- Access to a terminal or command line interface.
NOTE: You can also run the ./scripts/install-runtime-dependencies.sh
- A git repo to hold your custom settings for your cluster, kubeaid-config
Quick Setup
-
Download the compose file:
wget https://raw.githubusercontent.com/Obmondo/kubeaid-bootstrap-script/refs/heads/main/docker-compose.yaml
-
Configure Your Environment:
# vim .env
CLOUD_PROVIDER=local
CLUSTER_NAME=kubeaid-demo
-
Generate the config:
- Run the compose to generate the config, it will drop the file in /outputs/config
docker compose run bootstrap-generate
-
Fix the config based on your requirements:
- kubeaid-config git repo in general.yaml
forkURLs:
kubeaidConfig: https://github.com/xxxxxxxx/kubeaid-config.git
-
Deploy the local Cluster:
docker compose run bootstrap-cluster
-
Access Your Cluster:
- Once the setup is complete, you can access your Kubernetes cluster using
kubectl:
export KUBECONFIG=./outputs/kubeconfigs/main.yaml
kubectl get nodes
-
Access Keycloak, ArgoCD, and Monitoring:
- Follow the instructions in the KubeAid to access and configure Keycloak, ArgoCD, and Kube-Prometheus.
- Example: ArgoCD
kubectl port-forward svc/argocd-server --namespace argo-cd 8080:443
-
Destroy
- When you are done playing
k3d cluster delete kubeaid-demo
Cloud Provider Support
-
AWS: Self-managed and EKS
-
Azure: AKS and self-managed
-
Hetzner: Cloud, Robot, and Hybrid
-
Local: Minikube or other local setups
Contributing
We welcome contributions!
Guidelines coming soon!!
License
This project is licensed under the MIT License. See the LICENSE file for details.
Support
If you encounter any issues or have questions, please open an issue in the GitHub repository or reach out to the community.
Get your Kubernetes cluster up and running in no time with KubeAid Bootstrap! Happy clustering! 🚀