c407aad58a
Rot-CI:n föll med 107 lint-fel efter merge:n. Orsaken var inte kod som blivit sämre: Semantikas rot-eslint började granska felsokning/, ett träd med egen verktygskedja och andra regler. Felen låg i värdappens befintliga Supabase-funktioner, oförändrade sedan innan. Rätt åtgärd är att låta varje produkt äga sitt eget träd, inte att lätta på någons regler. felsokning/ ignoreras därför av Semantikas eslint och prettier — den har egen eslint-konfiguration, egna prettier-regler och eget CI-flöde. Ingen regel är försvagad för någon av produkterna. Samtidigt: mina GitHub-workflows för publicering och driftsättning är borttagna. Guidad Felsökning ska inte längre bero på GitHub Actions eller GHCR — bygge, publicering till eget ECR och terraform apply mot EKS ligger nu i .gitea/workflows/felsokning.yml och körs av egna runners. Driftsättningen är fortsatt ett eget, manuellt steg med en bildtagg; rollback är att köra igen med en tidigare tagg. .github/workflows/ci.yml är Semantikas och lämnas orörd. Verifierat: rotens lint, format:check, typecheck och test går igenom, och Guidad Felsöknings egna 96 tester, typkontroll, bygge och integrationstest mot riktig Postgres likaså. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
80 lines
2.2 KiB
Terraform
80 lines
2.2 KiB
Terraform
# Guidad Felsökning — AWS-basen.
|
|
#
|
|
# Två lager, medvetet åtskilda:
|
|
#
|
|
# felsokning/infra/aws/ det här — VPC, EKS, Aurora, S3, ECR,
|
|
# Secrets Manager, Route 53/ACM, CloudWatch
|
|
# felsokning/infra/terraform/ arbetslasten i klustret
|
|
#
|
|
# Anledningen är inte smak: en enda apply som både skapar ett EKS-kluster
|
|
# och schemalägger in i det är en känd fälla — kubernetes-leverantören
|
|
# måste konfigureras med uppgifter som inte finns förrän klustret är
|
|
# skapat, och planen blir därför opålitlig. Kör basen först, arbetslasten
|
|
# sedan. Arbetslasten läser basens utdata.
|
|
#
|
|
# Läsordning:
|
|
# variables.tf alla rattar
|
|
# 10-natverk.tf VPC, subnät, NAT, VPC-endpoints
|
|
# 20-eks.tf klustret, noderna, IRSA
|
|
# 30-databas.tf Aurora PostgreSQL
|
|
# 40-lagring.tf S3 för bilagor, ECR för bilder
|
|
# 50-hemligheter.tf Secrets Manager + rollerna som får läsa dem
|
|
# 60-doman.tf Route 53 och certifikat
|
|
# 70-observation.tf CloudWatch: loggar, mätvärden, larm
|
|
# 80-gitea.tf självhostad git + byggrunners
|
|
# outputs.tf det arbetslastlagret behöver
|
|
|
|
terraform {
|
|
required_version = ">= 1.6"
|
|
|
|
required_providers {
|
|
aws = {
|
|
source = "hashicorp/aws"
|
|
version = "~> 5.80"
|
|
}
|
|
random = {
|
|
source = "hashicorp/random"
|
|
version = "~> 3.6"
|
|
}
|
|
tls = {
|
|
source = "hashicorp/tls"
|
|
version = "~> 4.0"
|
|
}
|
|
}
|
|
|
|
# Tillståndet innehåller databasens slutpunkt och rollnamn. Lägg det i
|
|
# S3 med versionshantering och lås — aldrig lokalt i git.
|
|
#
|
|
# backend "s3" {
|
|
# bucket = "felsokning-tfstate"
|
|
# key = "aws/terraform.tfstate"
|
|
# region = "eu-north-1"
|
|
# encrypt = true
|
|
# use_lockfile = true
|
|
# }
|
|
}
|
|
|
|
provider "aws" {
|
|
region = var.region
|
|
|
|
default_tags {
|
|
tags = local.taggar
|
|
}
|
|
}
|
|
|
|
# ACM-certifikat för CloudFront måste ligga i us-east-1. Vi använder inte
|
|
# CloudFront i dag, men leverantören står redo så tillägget inte kräver
|
|
# en omstrukturering.
|
|
provider "aws" {
|
|
alias = "us_east_1"
|
|
region = "us-east-1"
|
|
|
|
default_tags {
|
|
tags = local.taggar
|
|
}
|
|
}
|
|
|
|
data "aws_caller_identity" "denna" {}
|
|
|
|
data "aws_partition" "denna" {}
|