Skip to content

Compute & deploy

Workloads run on EKS. Nodes come from Karpenter (Auto Mode). Delivery is GitOps: CI pushes an image and a git tag; Argo CD makes the cluster match.

Cluster, NodePools, node death: Kubernetes. Secrets CSI: IAM & secrets. “Which file?”: Changes.

Develop + perfProd
Clusterrfe-dev-clusterrfe-prod-cluster
Version / mode1.35 Auto Mode1.35 Auto Mode
App nsdevelopment / performanceproduction
bash
aws eks update-kubeconfig --name rfe-dev-cluster --region eu-west-2 \
  --role-arn arn:aws:iam::460195068944:role/rfe-dev-cluster-admin-role \
  --alias rfe-dev-developer

Two layers

Platform: develop gets the full add-on set (plus Kubecost / Chaos / k6). Prod is the production subset. Perf does not reinstall Traefik/Groundcover — they already run on the shared cluster.

Services: one Application per name in the ApplicationSet. Chart 1.0.0. Health: /livez /readyz.

Prod list: userservice bettingengine betfairstreaming bookmakerdata fancydata casinomanagement livescore livetv manualdatamanagement frontmarket backoffice bets frontend-b2b frontend-b2c dataaggregator markets.

Commit → pod

BranchECRGitOps folder
main{service}-developfantasy7-develop/
performance{service}-perffantasy7-perf/
release/vX.Y.Z{service}-prodfantasy7-prod/

Never tag latest. Rollback = revert the GitOps commit (rollback.yml), not kubectl rollout undo.

Walk the ship path: Service ci-cd-pipeline.yml only calls rfetech-github-actions. After the quality gate, CI pushes {service}-{env}:V{run}-{semver} and commits deployment.image.tag under fantasy7-<env>. Argo’s ApplicationSet already renders chart 1.0.0 into the env namespace. Lambdas are SAM, not this path. Hop-by-hop: Visual map § code change.

Coordinated releases: “The Big Bash” / “The Patch” / ship-release.yml.

Settlement Lambdas (not GitOps)

BettingEngine can trigger AWS Lambda on a settlement path (EventBridge → SQS → Lambda — C4 Money path). Images ship with rfetech-github-actions build-lambda.yml (SAM / CloudFormation). Argo CD does not deploy those functions. LocalStack needs ssm for /rfe/lambda/vpc/*. SAM templates live in the service repo, not in GitOps.

Heat-event scale of Aurora / MSK / ElastiCache: GitOps scale-data-plane.yml (IAM role in Terraform).

Secrets

No credentials in Helm values. PreSync jobs wait until SecretProviderClass exists. Detail: IAM & secrets.

Local: falconx-local-dev:latest + make redeploy. No Argo on a laptop.

Visual map · Dependencies

BigBash architecture SSOT — hosted for the team; edit via pull requests.