diff --git a/docs/core-hub-cutover-decision-coupling.md b/docs/core-hub-cutover-decision-coupling.md index 71f24eb..4bae062 100644 --- a/docs/core-hub-cutover-decision-coupling.md +++ b/docs/core-hub-cutover-decision-coupling.md @@ -15,7 +15,7 @@ sign-off retires it. | Question | Decision | | --- | --- | | Is legacy Inter-Hub still required for normal operation? | **No** — production ingress at `hub.coulomb.social` serves Core Hub since 2026-07-03. | -| Is Inter-Hub fallback still required? | **Yes, rollback-only** until stabilization closes and `CORE-WP-0007-T02` is approved. | +| Is Inter-Hub fallback still required? | **No** — `CORE-WP-0007` closed 2026-07-08; rollback deployments scaled to 0. | | Are the three cutover gates satisfied? | **Yes** — deployed API smoke, staging import, and activity-core sink evidence all pass. | | Can Phase 4 fin-hub work begin? | **Yes** — multi-hub pattern is proven at Level 2→3 boundary; fin models remain separate implementation. | @@ -70,17 +70,14 @@ Consumers migrating from Inter-Hub `/api/v2` must account for: ## Rollback and Haskell Retirement Gates -Rollback remains one ingress flip: +Haskell retirement completed 2026-07-08 (`CORE-WP-0007`): -1. Delete Core Hub ingress (`30-ingress.yaml`) -2. Apply `rollback-inter-hub-ingress.yaml` -3. Inter-Hub deployment stays running untouched through stabilization +- Forgejo repo renamed to `coulomb/inter-hub-haskell` on railiance01 and CoulombCore +- Rollback deployments scaled to `0` on both clusters; stale railiance01 ingress removed +- haskelseed build lane parked; CI workflows are `workflow_dispatch` only -`CORE-WP-0007` Haskell retirement requires: - -- stabilization window close (through 2026-07-10T17:35Z per workplan) -- operator approval after repeated public probe pass -- explicit decision that rollback is no longer operationally required +Emergency rollback would require scaling Inter-Hub back up and re-applying +`rollback-inter-hub-ingress.yaml` — not operationally maintained. ## Supersede Decisions diff --git a/docs/ops-hub-service-catalog.md b/docs/ops-hub-service-catalog.md index c01d55b..08271d8 100644 --- a/docs/ops-hub-service-catalog.md +++ b/docs/ops-hub-service-catalog.md @@ -17,8 +17,9 @@ operator can answer what is running where before the full standalone | Hosts | 3 | | Clusters | 3 | | Services | 11 | +| Services: not_applicable | 1 | | Services: observed_ok | 6 | -| Services: unknown | 5 | +| Services: unknown | 4 | ## Service Catalog @@ -31,7 +32,7 @@ operator can answer what is running where before the full standalone | issue-core (issue-core) | CoulombCore
type: k3s; cluster: coulombcore-k3s; namespace: issue-core | issue-core | http://127.0.0.1:8765/healthz
Expected: status 200, version response | observed_ok
2026-07-02: REST emission live via cross-machine fleet path. | postgresql:issue-core | tunnel: observed_ok (railiance01 fleet-issue-core-coulombcore → cluster) | Target railiance01 overlay per CUST-WP-0054 drain Wave 4. | | Core Hub (core-hub) | CoulombCore
type: k3s; cluster: coulombcore-k3s; namespace: core-hub-staging | core-hub | https://hub.coulomb.social/api/v2/hubs
Expected: status 200, hub list when authenticated | observed_ok
2026-07-02: Staging deployed; production cutover gated on CORE-WP-0005-T04. | postgresql:core-hub | k8s: observed_ok (coulombcore-k3s/core-hub-staging) | Production cutover to railiance01 pending operator approval. | | Fleet Mesh (railiance01) (fleet-mesh-railiance01) | Railiance01
type: systemd; host: railiance01 | the-custodian
ops-bridge | http://127.0.0.1:18000/state/health
Expected: status 200 | observed_ok
2026-07-03: Workstation reverse tunnels stopped; systemd forwards healthy. | - | ssh-tunnel: observed_ok (railiance01 → coulombcore ClusterIPs) | Migrate to atm-fleet-mesh cert_command when VAULT_TOKEN available. | -| Inter-Hub (inter-hub) | ThreePhoenix Production
type: external; public_endpoint: https://hub.coulomb.social | inter-hub | https://hub.coulomb.social/api/v2/openapi.json
Expected: status 200, OpenAPI document | unknown
2026-05-16: /home/worsch/helix-forge/wiki/OpsHubInventory.md | - | https: unknown (https://hub.coulomb.social) | ops-hub bootstrap requires authenticated UI flow or deployment-side migration. | +| Inter-Hub Haskell (retired) (inter-hub-haskell) | ThreePhoenix Production
type: k3s; cluster: coulombcore-k3s; namespace: inter-hub | inter-hub-haskell | - | not_applicable
2026-07-08: CORE-WP-0007 Haskell retirement | - | - | - | | activity-core (activity-core) | Railiance01
type: k3s; cluster: railiance01-k3s; namespace: activity-core | activity-core
the-custodian | activity-core API health endpoint
Expected: status 200, healthy DB and Temporal status | observed_ok
2026-05-23: API health, worker rollout, Temporal CLI schedule listing, and State Hub bridge were verified. | postgresql:activity-core
temporal:activity-core
nats:railiance01 | k8s: observed_ok (railiance01-k3s/activity-core) | Add explicit ops inventory probes and evidence events. | | Ops Bridge (ops-bridge) | Local Workstation
type: bridge; host: local-workstation | ops-bridge | - | observed_ok
2026-07-03: state-hub-railiance01 and issue-core-railiance01 stopped; not production-critical. | - | ssh-tunnel: observed_ok (interactive dev tunnels only (k3s-api, state-hub-primary)) | Install ops-bridge on railiance01 or keep systemd fleet-mesh units. | | Haskell Build Agent (haskell-build-agent) | Local Workstation
type: systemd; host: haskell-build-vm | the-custodian | http://127.0.0.1:18000
Expected: VM can reach State Hub through SSH forward | unknown
undated: Build agent is a systemd service and registers with State Hub on boot. | - | ssh: unknown (local workstation reverse tunnel port 12222) | Current tunnel and capability registration need live evidence in ops-hub. | @@ -69,10 +70,6 @@ operator can answer what is running where before the full standalone - Migrate to atm-fleet-mesh cert_command when VAULT_TOKEN available. - Retire when State Hub and issue-core move to railiance01. -### Inter-Hub (`inter-hub`) - -- ops-hub bootstrap requires authenticated UI flow or deployment-side migration. - ### activity-core (`activity-core`) - Add explicit ops inventory probes and evidence events. diff --git a/ops/service-inventory.yml b/ops/service-inventory.yml index 69f7059..f2fe6dd 100644 --- a/ops/service-inventory.yml +++ b/ops/service-inventory.yml @@ -324,39 +324,28 @@ services: - "Migrate to atm-fleet-mesh cert_command when VAULT_TOKEN available." - "Retire when State Hub and issue-core move to railiance01." - - id: inter-hub - name: "Inter-Hub" + - id: inter-hub-haskell + name: "Inter-Hub Haskell (retired)" kind: governance-service - lifecycle_state: observed - health_status: unknown + lifecycle_state: retired + health_status: not_applicable environment: threephoenix-prod owner_repos: - - inter-hub + - inter-hub-haskell runtime: - type: external - public_endpoint: "https://hub.coulomb.social" - endpoints: - - id: inter-hub-openapi - type: https - url: "https://hub.coulomb.social/api/v2/openapi.json" - expected_status: 200 - expected_signal: "OpenAPI document" - - id: inter-hub-ui - type: https - url: "https://hub.coulomb.social/Hubs" - expected_status: 302 - expected_signal: "login redirect when unauthenticated" + type: k3s + cluster: coulombcore-k3s + namespace: inter-hub + notes: "Rollback deployment scaled to 0; railiance01 inter-hub also scaled to 0." + endpoints: [] backing_stores: [] - access_paths: - - type: https - target: "https://hub.coulomb.social" - status: unknown + access_paths: [] evidence: - - type: document - observed_at: "2026-05-16" - source: "/home/worsch/helix-forge/wiki/OpsHubInventory.md" - gaps: - - "ops-hub bootstrap requires authenticated UI flow or deployment-side migration." + - type: progress + observed_at: "2026-07-08" + source: "CORE-WP-0007 Haskell retirement" + signal: "Forgejo rename coulomb/inter-hub-haskell; hub.coulomb.social serves Core Hub" + gaps: [] - id: activity-core name: "activity-core"