33
44echo " Deploying LinkedIn to K3s Production..."
55
6+ # Function to wait for deployment
7+ wait_for_deployment () {
8+ local name=$1
9+ local namespace=$2
10+ local timeout=${3:- 5m}
11+ echo " Waiting for $name ..."
12+ kubectl rollout status deployment/$name \
13+ -n $namespace --timeout=$timeout || {
14+ echo " WARNING: $name timed out, continuing..."
15+ kubectl describe deployment/$name -n $namespace | tail -10
16+ kubectl logs -l app=$name -n $namespace --tail=20 || true
17+ }
18+ }
19+
20+ # Function to wait for statefulset
21+ wait_for_statefulset () {
22+ local name=$1
23+ local namespace=$2
24+ local timeout=${3:- 5m}
25+ echo " Waiting for $name ..."
26+ kubectl rollout status statefulset/$name \
27+ -n $namespace --timeout=$timeout || {
28+ echo " WARNING: $name timed out, continuing..."
29+ }
30+ }
31+
632echo " Creating namespaces..."
733kubectl apply -f k8s/namespace.yaml
834
@@ -15,27 +41,32 @@ kubectl apply -f k8s/databases/postgres.yaml
1541kubectl apply -f k8s/databases/neo4j.yaml
1642kubectl apply -f k8s/databases/redis.yaml
1743
18- echo " Waiting for databases..."
19- kubectl rollout status statefulset/ postgres -n linkedin-prod --timeout=3m
20- kubectl rollout status statefulset/ redis -n linkedin-prod --timeout=3m
44+ echo " Waiting for databases (up to 5 min each) ..."
45+ wait_for_statefulset postgres linkedin-prod 5m
46+ wait_for_statefulset redis linkedin-prod 5m
2147
2248echo " Deploying messaging..."
2349kubectl apply -f k8s/messaging/kafka.yaml
50+ echo " Waiting 30s for Kafka to initialize..."
2451sleep 30
2552kubectl apply -f k8s/messaging/kafbat-ui.yaml
2653
2754echo " Deploying infrastructure..."
2855kubectl apply -f k8s/infrastructure/config-server.yaml
29- kubectl rollout status deployment/ config-server -n linkedin-prod --timeout=3m
56+ wait_for_deployment config-server linkedin-prod 5m
3057
3158kubectl apply -f k8s/infrastructure/discovery-server.yaml
32- kubectl rollout status deployment/ discovery-server -n linkedin-prod --timeout=3m
59+ wait_for_deployment discovery-server linkedin-prod 5m
3360
3461echo " Deploying microservices..."
3562kubectl apply -f k8s/microservices/
36- kubectl rollout status deployment/api-gateway -n linkedin-prod --timeout=5m
37- kubectl rollout status deployment/user-service -n linkedin-prod --timeout=5m
38- kubectl rollout status deployment/post-service -n linkedin-prod --timeout=5m
63+ echo " Waiting for microservices (up to 5 min)..."
64+ wait_for_deployment api-gateway linkedin-prod 5m
65+ wait_for_deployment user-service linkedin-prod 5m
66+ wait_for_deployment post-service linkedin-prod 5m
67+ wait_for_deployment connections-service linkedin-prod 5m
68+ wait_for_deployment notification-service linkedin-prod 5m
69+ wait_for_deployment uploader-service linkedin-prod 5m
3970
4071echo " Deploying observability..."
4172kubectl apply -f k8s/observability/
@@ -46,6 +77,13 @@ kubectl apply -f k8s/network-policy.yaml
4677echo " "
4778echo " Deployment complete!"
4879echo " "
80+ echo " Pod status:"
4981kubectl get pods -n linkedin-prod
82+
5083echo " "
84+ echo " Service ports:"
5185kubectl get services -n linkedin-prod
86+
87+ echo " "
88+ echo " Health check:"
89+ echo " API Gateway: http://195.201.195.25:32000/actuator/health"
0 commit comments