#!/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