Skip to content

Changes — where to edit, how it lands

An engineer should not grep the whole company to change one thing.

If I need to change X

ChangeRepositoryPath / mechanism
VPC CIDR, NAT, flow logsrfetech-infrarfe-dev/vpc or prod main.tf
How every VPC is builttf-modulesmodules/VPC, then bump ref= in infra
EKS version / Auto Moderfetech-infraeks/ or prod main.tf (tf-modules/EKS)
Karpenter NodePoolrfetech-infrarfe-dev/k8s/karpenter.tf or rfe-prod/k8s/files/k8s/*nodepool*
Kafka topicrfetech-infrarfe-dev/kafka/terraform.tfvars topic_names and prod main.tf
Debezium connectorrfetech-infrarfe-dev/debezium, rfe-perf/debezium, prod main.tf
Aurora / Valkey sizerfetech-infraenv aurora/ elasticache/ or prod main.tf
CloudFront aliases / WAF moderfetech-infracloudfront/, waf/
ECR repositoryrfetech-infraecr/terraform.tfvars
Config secret keys (module-owned)tf-modules CONFIG_MANAGER + infra config_managerthen apps read new fields
Ad-hoc Secrets Manager keyrfetech-github-actionsupdate-secrets-manager.yml
Traefik / Groundcover / Kyverno / KEDArfetech-gitopsfalcon-apps-of-apps/apps/<addon>/
HTTPRoute, replicas, resources, secretProviderrfetech-gitopshelm-overrides/fantasy7-<env>/<service>/custom-values.yaml
Which services exist in an envrfetech-gitopsapp-services/<env>/application-set-*.yaml
Image tagCIupdate-helm-charts.yml writes the values file
Lint / scan / Docker buildrfetech-github-actions.github/workflows/
Connection pool numbersrfetech-gitops.github/connection-budget/<env>.yaml + sync workflow — never promote from develop
Heat-event Aurora/MSK scalerfetech-gitops.github/scale-data-plane/ + scale-data-plane.yml
Architecture story / ADRthis repodocs/infra/, docs/adr/
Laptop composeLocal-dev-setupnot this repo

Cookbook (new service, new module): Creating things.

Infrastructure change flow (Terraform)

text
Branch tf-modules and/or rfetech-infra
  → Pull request (infra-team CODEOWNERS)
  → terraform fmt / validate / plan (folder state)
  → Merge
  → Apply:
       develop: engineer or pipeline in that stack folder
       prod: github-aws-int.yaml  (workflow_dispatch: plan → infra-team approval → apply core, then k8s/)
  → AWS resources change
  → If Config Manager: pods see new secret on next mount/rotation

Rules: one folder = one state. Plan in the leaf. Pin module ?ref= tags. SSH to GitHub for terraform init.

Cluster change flow (GitOps)

text
PR on rfetech-gitops
  → helm-validate-pr.yml (lint / connection-budget gate)
  → prod PRs: check-production-access.yml (infra-team)
  → Merge to main
  → Argo CD (prune + selfHeal) syncs
  → Pods / HTTPRoutes / add-ons update

Image-only deploys skip the Helm PR: CI commits the tag directly (Deployment Bot). Rollback: revert that commit (rollback.yml).

Application deploy flow

text
Developer pushes service repo
  → validate-branch / infra-team (manual)
  → Sonar + Trivy + quality-gate
  → build + push ECR  ({service}-{env}:V{run}-{semver})
  → update-helm-charts → fantasy7-{env}/…/custom-values.yaml
  → Argo CD syncs namespace development | performance | production

Lambdas: build-lambda.yml SAM → CloudFormation. Not Argo.

Promote develop values → prod

GitOps promote-to-prod.yml copies some Helm keys. Never auto-promotes image tags, resources, replica counts, or DB_POOL_* / Redis pool env vars. Those are env-specific. rfetech-gitops.

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