65 lines
1.4 KiB
Bash
65 lines
1.4 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
|
||
|
|
# Exit immediately if a command exits with a non-zero status.
|
||
|
|
set -e
|
||
|
|
|
||
|
|
TMPFILE=$(mktemp /tmp/traefik-values-XXXXXX.yaml)
|
||
|
|
|
||
|
|
|
||
|
|
cat > "$TMPFILE" <<EOF
|
||
|
|
ingressClass:
|
||
|
|
enabled: true
|
||
|
|
isDefaultClass: true
|
||
|
|
ports:
|
||
|
|
web:
|
||
|
|
port: 80
|
||
|
|
hostPort: 80
|
||
|
|
websecure:
|
||
|
|
port: 443
|
||
|
|
hostPort: 443
|
||
|
|
traefik:
|
||
|
|
port: 9000
|
||
|
|
api:
|
||
|
|
dashboard: true
|
||
|
|
insecure: true
|
||
|
|
ingressRoute:
|
||
|
|
dashboard:
|
||
|
|
enabled: true
|
||
|
|
ping: true
|
||
|
|
log:
|
||
|
|
level: INFO
|
||
|
|
service:
|
||
|
|
enabled: true
|
||
|
|
type: ClusterIP
|
||
|
|
annotations: {}
|
||
|
|
ports:
|
||
|
|
web:
|
||
|
|
port: 80
|
||
|
|
protocol: TCP
|
||
|
|
targetPort: web
|
||
|
|
websecure:
|
||
|
|
port: 443
|
||
|
|
protocol: TCP
|
||
|
|
targetPort: websecure
|
||
|
|
EOF
|
||
|
|
|
||
|
|
|
||
|
|
if helm status traefik --namespace traefik &> /dev/null; then
|
||
|
|
echo "Traefik is already installed in the 'traefik' namespace. Upgrading..."
|
||
|
|
helm upgrade traefik traefik/traefik --namespace traefik -f "$TMPFILE"
|
||
|
|
else
|
||
|
|
echo "Installing Traefik..."
|
||
|
|
helm repo add traefik https://traefik.github.io/charts
|
||
|
|
helm repo update
|
||
|
|
# Using --create-namespace is good practice, though traefik will always exist.
|
||
|
|
helm install traefik traefik/traefik --namespace traefik --create-namespace -f "$TMPFILE"
|
||
|
|
fi
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
# echo
|
||
|
|
# echo "To access the dashboard:"
|
||
|
|
# echo "kubectl port-forward -n traefik \$(kubectl get pods -n traefik -l \"app.kubernetes.io/name=traefik\" -o name) 9000:9000"
|
||
|
|
# echo "Then visit http://localhost:9000/dashboard/ in your browser"
|
||
|
|
|