readme command line usage - to specify pipeline file name readme updated to include reasoning behind the project use native golang sqlite RunScriptCommand named in functionMap removed unused functions removed unused functions run script and pipeline example renamed functions to drop the word script and add pipeline verb
168 lines
No EOL
3.4 KiB
Bash
Executable file
168 lines
No EOL
3.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
if kubectl -n traefik get pods --no-headers 2>/dev/null | grep -q 'Running'; then
|
|
echo "Traefik is already running in the 'traefik' namespace. Upgrading instead."
|
|
|
|
# Create a temporary values file for more complex configuration
|
|
cat > /tmp/traefik-values.yaml <<EOF
|
|
ports:
|
|
web:
|
|
port: 80
|
|
websecure:
|
|
port: 443
|
|
traefik:
|
|
port: 9000
|
|
turn-tcp:
|
|
port: 1194
|
|
exposedPort: 1194
|
|
protocol: TCP
|
|
turn-udp:
|
|
port: 1194
|
|
exposedPort: 1194
|
|
protocol: UDP
|
|
entryPoints:
|
|
turn-tcp:
|
|
address: ":1194/tcp"
|
|
turn-udp:
|
|
address: ":1194/udp"
|
|
api:
|
|
dashboard: true
|
|
insecure: true
|
|
ingressRoute:
|
|
dashboard:
|
|
enabled: true
|
|
ping: true
|
|
log:
|
|
level: INFO
|
|
# Add this service section to expose the ports properly
|
|
service:
|
|
enabled: true
|
|
type: LoadBalancer
|
|
annotations: {}
|
|
ports:
|
|
web:
|
|
port: 80
|
|
protocol: TCP
|
|
targetPort: web
|
|
websecure:
|
|
port: 443
|
|
protocol: TCP
|
|
targetPort: websecure
|
|
turn-tcp:
|
|
port: 1194
|
|
protocol: TCP
|
|
targetPort: turn-tcp
|
|
turn-udp:
|
|
port: 1194
|
|
protocol: UDP
|
|
targetPort: turn-udp
|
|
EOF
|
|
|
|
helm upgrade traefik traefik/traefik --namespace traefik -f /tmp/traefik-values.yaml
|
|
|
|
else
|
|
echo "Installing Traefik..."
|
|
|
|
helm repo add traefik https://traefik.github.io/charts
|
|
helm repo update
|
|
|
|
# Create a temporary values file for more complex configuration
|
|
cat > /tmp/traefik-values.yaml <<EOF
|
|
ports:
|
|
web:
|
|
port: 80
|
|
websecure:
|
|
port: 443
|
|
traefik:
|
|
port: 9000
|
|
turn-tcp:
|
|
port: 1194
|
|
exposedPort: 1194
|
|
protocol: TCP
|
|
turn-udp:
|
|
port: 1194
|
|
exposedPort: 1194
|
|
protocol: UDP
|
|
entryPoints:
|
|
turn-tcp:
|
|
address: ":1194/tcp"
|
|
turn-udp:
|
|
address: ":1194/udp"
|
|
api:
|
|
dashboard: true
|
|
insecure: true
|
|
ingressRoute:
|
|
dashboard:
|
|
enabled: true
|
|
ping: true
|
|
log:
|
|
level: INFO
|
|
# Add the service section here too for new installations
|
|
service:
|
|
enabled: true
|
|
type: LoadBalancer
|
|
annotations: {}
|
|
ports:
|
|
web:
|
|
port: 80
|
|
protocol: TCP
|
|
targetPort: web
|
|
websecure:
|
|
port: 443
|
|
protocol: TCP
|
|
targetPort: websecure
|
|
turn-tcp:
|
|
port: 1194
|
|
protocol: TCP
|
|
targetPort: turn-tcp
|
|
turn-udp:
|
|
port: 1194
|
|
protocol: UDP
|
|
targetPort: turn-udp
|
|
EOF
|
|
|
|
helm install traefik traefik/traefik --namespace traefik --create-namespace -f /tmp/traefik-values.yaml
|
|
fi
|
|
|
|
|
|
|
|
cat > traefik-turn-service.yaml << EOF
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: traefik-turn
|
|
namespace: traefik
|
|
labels:
|
|
app.kubernetes.io/instance: traefik-traefik
|
|
app.kubernetes.io/name: traefik
|
|
spec:
|
|
type: LoadBalancer
|
|
ports:
|
|
- name: turn-tcp
|
|
port: 1194
|
|
protocol: TCP
|
|
targetPort: turn-tcp
|
|
- name: turn-udp
|
|
port: 1194
|
|
protocol: UDP
|
|
targetPort: turn-udp
|
|
selector:
|
|
app.kubernetes.io/instance: traefik-traefik
|
|
app.kubernetes.io/name: traefik
|
|
EOF
|
|
|
|
kubectl apply -f traefik-turn-service.yaml
|
|
|
|
rm -f traefik-turn-service.yaml
|
|
|
|
|
|
|
|
|
|
|
|
echo "Don't forget to create TCP and UDP ingress routes for the TURN server with:"
|
|
echo "kubectl apply -f k8s-manifests/galene/ingressroute-tcp.yaml"
|
|
echo "kubectl apply -f k8s-manifests/galene/ingressroute-udp.yaml"
|
|
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" |