a5e276534c
Andra lagret läser nu basens utdata i stället för att upprepa någonting. 05-aws.tf hämtar klustret, domänen, certifikatet, registret, rollerna, hinken och hemligheternas namn — ändras något i basen slår det igenom här utan att en rad ändras. Autentiseringen mot klustret sker med en färsk EKS-token i stället för en kubeconfig på disk: inget att distribuera, inget som går ut. Hemligheterna bor i Secrets Manager och speglas in av External Secrets var timme. Terraform ser aldrig värdena, och det är själva poängen — en hemlighet som passerar Terraform hamnar i tillståndsfilen. Roteras en hemlighet följer klustret efter av sig självt. Plattformstjänsten kör som ett tjänstekonto med IRSA. Rollen är bunden till exakt det kontot i den namnrymden, så grannpodden på samma nod får ingenting på köpet. Bilagorna signeras mot S3 med samma roll — inga nycklar existerar att läcka. Postgres-podden är borta. Händelseloggen ligger i Aurora utanför klustret, i ett subnätlager utan routing ut, med automatisk säkerhetskopiering och PITR. Ingressen är en ALB med ACM-certifikat i stället för nginx, och alla tre tjänsterna delar den genom samma gruppnamn. Gitea med egna Actions-runners kör i samma kluster. Därmed finns inget externt beroende kvar: källkod, bygge, register och driftsättning ligger allt i vår AWS-miljö. Runnern och driftsättningen har varsitt tjänstekonto med skilda roller — bygget får publicera till ECR men inte röra klustret, driften tvärtom. Ett komprometterat bygge kan inte driftsätta. Gitea kör SQLite på en EBS-volym i stället för en egen Aurora-databas. En verkstadsinstallation har en handfull utvecklare, och ytterligare en databas att säkerhetskopiera och övervaka är kostnad utan motsvarande nytta. Verifierat: 96 vitest-tester, rotens lint och format:check, terraform fmt på båda lagren och statisk referenskontroll av vardera (88 respektive 35 resurser, inga dinglande referenser, alla count-resurser indexerade). terraform validate kunde inte köras här — registry.terraform.io är blockerad av sessionens egress-policy — så CI-jobbet kör den. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
29 lines
860 B
Plaintext
29 lines
860 B
Plaintext
# Kopiera till terraform.tfvars och fyll i. Nästan allt kommer från
|
|
# AWS-basen — det här är resten.
|
|
|
|
# Hinken där basens tillstånd ligger. Basen skriver ut namnet:
|
|
# cd ../aws && terraform output -raw ...
|
|
tillstandshink = "felsokning-produktion-tfstate-123456789012"
|
|
region = "eu-north-1"
|
|
|
|
# Commit-SHA från publiceringsflödet. ECR har oföränderliga taggar, så
|
|
# en tagg pekar alltid på samma bygge.
|
|
bildtagg = "ersatt-med-commit-sha"
|
|
|
|
miljo = "produktion"
|
|
|
|
# Stäng självregistrering i produktion.
|
|
registrering_oppen = false
|
|
|
|
# Öppnar en väg från en tenant-administratör in i klustrets interna
|
|
# adresser. Sätt bara true om verkstaden har en OEM-server på eget nät.
|
|
tillat_interna_uppslag = false
|
|
|
|
# Självhostad git med egna runners.
|
|
gitea = {
|
|
aktiv = true
|
|
doman = "git.exempel.se"
|
|
runners = 2
|
|
lagring = "20Gi"
|
|
}
|