-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy-local.sh
More file actions
executable file
·87 lines (63 loc) · 2.52 KB
/
deploy-local.sh
File metadata and controls
executable file
·87 lines (63 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/env bash
set -euo pipefail
NAMESPACE=${NAMESPACE:-default}
RELEASE=${RELEASE:-smartsearch}
CHART_PATH=./infra/helm/smartsearch
POSTGRES_SECRET=${POSTGRES_SECRET:-smartsearch-postgres-secret}
OPENAI_SECRET=${OPENAI_SECRET:-smartsearch-open-ai-secret}
DATABASE_USER=${DATABASE_USER:-key_admin}
DATABASE_PASSWORD=${DATABASE_PASSWORD:-test_password}
OPENAI_API_KEY=${OPENAI_API_KEY:-""}
INSTALL_TRAEFIK=${INSTALL_TRAEFIK:-false}
TRAEFIK_NAMESPACE=${TRAEFIK_NAMESPACE:-kube-system}
if [[ "$INSTALL_TRAEFIK" == "true" ]]; then
echo "-----------------------------------------"
echo "Step 0: Install or upgrade Traefik"
echo "-----------------------------------------"
if ! helm repo list | awk '{print $1}' | grep -qx "traefik"; then
helm repo add traefik https://traefik.github.io/charts
else
echo "Helm repo 'traefik' already exists."
fi
helm repo update
helm upgrade --install traefik traefik/traefik \
--namespace "$TRAEFIK_NAMESPACE" \
--create-namespace
else
echo "Skipping Traefik installation."
fi
echo "-----------------------------------------"
echo "Step 1: Build Docker image with Jib"
echo "-----------------------------------------"
./gradlew jibDockerBuild
echo "-----------------------------------------"
echo "Step 2: Deploy Helm chart"
echo "-----------------------------------------"
helm upgrade --install "$RELEASE" "$CHART_PATH" \
--namespace "$NAMESPACE" \
--create-namespace
echo "-----------------------------------------"
echo "Step 3: Create or update Postgres secret"
echo "-----------------------------------------"
kubectl create secret generic "$POSTGRES_SECRET" \
--namespace "$NAMESPACE" \
--from-literal=DATABASE_USER="$DATABASE_USER" \
--from-literal=DATABASE_PASSWORD="$DATABASE_PASSWORD" \
--dry-run=client -o yaml | kubectl apply -f -
echo "Postgres secret ready."
echo "-----------------------------------------"
echo "Step 4: Create or update OpenAI secret"
echo "-----------------------------------------"
kubectl create secret generic "$OPENAI_SECRET" \
--namespace "$NAMESPACE" \
--from-literal=OPENAI_API_KEY="$OPENAI_API_KEY" \
--dry-run=client -o yaml | kubectl apply -f -
echo "OpenAI secret ready."
echo "-----------------------------------------"
echo "Step 5: Wait for deployment"
echo "-----------------------------------------"
kubectl rollout status deployment/"$RELEASE" -n "$NAMESPACE"
echo "-----------------------------------------"
echo "SmartSearch deployed"
echo "-----------------------------------------"
kubectl get pods -n "$NAMESPACE"