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
AES256for the default S3-managed encryption path - Use
aws:kmsonly 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.