Andrew Stoltz
8a960ffc73
feat(fc-distribution): K8s manifest for Phase 1 edition publisher
Adds apps/fc-distribution/{fc-distribution.yaml,kustomization.yaml,README.md}.
Ships the FlowerCore.Distribution service (Blazor + REST + MCP) backed by
Synology NFS for SQLite catalog + content-addressed blob root.
Contents:
- Namespace fc-distribution
- 3x OnePasswordItem (FlowerCore Code Signing CA informational + per-edition
signing keys for kiosk-standard and aistation-field)
- Deployment: localhost/fc-distribution:v202604232000 (already imported to
rke2-server via ctr), pinned to rke2-server nodeSelector because Synology
NFS ACL restricts writes to that node, emptyDir for /tmp + /app/logs,
inline NFS for /data (subPath distribution/data) and /blobs (subPath
distribution/blobs), Secret volume mounts for /signing/<edition>.
readOnlyRootFilesystem + runAsUser 1654 + drop ALL capabilities.
Probes: startup + readiness on /healthz, liveness on tcpSocket (defense
against future auth middleware accidentally gating /healthz).
- Service (ClusterIP :80 -> container :8080)
- Certificate (cert-manager ClusterIssuer step-ca-acme, dist.iamworkin.lan,
90d / 30d renew). pfSense Unbound override dist.iamworkin.lan ->
10.0.56.200 already in place (req'd for HTTP-01).
- IngressRoute (Traefik websecure, Host rule on dist.iamworkin.lan)
Env var keys align with the scaffold:
FlowerCore__Database__ConnectionStrings__Sqlite
FlowerCore__Distribution__Blobs__Root
FlowerCore__Distribution__Signing__EditionCerts__<slug>__{CertPath,KeyPath}
Consumer: ProvisioningAgent (USB-side, Phase 2) — see
FlowerCore.Notes/docs/infrastructure/usb-provisioning-architecture.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 15:59:50 -05:00
..
2026-04-23 13:54:06 -05:00
2026-03-10 01:12:08 -05:00
2026-04-17 15:51:49 -05:00
2026-03-10 01:12:08 -05:00
2026-03-10 01:12:08 -05:00
2026-04-16 19:25:25 -05:00
2026-04-08 18:20:23 -05:00
2026-04-23 15:59:50 -05:00
2026-04-09 15:09:08 -05:00
2026-04-08 18:20:23 -05:00
2026-04-23 09:51:57 -05:00
2026-04-16 19:25:25 -05:00
2026-04-22 15:48:05 -05:00
2026-04-08 18:20:23 -05:00
2026-04-08 18:20:23 -05:00
2026-04-09 15:09:08 -05:00
2026-04-09 15:09:08 -05:00
2026-04-22 15:55:54 -05:00
2026-04-08 18:20:23 -05:00
2026-04-22 23:22:14 -05:00
2026-04-23 15:54:07 -05:00
2026-03-10 01:12:08 -05:00
2026-03-10 01:12:08 -05:00
2026-03-24 15:55:52 -05:00
2026-04-23 11:27:30 -05:00
2026-04-05 08:47:42 -05:00
2026-04-22 21:23:38 -05:00
2026-03-24 15:55:52 -05:00
2026-04-22 23:11:47 -05:00
2026-04-22 21:32:14 -05:00
2026-03-24 15:55:52 -05:00
2026-03-09 16:35:04 -05:00
2026-03-24 15:55:52 -05:00
2026-04-16 20:56:30 -05:00
2026-03-10 01:12:08 -05:00
2026-03-24 15:55:52 -05:00
2026-04-22 22:50:24 -05:00