55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
## Setup MetalLb repo
|
|
helm repo add metallb https://metallb.github.io/metallb
|
|
helm repo update
|
|
helm install metallb metallb/metallb -n metallb-system --create-namespace
|
|
|
|
echo "Waiting for all the pods to start..."
|
|
|
|
kubectl wait --namespace metallb-system \
|
|
--for=condition=Ready pod \
|
|
--all \
|
|
--timeout=120s
|
|
|
|
## Apply the load-balancer IPs
|
|
kubectl apply -f manifests/metallb/metallb-config.yaml
|
|
|
|
## Setup traefik repo
|
|
helm repo add traefik https://traefik.github.io/charts
|
|
helm repo update
|
|
helm install \
|
|
traefik traefik/traefik \
|
|
-n traefik \
|
|
-f ./manifests/traefik/values.yaml \
|
|
--create-namespace
|
|
|
|
## Setup certmanager repo
|
|
helm repo add jetstack https://charts.jetstack.io
|
|
helm repo update
|
|
helm install \
|
|
cert-manager jetstack/cert-manager \
|
|
-n cert-manager \
|
|
-f ./manifests/certmanager/values.yaml \
|
|
--create-namespace
|
|
|
|
## Set up the cloudflare API token.
|
|
|
|
kubectl apply -f ./manifests/certmanager/issuer-secret.yaml
|
|
kubectl apply -f ./manifests/certmanager/issuer.yaml
|
|
|
|
## Setup longhorn repo
|
|
helm repo add longhorn https://charts.longhorn.io
|
|
helm repo update
|
|
helm install longhorn longhorn/longhorn -n longhorn-system --create-namespace
|
|
|
|
echo "Waiting for all the pods to start..."
|
|
|
|
kubectl wait --namespace longhorn-system \
|
|
--for=condition=Ready pod \
|
|
--all \
|
|
--timeout=120s
|
|
|
|
## Apply ingress rule and certificate
|
|
kubectl apply -f manifests/longhorn/certificate.yaml
|
|
kubectl apply -f manifests/longhorn/ingress.yaml |