Skip to main content

Deploying on Amazon EKS

This page explains how to create the Helm values file and install AI Cockpit: Smart Engineering on Amazon EKS.

Create your values file

Start from the published chart defaults:

helm show values oci://709825985650.dkr.ecr.us-east-1.amazonaws.com/compass-uol/ai-cockpit/smart-engineering-chart/aic-modernization \
--version 0.1.12 > values.yaml

The following example shows a common EKS configuration:

serviceAccount:
create: false
name: aic-modernization

runtime:
commonEnv:
AWS_REGION: "us-east-1"
AWS_WORKLOAD_IDENTITY_MODE: "irsa"
AUTH_MODE: "disabled"
AUTH_DISABLED: "true"
ALLOWED_ORIGINS: "https://smart-eng.example.com,https://api.smart-eng.example.com"
ROOT_PATH: ""
S3_UPLOAD_SERVER_SIDE_ENCRYPTION: "AES256"

s3:
sourceBucket: "smart-eng-source"
outputBucket: "smart-eng-output"
workspaceBucket: "smart-eng-workspace"

bedrock:
modelId: "amazon.nova-pro-v1:0"
modelIdSmall: "amazon.nova-lite-v1:0"

marketplace:
organizationId: "1"
organizationName: "Marketplace"

gateway:
enabled: true
env:
AUTH_DISABLED: "true"
BEDROCK_CATALOG_ENABLED: "true"
CORS_ALLOW_ORIGINS: "https://smart-eng.example.com"

ingress:
enabled: true
className: nginx
frontendHost: smart-eng.example.com
apiHost: api.smart-eng.example.com
gatewayHost: gateway.smart-eng.example.com
tls:
- hosts:
- smart-eng.example.com
- api.smart-eng.example.com
- gateway.smart-eng.example.com
secretName: smart-eng-tls

S3_UPLOAD_SERVER_SIDE_ENCRYPTION depends on how the buyer configures bucket encryption.

  • Use AES256 for the default S3-managed encryption path
  • Use aws:kms only when the target buckets are configured for KMS encryption and the runtime IAM role has the required KMS permissions

Install the product

Use the Marketplace parameters together with your values file:

helm upgrade --install aic-modernization \
oci://709825985650.dkr.ecr.us-east-1.amazonaws.com/compass-uol/ai-cockpit/smart-engineering-chart/aic-modernization \
--version 0.1.12 \
--namespace aic-modernization \
--create-namespace \
-f values.yaml \
--set serviceAccount.name=${AWSMP_SERVICE_ACCOUNT}

If ${AWSMP_SERVICE_ACCOUNT} does not already exist in the namespace, create the service account first and then provide its name explicitly in the install command or in values.yaml.

What happens during installation

The installation creates:

  • frontend deployment and service
  • API deployment and service
  • worker deployment
  • migration job
  • PostgreSQL stateful set and service
  • Valkey stateful set and service
  • optional gateway deployment and service
  • ingress resources when enabled

The migration job runs automatically after install and upgrade.

Verify the deployment

After the install completes, check the resources:

kubectl get pods -n aic-modernization
kubectl get svc -n aic-modernization
kubectl get ingress -n aic-modernization

The deployment is ready when:

  • the API pod is healthy
  • the worker pod is healthy
  • PostgreSQL and Valkey are running
  • the migration job has completed

Validate the runtime endpoints

You can validate the API with port forwarding:

kubectl port-forward svc/aic-modernization-api -n aic-modernization 3000:3000
curl http://localhost:3000/health
curl http://localhost:3000/config/runtime

If the gateway is enabled:

kubectl port-forward svc/aic-modernization-gateway -n aic-modernization 8080:8080
curl http://localhost:8080/health

The API health response includes the current license status, which is useful during the first Marketplace validation.