Deployment Verification¶
After deploying Geospatial Studio, verify that all components are working correctly before proceeding to the workshop labs.
Verification Time
Estimated time: 10 minutes
Step 1: Check Pod Status¶
Verify all pods are running:
Expected output - all pods should show Running or Completed:
NAME READY STATUS RESTARTS AGE
geofm-gateway-xxx 1/1 Running 0 5m
geofm-ui-xxx 1/1 Running 0 5m
geofm-mlflow-xxx 1/1 Running 0 5m
geofm-geoserver-xxx 1/1 Running 0 5m
postgresql-xxx 1/1 Running 0 8m
keycloak-xxx 1/1 Running 0 8m
minio-xxx 1/1 Running 0 8m
redis-xxx 1/1 Running 0 8m
Troubleshooting
If any pods show Error, CrashLoopBackOff, or Pending, check the Troubleshooting Guide.
Step 2: Verify Service Access¶
Studio UI¶
- Open https://localhost:4180 (local) or your cluster URL
- Accept the security warning (self-signed certificate)
- You should see the login page
Login Test¶
- Enter credentials:
- Username:
testuser - Password:
testpass123 - Click "Sign In"
- You should see the Studio home page
API Access¶
Test the API endpoint:
Expected response (authentication redirect):
<a href="http://keycloak.default.svc.cluster.local:8080/realms/geostudio/protocol/openid-connect/auth...">Found</a>
Authentication Required
The /health endpoint requires authentication and will redirect to Keycloak login. This confirms the API gateway is running and properly configured with authentication. To make authenticated API calls, you'll need to create an API key (see Step 3 below).
Alternative: Check Pod Status
To verify the API gateway is running without authentication, check the pod status:
The pod should showRunning status.
Step 3: Create and Test API Key¶
Create API Key¶
- On the Studio home page, click "Manage your API keys"
- Click "Generate new key"
- Copy the generated API key
- Save it to a config file:
echo "GEOSTUDIO_API_KEY=<your-api-key>" > ~/.geostudio_config_file
echo "BASE_STUDIO_UI_URL=https://localhost:4180" >> ~/.geostudio_config_file
Test API Key¶
# Set environment variables
export STUDIO_API_KEY="<your-api-key>"
export UI_ROUTE_URL="https://localhost:4180"
# Test API call
curl -k -X GET "${UI_ROUTE_URL}/studio-gateway/v2/models" \
-H "X-API-Key: ${STUDIO_API_KEY}"
Expected response: JSON array of models (may be empty initially)
Step 4: Verify Backend Services¶
GeoServer¶
- Open http://localhost:3000/geoserver
- Login with:
- Username:
admin - Password:
geoserver - You should see the GeoServer admin interface
MLflow¶
- Open http://localhost:5000
- You should see the MLflow tracking UI
- No login required
MinIO¶
- Open https://localhost:9001
- Login with:
- Username:
minioadmin - Password:
minioadmin - You should see the MinIO console
Step 5: Onboard Sandbox Models¶
Onboard placeholder models for testing:
export STUDIO_API_KEY="<your-api-key>"
export UI_ROUTE_URL="https://localhost:4180"
./deployment-scripts/add-sandbox-models.sh
Expected output:
Verify in UI: 1. Navigate to "Models" page 2. You should see "geofm-sandbox-models" listed
Step 6: Test Python SDK¶
Create a test script:
# test_sdk.py
from geostudio import Client
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
# Initialize client
client = Client(geostudio_config_file=".geostudio_config_file")
# List models
models = client.list_models()
print(f"✅ Found {len(models)} models")
# List datasets
datasets = client.list_datasets()
print(f"✅ Found {len(datasets)} datasets")
print("✅ SDK verification complete!")
Run the test:
Expected output:
Step 7: Verification Checklist¶
Confirm all items are working:
- All pods are running
- Studio UI is accessible
- Can login to Studio UI
- API health check passes
- API key created and working
- GeoServer is accessible
- MLflow is accessible
- MinIO is accessible
- Sandbox models onboarded
- Python SDK working
Troubleshooting Common Issues¶
Cannot Access UI¶
Connection refused or timeout
Local Deployment:
# Check port forwarding
ps aux | grep "kubectl port-forward"
# Restart port forwarding if needed
export OC_PROJECT=default
kubectl port-forward -n $OC_PROJECT deployment/geofm-ui 4180:4180 >> studio-pf.log 2>&1 &
Cluster Deployment:
API Key Not Working¶
401 Unauthorized error
- Verify API key is correct
- Check it's properly set in environment variable
- Ensure no extra spaces or newlines
- Try generating a new API key
Pods Not Running¶
Pods in Error or CrashLoopBackOff state
SDK Connection Issues¶
Cannot connect to Studio
- Verify
BASE_STUDIO_UI_URLis correct - Check API key is valid
- For local deployment, ensure port forwarding is active
- Try with
verify_ssl=Falsefor self-signed certificates:
Performance Verification¶
Check Resource Usage¶
Database Connection¶
# Test PostgreSQL connection
kubectl exec -it <postgresql-pod> -- psql -U postgres -c "SELECT version();"
Object Storage¶
Next Steps¶
✅ Verification Complete! Your Geospatial Studio deployment is ready.
Proceed to:
- Introduction → - Learn about Geospatial Studio
- Lab 1 → - Start the hands-on labs

