Skip to main content

Deployment guide

Overview

The provider details API (legacy) is deployed to Kubernetes on the Cloud Platform using Helm.

Environments

  • Dev: Development environment for testing
  • UAT: User acceptance testing
  • Staging: Pre-production environment for validation
  • Production: Live production environment

Helm deployment

Prerequisites

  • kubectl configured for Cloud Platform
  • Helm 3.0 or higher
  • Access to the appropriate namespace

Deployment directories

Deployment configurations are in helm_deploy/:

  • providers-app/ - Main application Helm chart

Helm values

Each environment has its own values file:

helm_deploy/providers-app/
├── values.yaml              # Default values
├── values-dev.yaml          # Dev environment
├── values-staging.yaml      # Staging environment
├── values-uat.yaml          # UAT environment
└── values-prod.yaml         # Production environment

Deploy

Do NOT deploy or roll back manually. Use the GitHub Actions workflows to deploy a tagged image. Roll back by re-deploying an older tag.

Configuration

Rate limiting

Rate limits are configured per environment in the values files:

rateLimit:
  rps: "100"    # requests per second
  rpm: "6000"   # requests per minute
  burst: "1"    # burst size

Resource limits

Configure resource requests and limits:

resources:
  requests:
    memory: "512Mi"
    cpu: "500m"
  limits:
    memory: "1Gi"
    cpu: "1000m"

Replicas

Scale the application by adjusting replicas:

replicaCount: 3

Monitoring

Health checks

The application provides health checks:

GET /actuator/health

Metrics

Prometheus metrics are exposed at:

GET /actuator/prometheus

Logs

View logs in Cloud Platform:

kubectl logs -f deployment/providers-app -n laa-data-provider-data-prod

Troubleshooting

Pod not starting

Check pod status:

kubectl describe pod POD_NAME -n NAMESPACE
kubectl logs POD_NAME -n NAMESPACE

Connection issues

Verify environment variables:

kubectl exec -it POD_NAME -n NAMESPACE -- env | grep SPRING

Performance issues

Check resource usage:

kubectl top pod -n NAMESPACE
kubectl top node

CI/CD integration

Deployment is typically triggered by CI/CD pipelines in GitHub Actions:

  • Development: Automatic on merge to main
  • Staging: Manual trigger or scheduled
  • Production: Manual approval trigger

See .github/workflows/ for pipeline configuration.

Documentation

For more information on Cloud Platform, see:

Next steps