4.8 KiB
Core Hub CoulombCore production inventory — 2026-08-20
This is a metadata-only, read-only inventory captured over the existing
coulombcore SSH route. No Secret value or database credential was read.
Secret inspection used kubectl describe, which exposed key names and byte
sizes only.
Source host and runtime
| Item | Live CoulombCore state |
|---|---|
| Node | 254.130.205.92.host.secureserver.net / 92.205.130.254 |
| Kubernetes | v1.30.3+k3s1, Ready |
| Namespace | core-hub, labeled railiance.io/postgres-client=apps-pg |
| Helm | release core-hub, revision 1, chart core-hub-0.1.0 |
| Deployment | core-hub-api, Deployment revision 2, 1/1 Ready |
| Image reference | gitea.coulomb.social/coulomb/core-hub:a33191a |
| Pulled image ID | sha256:5e1334eb25975b5f7792d2ae9289898586224133896c6aa55bd27cdc776fb10c |
| Service | core-hub-api, ClusterIP, port 8010 |
| Ingress | Traefik, hub.coulomb.social, TLS Secret core-hub-tls |
| Runtime configuration | CORE_HUB_ENV=production, CORE_HUB_AUTO_CREATE_TABLES=0 |
| Runtime Secret metadata | core-hub-prod-env; keys CORE_HUB_API_TOKEN (64 bytes) and CORE_HUB_DATABASE_URL (131 bytes) |
| Database boundary | Namespace declares the apps-pg consumer; the Secret value was not read |
| Migration | core-hub-prod-migrate completed once in 65 seconds using the same image tag |
| Health | Public /healthz and /readyz both returned status: ok |
The source pod has zero restarts and has been running for 41 days. Resource
requests/limits already match the package baseline: 250m/512Mi requests and
1 CPU/1Gi limits. Readiness and liveness use /readyz and /healthz.
Source-to-package differences
The rapp-core-hub chart 0.3.0 intentionally changes the following platform
posture on railiance01:
- immutable Forgejo image digest
sha256:0db6f7c646c6d4c1fbc844dc266fcf883584637e1c1f47802efe1c6a98558d3cinstead of the source's mutable Gitea tag and pulled digest; - a dedicated non-token-mounting ServiceAccount rather than
default; - non-root, read-only-root-filesystem, dropped-capability and seccomp settings rather than empty pod/container security contexts;
- default-deny plus explicit DNS, PostgreSQL and ingress NetworkPolicies rather than no NetworkPolicy objects;
- separate static API-token, runtime database and migration database Secrets
rather than one combined
envFromSecret; and - mounted-file credential rotation supervision rather than process-lifetime environment values.
The target railiance01 preflight found a Ready v1.35.1+k3s1 node and no
existing core-hub namespace or workload. Public Ingress remains disabled in
the package until the operator-approved traffic cutover.
External Secrets Operator CRDs are installed on railiance01. Existing audit-core
KV and database stores demonstrate the required two-store pattern, but no
Core Hub store exists yet. The rapp-postgres repository also has no accepted
Core Hub consumer declaration. These are explicit platform gates; the package
must not be applied with placeholder Secrets or a standing database password.
The exact target image was pulled successfully by digest. Inside that image,
core_hub.app, Uvicorn and Alembic import successfully under UID/GID 10001 with
a read-only root filesystem and only a temporary /tmp. The image declares no
default user, so the chart's explicit non-root security context remains
required. This proves entry-point and filesystem compatibility without starting
a database writer.
The application image differs from the live source and therefore must pass the private shadow restore, schema, public-catalog, protected-route and consumer smokes before traffic moves. This is an explicit verification gate, not an assumption of image equivalence.
Rollback anchors
- Keep the CoulombCore Deployment, Service, Ingress, Secret and database writer intact until stabilization closes.
- The authoritative live image rollback anchor is the pulled digest
sha256:5e1334eb25975b5f7792d2ae9289898586224133896c6aa55bd27cdc776fb10c, with taga33191aretained as historical context. - Helm reports revision 1, while Kubernetes reports Deployment revisions 1 and
2 with two retained ReplicaSets. Because the Deployment has post-Helm rollout
history, do not rely on
helm rollbackalone for the source fallback. - Traffic rollback restores
hub.coulomb.socialand the active tunnel to CoulombCore before disabling the railiance01 writer.
Read-only commands used
kubectl get nodes -o wide- namespace-scoped
kubectl get/rollout historyfor Deployment, ReplicaSet, Pod, Service, Ingress, Job, NetworkPolicy, ServiceAccount and ConfigMap kubectl describe secret core-hub-prod-envhelm -n core-hub history/get values/get manifest core-hub- public HTTPS
/healthzand/readyzrequests - digest-pinned local image pull and non-root/read-only import smoke