mirror of
https://gitlab.kube.huskypup.net/Scooby/Homelabv4.git
synced 2026-08-20 23:16:49 +00:00
Initial commit
This commit is contained in:
Executable
+100
@@ -0,0 +1,100 @@
|
||||
#!/bin/bash
|
||||
# scripts/fix-gitlab-auth.sh
|
||||
# Fix GitLab authentication issues by refreshing passwords
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== GitLab Authentication Fix ==="
|
||||
echo "This script fixes the 500 errors caused by password synchronization issues"
|
||||
|
||||
# Function to restart deployment and wait
|
||||
restart_deployment() {
|
||||
local deployment=$1
|
||||
local namespace=$2
|
||||
|
||||
echo "Restarting $deployment in $namespace..."
|
||||
kubectl rollout restart deployment/$deployment -n $namespace
|
||||
kubectl rollout status deployment/$deployment -n $namespace --timeout=120s
|
||||
}
|
||||
|
||||
# 1. Refresh database secrets
|
||||
echo "Step 1: Refreshing database secrets..."
|
||||
kubectl delete secret pg-gitlab-app -n gitlab --ignore-not-found=true
|
||||
echo "Waiting for database secret to be recreated..."
|
||||
for i in {1..30}; do
|
||||
if kubectl -n gitlab get secret pg-gitlab-app >/dev/null 2>&1; then
|
||||
echo "✓ Database secret recreated"
|
||||
break
|
||||
fi
|
||||
echo " waiting... (attempt $i/30)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
# 2. Refresh Redis secrets
|
||||
echo "Step 2: Refreshing Redis secrets..."
|
||||
kubectl delete secret redis-gitlab-secret -n gitlab --ignore-not-found=true
|
||||
echo "Waiting for Redis secret to be recreated..."
|
||||
for i in {1..30}; do
|
||||
if kubectl -n gitlab get secret redis-gitlab-secret >/dev/null 2>&1; then
|
||||
echo "✓ Redis secret recreated"
|
||||
break
|
||||
fi
|
||||
echo " waiting... (attempt $i/30)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
# 3. Trigger PostgreSQL reload
|
||||
echo "Step 3: Reloading PostgreSQL clusters..."
|
||||
kubectl annotate cluster pg-gitlab -n gitlab cnpg.io/reload=$(date +%s) --overwrite
|
||||
kubectl annotate cluster pg-praefect -n gitlab cnpg.io/reload=$(date +%s) --overwrite
|
||||
|
||||
# 4. Restart Redis
|
||||
echo "Step 4: Restarting Redis..."
|
||||
kubectl rollout restart statefulset/redis-gitlab -n gitlab
|
||||
kubectl rollout status statefulset/redis-gitlab -n gitlab --timeout=120s
|
||||
|
||||
# 5. Restart GitLab services
|
||||
echo "Step 5: Restarting GitLab services..."
|
||||
restart_deployment "gitlab-webservice-default" "gitlab"
|
||||
restart_deployment "gitlab-sidekiq-all-in-1-v2" "gitlab"
|
||||
restart_deployment "gitlab-toolbox" "gitlab"
|
||||
|
||||
# 6. Verify GitLab is working
|
||||
echo "Step 6: Verifying GitLab functionality..."
|
||||
sleep 30
|
||||
|
||||
# Test GitLab health endpoint
|
||||
for i in {1..10}; do
|
||||
HTTP_CODE=$(curl -k -s -o /dev/null -w "%{http_code}" https://gitlab.kube.huskypup.net/-/readiness)
|
||||
if [ "$HTTP_CODE" = "200" ]; then
|
||||
echo "✓ GitLab is responding correctly"
|
||||
break
|
||||
fi
|
||||
echo " waiting for GitLab to be ready... (attempt $i/10) - HTTP $HTTP_CODE"
|
||||
sleep 10
|
||||
done
|
||||
|
||||
# Test main page
|
||||
HTTP_CODE=$(curl -k -s -o /dev/null -w "%{http_code}" https://gitlab.kube.huskypup.net)
|
||||
if [ "$HTTP_CODE" = "302" ]; then
|
||||
echo "✓ GitLab main page is working (redirecting to login as expected)"
|
||||
elif [ "$HTTP_CODE" = "200" ]; then
|
||||
echo "✓ GitLab main page is working"
|
||||
else
|
||||
echo "⚠ GitLab main page returned HTTP $HTTP_CODE (may still be starting)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "===================================================================="
|
||||
echo "GitLab Authentication Fix Complete"
|
||||
echo "===================================================================="
|
||||
echo "✓ Database secrets refreshed"
|
||||
echo "✓ Redis secrets refreshed"
|
||||
echo "✓ PostgreSQL clusters reloaded"
|
||||
echo "✓ Redis restarted"
|
||||
echo "✓ GitLab services restarted"
|
||||
echo ""
|
||||
echo "GitLab should now be accessible at: https://gitlab.kube.huskypup.net"
|
||||
echo "If you still see 500 errors, check the logs with:"
|
||||
echo " kubectl logs -n gitlab -l app=webservice --tail=20"
|
||||
echo "===================================================================="
|
||||
Reference in New Issue
Block a user