Skip to content

Commit 3a5eb8a

Browse files
committed
Merge pull request 'doc: streamlined the bootstrap readme' (#149) from adding-wiki-for-kubeaid-bootstrap into main
Reviewed-on: https://gitea.obmondo.com/EnableIT/kubeaid-bootstrap-script/pulls/149
2 parents cce8e84 + d497649 commit 3a5eb8a

File tree

4 files changed

+145
-38
lines changed

4 files changed

+145
-38
lines changed

README.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
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! 🚀

docker-compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ services:
2828
- -c
2929
- |
3030
mkdir -p /outputs
31-
kubeaid-bootstrap-script cluster bootstrap --management-cluster-name ${CLUSTER_NAME} ${CLOUD_PROVIDER}
31+
kubeaid-bootstrap-script cluster bootstrap --skip-pr-flow --management-cluster-name ${CLUSTER_NAME} ${CLOUD_PROVIDER}
3232
volumes:
3333
- ./outputs:/outputs
3434
- /var/run/docker.sock:/var/run/docker.sock

docs/hetzner.md

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,7 @@
11
# Hetzner KubeAid managed cluster
22

3-
## Installation
4-
5-
* Download the compose file
6-
```sh
7-
wget https://raw.githubusercontent.com/Obmondo/kubeaid-bootstrap-script/refs/heads/main/docker-compose.yaml
8-
```
9-
10-
* Add the cloud provider and flavour
11-
12-
```
13-
cat .env
14-
CLOUD_PROVIDER=hetzner
15-
FLAVOR=hcloud
16-
```
17-
18-
* Generate the config, which will be created under `./outputs/configs`
19-
20-
```sh
21-
docker compose run bootstrap-generate
22-
```
23-
243
## Choose your flavor
254

265
* [Hcloud](./hetzner/hcloud.md)
276
* [Robot](./hetzner/robot.md)
287
* [Hybrid](./hetzner/hybrid.md)
29-
30-
* Get your KUBECONFIG
31-
32-
```sh
33-
cat ./outputs/kubeconfigs/main.yaml
34-
export KUBECONFIG=./outputs/kubeconfigs/main.yaml
35-
```
36-
37-
## Destroy
38-
39-
* When you want to destroy the cluster
40-
41-
```sh
42-
docker compose down
43-
k3d cluster delete management-cluster
44-
```

docs/local.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Hetzner KubeAid managed cluster
2+
3+
## Installation
4+
5+
* Download the compose file
6+
```sh
7+
wget https://raw.githubusercontent.com/Obmondo/kubeaid-bootstrap-script/refs/heads/main/docker-compose.yaml
8+
```
9+
10+
* Add the cloud provider and flavour
11+
12+
```
13+
# cat .env
14+
CLOUD_PROVIDER=hetzner
15+
FLAVOR=hcloud
16+
CLUSTER_NAME=kubeaid-demo
17+
```
18+
19+
* Generate the config, which will be created under `./outputs/configs`
20+
21+
```sh
22+
docker compose run bootstrap-generate
23+
```
24+
25+
## Choose your flavor
26+
27+
* [Hcloud](./hetzner/hcloud.md)
28+
* [Robot](./hetzner/robot.md)
29+
* [Hybrid](./hetzner/hybrid.md)
30+
31+
## Access your cluster
32+
33+
* Get your KUBECONFIG
34+
35+
```sh
36+
cat ./outputs/kubeconfigs/main.yaml
37+
export KUBECONFIG=./outputs/kubeconfigs/main.yaml
38+
```
39+
40+
## Destroy
41+
42+
* When you want to destroy the cluster
43+
44+
```sh
45+
k3d cluster delete kubeaid-demo
46+
```

0 commit comments

Comments
 (0)