Files
Claude 7e1793b8ac Driftsättningspaketen: agentanvisningar och paketering i sex zip-steg
Skriptet deploy/paketera.sh skär plattformen i numrerade paket i
driftsättningsordning: plan med SHA256-summor, AWS-basen, backend-
bilderna, webbilden, arbetslasten och slutkontrollen. Varje paket bär
sin egen ANVISNING-AGENT.md med steg, verifiering och stoppvillkor,
plus fillista och versionsstämpel under paketunik väg så att alla
paket kan packas upp i samma arbetskatalog.

Ordningen är motiverad i planen: basen före bilderna (registret måste
finnas), bilderna före arbetslasten (apply drar dem), verifieringen
sist. 02 och 03 är utpekat parallelliserbara med samma bildtagg.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
2026-08-07 11:47:26 +00:00

2.9 KiB
Raw Permalink Blame History

Paket 01 · AWS-basen

Detta paket lägger grunden: nätverk i tre lager, EKS-klustret, Aurora PostgreSQL, S3 för bilagor, ECR, KMS-nycklar, Secrets Manager, Route 53 och larm. Allt efterföljande läser den här basens utdata.

Förutsättningar

AWS-behörighet i målkontot, Terraform enligt infra/aws/versions.tf. Läs infra/aws/README.md — den förklarar varje val; denna anvisning är utförandeordningen.

Steg

cd infra/aws
terraform init
terraform validate
terraform plan -out plan.ut     # granska: inga destruktiva ändringar väntas i en ny miljö
terraform apply plan.ut
terraform output karta          # hela basen i klartext — bifoga i rapporten

Variabler som ska sättas medvetet (via -var eller en tfvars-fil som INTE innehåller hemligheter): doman, zon_id, larm_epost, och tillatna_api_cidr snävat till de adresser som ska nå API-servern. Standardvärdet är öppet enbart för att en ny miljö ska gå att nå alls.

Efter apply — fyra saker Terraform inte gör

  1. Claude-nyckeln in i Secrets Manager (Terraform ska inte känna den):
    aws secretsmanager put-secret-value \
      --secret-id felsokning-produktion/app \
      --secret-string "$(aws secretsmanager get-secret-value --secret-id felsokning-produktion/app \
         --query SecretString --output text | jq '.anthropic_api_key = "sk-ant-…"')"
    
  2. Databasschemat. Aurora ligger i ett datalager utan routing ut; kör infra/postgres-init.sql inifrån klustret:
    aws eks update-kubeconfig --name <klusternamn ur karta>
    kubectl run psql --rm -i --image=postgres:16 --restart=Never -- \
      psql "<databas_url ur terraform output databas_url>" < ../postgres-init.sql
    
    Det är samma fil som integrationstestet kör — de kan inte glida isär.
  3. Verifiera att tillatna_api_cidr är snävat om det inte gjordes före apply.
  4. Bekräfta larmprenumerationen — SNS skickar ett bekräftelsemejl till larm_epost; utan klick går larmen ingenstans.

Verifiering — allt ska vara sant innan steget rapporteras klart

terraform output karta                        # kvar_att_gora ska vara tomt utom det som uttryckligen skjutits upp
kubectl get nodes                             # samtliga Ready
aws ecr describe-repositories \
  --query 'repositories[].repositoryName'     # tre repon: web, plattform, ai-orkester
kubectl run schema --rm -i --image=postgres:16 --restart=Never -- \
  psql "<databas_url>" -c "\dt"               # tabellerna ur postgres-init.sql finns

Rapportera terraform output karta ordagrant, registeradressen och klusternamnet — steg 0204 behöver dem.

Stoppvillkor

Faller terraform apply, kör inte om i blindo: läs felet, åtgärda orsaken, kör plan igen och granska. Ett kluster utan Ready-noder eller ett kvar_att_gora med oförklarade punkter betyder stopp, inte vidare till paket 02.