68 lines
2.3 KiB
Bash
Executable File
68 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# scripts/fast-deploy-console
|
|
# Quickly updates Console, Authelia, and Ingress-Nginx bypassing CI/CD.
|
|
|
|
ENV=${1:-staging}
|
|
|
|
# Use the directory where the script is located to find the project root
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
|
|
|
|
echo "🚀 Fast-deploying infra components to $ENV..."
|
|
echo "📍 Project Root: $PROJECT_ROOT"
|
|
|
|
# Function to adopt existing resources into Helm
|
|
adopt_resource() {
|
|
local kind=$1
|
|
local name=$2
|
|
local ns=$3
|
|
local release=$4
|
|
|
|
if kubectl get "$kind" "$name" -n "$ns" &>/dev/null; then
|
|
echo "🏗️ Adopting $kind/$name into Helm release $release..."
|
|
kubectl label "$kind" "$name" -n "$ns" "app.kubernetes.io/managed-by=Helm" --overwrite
|
|
kubectl annotate "$kind" "$name" -n "$ns" "meta.helm.sh/release-name=$release" --overwrite
|
|
kubectl annotate "$kind" "$name" -n "$ns" "meta.helm.sh/release-namespace=$ns" --overwrite
|
|
fi
|
|
}
|
|
|
|
# 1. Update Authelia
|
|
echo "📦 Updating Authelia..."
|
|
# Adopt all resources including PVCs
|
|
adopt_resource secret authelia-secrets authelia authelia
|
|
adopt_resource configmap authelia-config authelia authelia
|
|
adopt_resource service authelia authelia authelia
|
|
adopt_resource deployment authelia authelia authelia
|
|
adopt_resource ingress authelia authelia authelia
|
|
adopt_resource pvc authelia-data authelia authelia
|
|
|
|
helm upgrade --install authelia "$PROJECT_ROOT/k8s/authelia" \
|
|
--namespace authelia \
|
|
--create-namespace \
|
|
-f "$PROJECT_ROOT/k8s/authelia/values.yaml" \
|
|
-f "$PROJECT_ROOT/k8s/authelia/values-$ENV.yaml"
|
|
|
|
# 2. Update Console (The Wiki)
|
|
echo "📦 Updating Console..."
|
|
adopt_resource secret console-html console console
|
|
adopt_resource service console console console
|
|
adopt_resource deployment console console console
|
|
adopt_resource ingress console console console
|
|
|
|
helm upgrade --install console "$PROJECT_ROOT/k8s/console" \
|
|
--namespace console \
|
|
--create-namespace \
|
|
-f "$PROJECT_ROOT/k8s/console/values-$ENV.yaml"
|
|
|
|
# 3. Optional: Update Ingress-Nginx
|
|
if [[ "$2" == "--with-ingress" ]]; then
|
|
echo "📦 Updating Ingress-Nginx..."
|
|
kubectl rollout restart deployment/ingress-nginx-controller -n ingress-nginx
|
|
fi
|
|
|
|
echo "✅ Deployment complete. Checking status..."
|
|
kubectl get pods -n authelia
|
|
kubectl get pods -n console
|