Files
k8s/helm-deploy.sh
2025-06-29 21:05:35 +02:00

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