Date: 2026-05-09
Branch: kanban/t_2c4f360e
Scope: integration review for the temporary x-clone EKS/GitOps/GHCR/RDS/edge demo artifacts.
Historical note: this receipt predates the live app-workload/pre-pentest capture. The 503 until app workloads/endpoints are deployed observations below are integration-stage evidence, not the current live-demo health claim. Use ../pre-pentest-receipts.md for the later public frontend/API health and synthetic activity baseline.
This branch merges the reviewable outputs from the implementation cards into one public-safe review branch:
- AWS demo operations runbook and teardown/receipt scripts.
- GHCR image publishing workflow for backend and frontend app images.
- Flux-compatible GitOps layout for the demo cluster/app split.
- Private single-AZ RDS Terraform slice and Kubernetes migration/secret-reference manifests.
- EKS Terraform baseline receipt and IaC.
- AWS edge/DNS/ALB controller Terraform plus ingress/service-contract artifacts.
- Public mutation-protection controls for the EKS public read/API path; the AI activity runner is now on-prem/operator-run rather than an EKS CronJob.
- Graphiti group
x-clone: confirmed supply-chain-gate expectations, prior public-safety results, and EKS/GHCR/RDS/edge decisions. - Honcho: confirmed Ryan's project preferences for public-safe, credible, direct execution and the x-clone repo location/context.
- AWS documentation search: checked EKS assurance/best-practices and ALB controller troubleshooting guidance for validation framing.
- Context7: checked Terraform AWS provider docs for ACM/Route53 validation patterns.
- Current repo files and parent kanban handoffs: used as the source of truth for branch integration and validation targets.
Terraform:
terraform fmt -check,terraform init -backend=false -input=false, andterraform validatepassed for:infra/terraform/eks-demoinfra/terraform/demo-rdsinfra/terraform/aws
- Live-state-backed
terraform plan -detailed-exitcodereturned0(no changes) for:infra/terraform/eks-demoinfra/terraform/aws
infra/terraform/demo-rdsvalidation passed, but a live plan was intentionally not run because this standalone slice still requires local-only values:vpc_id,private_subnet_ids, andeks_cluster_security_group_id.
AWS live checks:
- EKS cluster
xclone-demoisACTIVEon Kubernetes 1.33. - Managed node group is
ACTIVEwith desired size 2. - EKS add-ons are
ACTIVE: CoreDNS, VPC CNI, kube-proxy, and EKS Pod Identity Agent. - Demo RDS PostgreSQL instance is
available, private, and single-AZ. - Demo ALB is active and internet-facing for the public read surface.
xclone.ryans-lab.clickandapi.xclone.ryans-lab.clickresolve; both return HTTP 503 as expected until app workloads/endpoints are deployed.
Kubernetes/GitOps/manifests:
- YAML multi-document parse passed for 39 files / 73 resources across
deploy,infra/k8s, andclusters. - Kustomization resource and patch references resolved.
- GitHub Actions workflow YAML parsed successfully.
- Dockerized
actionlintpassed for.github/workflows/ci.ymland.github/workflows/publish-ghcr-images.yml.
Application and supply chain:
- Backend targeted infra/runtime tests: 21 passed.
- Full backend test suite: 236 passed, 1 warning.
- Backend
ruff,mypy, andpip-audit --localpassed. - Frontend
npm ci, typecheck, lint, tests, build, and high-severity audit passed; 22 frontend tests passed. - Docker builds passed for backend and frontend validation images; the runner is no longer part of the EKS/GHCR image deployment path.
- Dockerized Trivy HIGH/CRITICAL vulnerability scans passed for backend and frontend validation images.
- Dockerized Trivy CycloneDX SBOM generation succeeded for backend and frontend local receipts; generated SBOMs were email-redacted, JSON-reformatted, and passed the public-safety scanner.
Public safety / repo hygiene:
python3 scripts/public_safety_scan.py .passed.- Public-safety scan passed over generated local SBOM receipts.
git diff --checkpassed.- No Terraform state, tfvars, raw receipts, SBOM JSON, node modules, or local logs are intended for commit.
Applied / live:
- EKS baseline, node group, add-ons, private RDS inside the EKS baseline, ALB controller/edge layer, ACM/DNS aliases, and public ALB are live from the parent apply cards.
- Final no-op Terraform plans were verified for the applied EKS baseline and edge/DNS layers using local ignored state/variable files.
Prepared / reviewable only:
- The standalone
infra/terraform/demo-rdsslice remains prepared and validated, but not live-planned from this branch because its required VPC/subnet/EKS security-group values are deliberately local-only. - GitOps manifests, public GHCR workflow, and public mutation-protection artifacts are reviewable in git; actual Flux bootstrap/image automation write-back and signed-image enforcement remain operator steps.
- App workloads are not yet deployed behind the ALB; the public hostnames currently returning 503 is expected at this stage.
- Review and merge the implementation PRs or this integration branch in the intended order.
- After first GHCR publish from
main, make the backend/frontend GHCR packages public and smoke-check anonymous pulls. - Add signed-image enforcement for backend/frontend app images before admitting workloads.
- For the standalone demo-RDS slice, provide local-only
vpc_id,private_subnet_ids, andeks_cluster_security_group_idbefore running a live plan/apply. - Re-run the receipt collection script after app workloads are healthy so public-facing HTTP probes show application responses rather than expected ALB 503s.
Use the public-safe runbook docs/aws-demo-operations-runbook.md and scripts:
- Collect final receipts first with
scripts/aws_demo_collect_receipts.sh. - Confirm no runner CronJob remains in the app namespace; the runner is on-prem/operator-run only.
- Remove or wait for Kubernetes Ingress/ALB cleanup as needed.
- Run
scripts/aws_demo_teardown.shwith explicit destroy approval and the correct local Terraform directory/state. - Run
scripts/aws_demo_post_destroy_verify.shto confirm no intended demo EKS, ALB, NAT Gateway, RDS, volumes, or unintended snapshots remain.
Keep raw local receipts, Terraform state, tfvars, plans, and AWS identifiers out of commits.