Ir al contenido principal

Desplegar en Amazon EKS

Esta página explica cómo crear el archivo de valores Helm e instalar AI Cockpit: Smart Engineering en Amazon EKS.

Crear el archivo values.yaml

Empieza a partir de los valores por defecto del chart publicado:

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

El siguiente ejemplo muestra una configuración común para EKS:

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 depende de cómo el cliente configure el cifrado de los buckets:

  • Usa AES256 para el camino por defecto con cifrado administrado por S3
  • Usa aws:kms solo si los buckets de destino están configurados con KMS y el rol IAM de runtime tiene los permisos necesarios sobre la clave

Instalar el producto

Usa los parámetros de Marketplace junto con tu archivo de valores:

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}

Si ${AWSMP_SERVICE_ACCOUNT} no existe en el namespace, crea primero la service account y luego informa su nombre explícitamente en el comando de instalación o en values.yaml.

Qué ocurre durante la instalación

La instalación crea:

  • deployment y service del frontend
  • deployment y service de la API
  • deployment del worker
  • job de migración
  • stateful set y service de PostgreSQL
  • stateful set y service de Valkey
  • deployment y service opcionales del gateway
  • recursos de ingress cuando están habilitados

El job de migración se ejecuta automáticamente después de la instalación y de cada upgrade.

Verificar el despliegue

Después de completar la instalación, revisa los recursos:

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

El despliegue está listo cuando:

  • el pod de la API está saludable
  • el pod del worker está saludable
  • PostgreSQL y Valkey están en ejecución
  • el job de migración ha finalizado

Validar los endpoints de runtime

Puedes validar la API con port-forward:

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

Si el gateway está habilitado:

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

La respuesta de health de la API incluye el estado actual de la licencia, lo que resulta útil durante la primera validación de Marketplace.