Moves the production deploy from AWS to the Frostmoln production cluster (namespace schemas), with unboundsoftware/schemas.
deploy-prod (AWS, failing since CI left AWS) → deploy-prod-frostmoln: deploy prod-frostmoln -n schemas.
Restricted Pod Security: nginxinc/nginx-unprivileged (uid 101, port 8080; 1.31.7 isn't published for it yet, so 1.31.6). nginx.conf: no user, pid and temp paths under /tmp, listen 8080. Configs copied with --chmod=644. Service is ClusterIP.
autoscale-prod/pdb-prod → -prod-frostmoln; the ALB ingress → a Traefik one for / on schemas.unbound.se (the API's /query ingress wins on the longer path).
Checked locally (amd64): as uid 101 with all capabilities dropped, /health, / and SPA routes 200, security headers present.
Merge with the schemas PR, after infra#1878 is applied.
Moves the production deploy from AWS to the Frostmoln production cluster (namespace `schemas`), with unboundsoftware/schemas.
- `deploy-prod` (AWS, failing since CI left AWS) → `deploy-prod-frostmoln`: `deploy prod-frostmoln -n schemas`.
- Restricted Pod Security: `nginxinc/nginx-unprivileged` (uid 101, port 8080; 1.31.7 isn't published for it yet, so 1.31.6). `nginx.conf`: no `user`, pid and temp paths under `/tmp`, `listen 8080`. Configs copied with `--chmod=644`. Service is ClusterIP.
- `autoscale-prod`/`pdb-prod` → `-prod-frostmoln`; the ALB ingress → a Traefik one for `/` on `schemas.unbound.se` (the API's `/query` ingress wins on the longer path).
Checked locally (amd64): as uid 101 with all capabilities dropped, `/health`, `/` and SPA routes 200, security headers present.
**Merge with** the schemas PR, after infra#1878 is applied.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_01Ma8eHhW59hLAJuLzBnLvUu
The AWS deploy-prod job has failed since CI left AWS (no k8s.unbound.se
context on the runners). Deploys now go to the Frostmoln production
cluster (namespace schemas), the way the sites do.
Frostmoln enforces restricted Pod Security: the pod runs as the image's
non-root user with a matching securityContext. The prod-only manifests
move to the prod-frostmoln target; the ALB ingress becomes a Traefik one
with a Let's Encrypt certificate.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ma8eHhW59hLAJuLzBnLvUu
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Moves the production deploy from AWS to the Frostmoln production cluster (namespace
schemas), with unboundsoftware/schemas.deploy-prod(AWS, failing since CI left AWS) →deploy-prod-frostmoln:deploy prod-frostmoln -n schemas.nginxinc/nginx-unprivileged(uid 101, port 8080; 1.31.7 isn't published for it yet, so 1.31.6).nginx.conf: nouser, pid and temp paths under/tmp,listen 8080. Configs copied with--chmod=644. Service is ClusterIP.autoscale-prod/pdb-prod→-prod-frostmoln; the ALB ingress → a Traefik one for/onschemas.unbound.se(the API's/queryingress wins on the longer path).Checked locally (amd64): as uid 101 with all capabilities dropped,
/health,/and SPA routes 200, security headers present.Merge with the schemas PR, after infra#1878 is applied.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Ma8eHhW59hLAJuLzBnLvUu
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.