Skip to main content

AWS Deployment Prerequisites

Use this page as a deploy readiness checklist before running helm upgrade on bighammer.

For infrastructure configurations, reference values, and service architecture, see Infrastructure.

AWS foundation (must exist)

ResourcePurpose
Amazon EKSRun platform and AI Agent workloads
Amazon RDS (PostgreSQL)Application, Audit, and Keycloak data
AWS Secrets ManagerPasswords, TLS, app secrets
Route 53Resolve ingress hostnames
Amazon ECRContainer images
IAM Roles for Service Accounts (IRSA)ESO + application pod access to AWS APIs

Minimum configuration

AreaRequirement
EKSKubernetes version ≥ 1.28; OIDC provider enabled (for IRSA); node group instances ≥ t3.xlarge or equivalent
RDS PostgreSQLPostgreSQL 16; instance class ≥ db.t3.xlarge; private subnet deployment; SSL mode enabled
Databasesbighammer_db_<env> (application), audit_db_<env> (audit), and keycloak_db_<env> (Keycloak server)
DB userspostgres, bh_dev_user, bh_app_user, keycloak_db_user — names must match chart defaults
DB passwords in Secrets ManagerSecret entries for bh-app-user-password, bh-dev-user-password, db-postgres-password, bh-kcdbpwd
DNSPublic or private Route 53 hosted zones; CNAME/Alias records pointing to the ALB provisioned by AWS Load Balancer Controller
Helm coupling

The chart expects a dual-role database model on the application database (e.g. bighammer_db_<env>):

  • POSTGRES_USER / POSTGRES_PASSWORDbh_dev_user — Alembic migrations, create/alter/drop tables
  • BH_APP_USER / BH_APP_USER_PASSWORDbh_app_user — runtime API and worker traffic (DML only)

See Secret Manager Secrets.

Keycloak server database — platform provisioning

The Keycloak server (bhkeycloak) uses a separate database and user provisioned by your platform tooling — not bighammer_db_setup.sql:

ResourceReference nameChart
Databasekeycloak_db_<env>global.bhkeycloak.env.KC_DB_URL
Userkeycloak_db_userglobal.bhkeycloak.env.KC_DB_USERNAME
Password (Secrets Manager)bh-kcdbpwdglobal.remoteSecrets.keycloak.dbPasswordKC_DB_PASSWORD

VPC and Security Groups (minimum traffic rules)

Allow the following ingress/egress rules on the EKS node security groups:

PortProtocolPurpose
TCP 80, 443IngressHTTP/HTTPS ingress traffic from ALB
TCP 5432EgressConnectivity to RDS PostgreSQL instance
TCP 5672, 15672Ingress/EgressRabbitMQ broker and admin traffic

Cluster add-ons (install before platform chart)

Add-onRequiredHelm chart [BigHammer tested versions]
External Secrets OperatorYesexternal-secrets-0.18.2 or later
AWS Load Balancer ControllerYesaws-load-balancer-controller-1.7.2 or later
RabbitMQ (separate Helm release)Yesbhrabbitmq or existing broker
Stakater ReloaderRecommendedreloader-1.1.0
Cert ManagerOptionalcert-manager-v1.19.2

IAM (minimum roles / policies)

Principal / RoleMinimum Policy Requirement
ESO Service Account IAM Rolesecretsmanager:GetSecretValue on BigHammer secrets
App Pod IAM Role (IRSA)secretsmanager:GetSecretValue on tenant & dynamic secrets; sqs:SendMessage on Audit FIFO queue
EKS Node IAM Roleecr:GetDownloadUrlForLayer, ecr:BatchGetImage, ecr:GetAuthorizationToken to pull container images

Tools

ToolVersion
aws-cliLatest v2
kubectlMatches cluster version
helm3.10+
psqlFor database bootstrap SQL

Next steps

  1. Provision foundation — Infrastructure
  2. Mirror entitled artifacts — Release Manifest & Distribution
  3. Prepare the cluster — Cluster preparation
  4. Deploy chart — Platform Deployment · Deployment Checklist