ISSUE-WP-0003 finished: live REST emission proven (Gitea issue 176), topology corrected

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 14:49:57 +02:00
parent 8d34c6d468
commit a691f93f16

View File

@@ -4,7 +4,7 @@ type: workplan
title: "Deploy issue-core as a service on railiance01 (ArgoCD GitOps pilot)"
domain: infotech
repo: issue-core
status: blocked
status: finished
owner: claude
topic_slug: custodian
created: "2026-06-19"
@@ -235,7 +235,7 @@ the cluster Gitea (markitect) backend.
```task
id: ISSUE-WP-0003-T06
status: wait
status: done
priority: high
state_hub_task_id: "96b14cdb-364f-4eab-a80e-dd8b3859c694"
```
@@ -262,7 +262,7 @@ state_hub_task_id: "96b14cdb-364f-4eab-a80e-dd8b3859c694"
```task
id: ISSUE-WP-0003-T07
status: wait
status: done
priority: medium
state_hub_task_id: "8d853b8e-cfca-441d-b817-0a29e37bd66e"
```
@@ -271,8 +271,8 @@ state_hub_task_id: "8d853b8e-cfca-441d-b817-0a29e37bd66e"
- ArgoCD Application Synced/Healthy; issue-core Pod Ready; Service reachable
cluster-internal.
- [ ] activity-core -> issue-core emission returns 201 and creates a Gitea issue
(remaining T06 handoff).
- [x] activity-core -> issue-core emission returns 201 and creates a Gitea issue
(2026-07-02: Gitea issue `176` via the live sink path — see completion note).
- [x] Document the GitOps runbook (image build/push, ArgoCD sync, secret
contract, smoke, activity-core handoff) in `docs/argocd-gitops.md`.
- Emit an `add_progress_event` milestone to the hub when the activity-core
@@ -289,3 +289,39 @@ state_hub_task_id: "8d853b8e-cfca-441d-b817-0a29e37bd66e"
- `activity-core/k8s/railiance/README.md` — the imperative pattern being
superseded for this service.
- `~/ops-warden/wiki/playbooks/activity-core-issue-sink.md` — key routing.
## Completion 2026-07-02 — live emission proven, topology corrected
**Topology correction:** this workplan's "railiance01 cluster" is actually the
CoulombCore k3s cluster (92.205.130.254, reached via the workstation
kubeconfig tunnel `127.0.0.1:16443`). The real railiance01 (92.205.62.239)
hosts activity-core and has no issue-core namespace. The in-cluster
`issue-core.issue-core.svc.cluster.local` URL that T06 originally assumed was
therefore never resolvable from activity-core.
**Cross-machine lane built (2026-07-02):**
- ops-bridge gained an optional `remote_host` forward destination
(ops-bridge commit) enabling tunnels to k3s ClusterIPs.
- Tunnels: `issue-core-coulombcore` (workstation `127.0.0.1:18765` ->
CoulombCore ClusterIP `10.43.103.154:8765`, health-checked on `/healthz`)
and `issue-core-railiance01` (railiance01 `127.0.0.1:18765` -> workstation).
- activity-core commit `a1e2a42`: new `actcore-issue-core-bridge`
hostNetwork proxy (host port 18081 -> node-local 18765) cloned from the
state-hub-bridge pattern, `ISSUE_CORE_URL` ->
`http://actcore-issue-core-bridge.activity-core.svc.cluster.local:8765`,
`ISSUE_SINK_TYPE` -> `rest`.
- `ISSUE_CORE_API_KEY` merged into railiance01's `actcore-runtime-secret` by
the operator via a stdin-only pipe from the approved OpenBao lane
(`CCR-2026-0002`, activated the same day).
**Emission proof:** from inside the restarted actcore-worker, the real
`IssueCoreRestSink` emitted a labeled smoke TaskSpec and received
`TaskRef(external_id='176', backend='gitea')` — Gitea issue `176` in
`coulomb/markitect-main` (default backend). Auth, bridge, tunnels, issue-core
validation, and Gitea creation all exercised on the production path.
**Contract note for emitters:** `POST /issues/` requires `target_repo` and
`activity_definition_id` (422 otherwise). activity-core `TaskSpec` defaults
(`target_repo=None`, `activity_definition_id=""`) will be rejected — rule and
instruction emitters must populate both.