AWS Account Setup

1. Create IAM User

Create an IAM user called eks-project-user in AWS Console with programmatic access. Attach these policies:

Configure AWS CLI:

aws configure
# Enter: Access Key ID, Secret Access Key, region (us-east-1), output (json)

Verify:

aws sts get-caller-identity

2. Create S3 Bucket for Terraform State

aws s3 mb s3://terraform-fintrack-state-203637463799 --region us-east-1

aws s3api put-bucket-versioning \
  --bucket terraform-fintrack-state-203637463799 \
  --versioning-configuration Status=Enabled

3. Create DynamoDB Table for State Locking

aws dynamodb create-table \
  --table-name fintrack-terraform-locks \
  --attribute-definitions AttributeName=LockID,AttributeType=S \
  --key-schema AttributeName=LockID,KeyType=HASH \
  --billing-mode PAY_PER_REQUEST \
  --region us-east-1

GitHub Setup

1. Fork/Clone the Repos

git clone https://github.com/qezman/fintrack-infrastructure
git clone https://github.com/qezman/fintrack-gitops
git clone https://github.com/qezman/fintrack-backend
git clone https://github.com/qezman/fintrack-frontend

2. GitHub Secrets for Backend CI

Go to github.com/qezman/fintrack-backend → Settings → Secrets → Actions → add:

Secret Value
AWS_ROLE_ARN arn:aws:iam::203637463799:role/fintrack-dev-github-actions-role
GITOPS_PAT GitHub Personal Access Token with repo scope

3. Create GitHub PAT

Go to github.com → Settings → Developer Settings → Personal Access Tokens → Tokens (classic) → Generate: