@@ -164,8 +164,67 @@ deploy_eoapi() {
164164 log_info " Verifying deployment..."
165165 kubectl get pods -n " $NAMESPACE " -o wide
166166
167+ # Wait for pgstac jobs to complete first
168+ if kubectl get job -n " $NAMESPACE " -l " app=$RELEASE_NAME -pgstac-migrate" > /dev/null 2>&1 ; then
169+ log_info " Waiting for pgstac-migrate job to complete..."
170+ if ! kubectl wait --for=condition=complete job -l " app=$RELEASE_NAME -pgstac-migrate" -n " $NAMESPACE " --timeout=600s; then
171+ log_error " pgstac-migrate job failed to complete"
172+ kubectl describe job -l " app=$RELEASE_NAME -pgstac-migrate" -n " $NAMESPACE "
173+ kubectl logs -l " app=$RELEASE_NAME -pgstac-migrate" -n " $NAMESPACE " --tail=50 || true
174+ exit 1
175+ fi
176+ fi
177+
178+ if kubectl get job -n " $NAMESPACE " -l " app=$RELEASE_NAME -pgstac-load-samples" > /dev/null 2>&1 ; then
179+ log_info " Waiting for pgstac-load-samples job to complete..."
180+ if ! kubectl wait --for=condition=complete job -l " app=$RELEASE_NAME -pgstac-load-samples" -n " $NAMESPACE " --timeout=300s; then
181+ log_error " pgstac-load-samples job failed to complete"
182+ kubectl describe job -l " app=$RELEASE_NAME -pgstac-load-samples" -n " $NAMESPACE "
183+ kubectl logs -l " app=$RELEASE_NAME -pgstac-load-samples" -n " $NAMESPACE " --tail=50 || true
184+ exit 1
185+ fi
186+ fi
187+
188+ # Wait for service pods to be ready
189+ log_info " Waiting for eoAPI services to be ready..."
190+ local services=(" stac" " raster" " vector" )
191+ local failed_services=()
192+
193+ for service in " ${services[@]} " ; do
194+ # Try different label patterns to find pods
195+ local found=false
196+ local patterns=(
197+ " app.kubernetes.io/instance=$RELEASE_NAME ,app.kubernetes.io/name=$service "
198+ " app=$RELEASE_NAME -$service "
199+ )
200+
201+ for pattern in " ${patterns[@]} " ; do
202+ if kubectl get pods -n " $NAMESPACE " -l " $pattern " > /dev/null 2>&1 ; then
203+ log_info " Waiting for $service service pods to be ready..."
204+ if kubectl wait --for=condition=Ready pod -l " $pattern " -n " $NAMESPACE " --timeout=300s; then
205+ found=true
206+ break
207+ else
208+ log_warn " $service service pods found but failed readiness check"
209+ kubectl describe pods -n " $NAMESPACE " -l " $pattern " || true
210+ fi
211+ fi
212+ done
213+
214+ if [ " $found " = false ]; then
215+ failed_services+=(" $service " )
216+ fi
217+ done
218+
219+ if [ ${# failed_services[@]} -ne 0 ]; then
220+ log_error " Failed to start services: ${failed_services[*]} "
221+ kubectl get pods -n " $NAMESPACE " -o wide
222+ kubectl get events -n " $NAMESPACE " --sort-by=' .lastTimestamp' | tail -20 || true
223+ exit 1
224+ fi
225+
167226 log_info " eoAPI deployment completed successfully!"
168- log_info " Services available in namespace: $NAMESPACE "
227+ log_info " All services are ready in namespace: $NAMESPACE "
169228
170229 if [ " $CI_MODE " != true ]; then
171230 log_info " To run integration tests: make integration"
0 commit comments