|
| 1 | +# KubeAid Bootstrap |
| 2 | + |
| 3 | +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. |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- **Multi-Cloud Support**: Easily deploy on AWS (Self-managed, EKS), Azure (AKS and self-managed), Hetzner (Cloud, Robot, and Hybrid), and local environments. |
| 8 | +- **Latest Kubernetes Version**: Always set up the latest stable version of Kubernetes. |
| 9 | +- **GitOps Workflow**: Manage your cluster configuration and deployments using GitOps principles. |
| 10 | +- **Integrated Tools**: |
| 11 | + - **Keycloak**: For identity and access management. |
| 12 | + - **ArgoCD**: For continuous delivery and GitOps. |
| 13 | + - **Cert-Manager**: For managing TLS certificates. |
| 14 | + - **Kube-Prometheus**: For monitoring and alerting. |
| 15 | + |
| 16 | +## Getting Started |
| 17 | + |
| 18 | +Follow these steps to set up your Kubernetes cluster: |
| 19 | + |
| 20 | +### Prerequisites |
| 21 | + |
| 22 | +- A cloud account for your chosen provider (AWS, Azure, Hetzner). |
| 23 | +- `kubectl` installed on your local machine. |
| 24 | +- `git` installed on your local machine. |
| 25 | +- `docker` installed on your local machine. |
| 26 | +- `jsonnet` installed on your local machine. |
| 27 | +- `kubeseal` installed on your local machine. |
| 28 | +- `k3d` installed on your local machine. |
| 29 | +- Access to a terminal or command line interface. |
| 30 | + |
| 31 | +NOTE: You can also run the ./scripts/install-runtime-dependencies.sh |
| 32 | + |
| 33 | +- A git repo to hold your custom settings for your cluster, [kubeaid-config](https://github.com/Obmondo/kubeaid-config) |
| 34 | + |
| 35 | +### Quick Setup |
| 36 | + |
| 37 | +1. **Download the compose file**: |
| 38 | + ```bash |
| 39 | + wget https://raw.githubusercontent.com/Obmondo/kubeaid-bootstrap-script/refs/heads/main/docker-compose.yaml |
| 40 | + ``` |
| 41 | + |
| 42 | +2. **Configure Your Environment**: |
| 43 | + ```raw |
| 44 | + # cat .env |
| 45 | + CLOUD_PROVIDER=local |
| 46 | + #FLAVOR=hcloud |
| 47 | + CLUSTER_NAME=kubeaid-demo |
| 48 | + ``` |
| 49 | + |
| 50 | +3. **Deploy the local Cluster**: |
| 51 | + - Run the docker compose: |
| 52 | + ```bash |
| 53 | + docker compose run bootstrap-cluster |
| 54 | + ``` |
| 55 | + |
| 56 | +4. **Access Your Cluster**: |
| 57 | + - Once the setup is complete, you can access your Kubernetes cluster using `kubectl`: |
| 58 | + ```bash |
| 59 | + export KUBECONFIG=./outputs/kubeconfigs/main.yaml |
| 60 | + kubectl get nodes |
| 61 | + ``` |
| 62 | + |
| 63 | +5. **Access Keycloak, ArgoCD, and Monitoring**: |
| 64 | + - Follow the instructions in the [KubeAid](https://github.com/Obmondo/kubeaid) to access and configure Keycloak, ArgoCD, and Kube-Prometheus. |
| 65 | + - Example: ArgoCD |
| 66 | + ```bash |
| 67 | + kubectl port-forward svc/argocd-server --namespace argo-cd 8080:443 |
| 68 | + ``` |
| 69 | + |
| 70 | +6. **Destroy** |
| 71 | + - When you are done playing |
| 72 | + ```bash |
| 73 | + k3d cluster delete kubeaid-demo |
| 74 | + ``` |
| 75 | + |
| 76 | +## Cloud Provider Support |
| 77 | + |
| 78 | +- **AWS**: Self-managed and EKS |
| 79 | +- **Azure**: AKS and self-managed |
| 80 | +- **Hetzner**: Cloud, Robot, and Hybrid |
| 81 | +- **Local**: Minikube or other local setups |
| 82 | + |
| 83 | +## Contributing |
| 84 | + |
| 85 | +We welcome contributions! |
| 86 | +Guidelines coming soon!! |
| 87 | + |
| 88 | +## License |
| 89 | + |
| 90 | +This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. |
| 91 | + |
| 92 | +## Support |
| 93 | + |
| 94 | +If you encounter any issues or have questions, please open an issue in the GitHub repository or reach out to the community. |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +Get your Kubernetes cluster up and running in no time with KubeAid Bootstrap! Happy clustering! 🚀 |
0 commit comments