railiance-apps/workplans/archived/260712-RAPPS-WP-0013-core-hub-helm-cutover-vergabe-refresh.md
codex d03edc946c
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
fix(workplans): migrate archived workplans off the retired RAILIANCE-WP prefix
Completes the migration begun on 2026-08-25, which covered active workplans
only. The archived copies kept their historical identifiers, and three
repositories shared one number space — so their task identifiers collided,
blocking task-level projection reset for those workplans.

Numbering continues each repository's active sequence rather than restarting,
so no identifier is reused. Projection UUIDs are re-derived from the new
canonical ids.

Refs CUST-WP-0068, STATE-WP-0083-T06

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 2583210@bnt-lap001
Assistant-Session: f2bff2d5-e9b2-4338-92ca-10282a927006
2026-08-26 08:05:43 +02:00

3.5 KiB

id type title domain repo status owner topic_slug created updated state_hub_workstream_id
RAPPS-WP-0013 workplan Core Hub Helm cutover and vergabe-teilnahme image refresh financials railiance-apps finished codex railiance 2026-07-10 2026-07-11 3cded0ad-2e42-50a4-88a4-e432fe7b42ba

Core Hub Helm cutover and vergabe-teilnahme image refresh

Follow-up to RAILIANCE-WP-0012 and custodian inbox 3ced85c7. The S5 Helm chart, values, Makefile targets, and runbook exist; the live cluster may still run Core Hub from core-hub/k8s/railiance-production/ manifests.

Separately, the 2026-07-10 delivery-lane snapshot shows vergabe-teilnahme deployed at f95de14 while the source repo head is 1061f3e (14-commit drift).

Production-touching deploy steps require explicit image tags and operator approval. Do not store secrets in workplans.

Core Hub server dry-run on CoulombCore

id: RAPPS-WP-0013-T01
status: done
priority: high
state_hub_task_id: "9c5be78e-4993-5f13-97eb-f98a87cf07fb"

CoulombCore production cluster confirmed. core-hub-server-dry-run passed after make core-hub-helm-adopt and configMap name alignment (core-hub-prod-runtime). Live image gitea.coulomb.social/coulomb/core-hub:a33191a verified.

Adopt Helm-managed Core Hub release

id: RAPPS-WP-0013-T02
status: done
priority: high
state_hub_task_id: "adfc9f66-4370-5e17-9190-89b3e6ef3616"

CORE_HUB_IMAGE_TAG=a33191a make core-hub-deploy installed Helm release core-hub revision 1 on CoulombCore. Resources carry Helm ownership metadata. Service-repo k8s/railiance-production/ path is now superseded for operations.

Verify Core Hub post-cutover smoke

id: RAPPS-WP-0013-T03
status: done
priority: high
state_hub_task_id: "f2605fb0-7c50-5f34-abc3-fa3c9992d879"

Post-deploy make core-hub-status and make core-hub-smoke passed on https://hub.coulomb.social after Helm rollout (2026-07-10).

Refresh vergabe-teilnahme production image

id: RAPPS-WP-0013-T04
status: done
priority: medium
state_hub_task_id: "10955d78-fd8a-5b85-ae33-4511737233c5"

2026-07-11: Migrated deploy target to Forgejo OCI (forgejo.coulomb.social). Added .forgejo/workflows/image.yaml in vergabe-teilnahme; Makefile check-vergabe-image gates deploy. helm/vergabe-teilnahme-values.yaml targets Forgejo repository + tag dfbc13a.

2026-07-12: CI root cause fixed — Forgejo Actions run failed because uv sync resolved issue-core from Forgejo PyPI (404). Fix: uv sync --frozen in vergabe-teilnahme Dockerfile (dfbc13a); workflow aligned with railiance-enablement container-build template. Local docker build verified. issue-core gained publish-forgejo + .forgejo/workflows/publish-python-package.yml so PyPI can move off Gitea (uv.lock still pins Gitea wheel URLs until publish).

Deployed 2026-07-12: operator docker login forgejo.coulomb.social; image forgejo.coulomb.social/coulomb/vergabe-teilnahme:dfbc13a pushed manually; VERGABE_IMAGE_TAG=dfbc13a make vergabe-deploy (Helm rev 3). Pod healthy; https://vergabe-teilnahme.whywhynot.de/health/ → 200. Gitea image retired for this workload.

Post-deploy vergabe smoke and runbook evidence

id: RAPPS-WP-0013-T05
status: done
priority: medium
state_hub_task_id: "fb182909-6f6a-5351-b2d3-a949dc541db3"

After deploy, run make vergabe-status, migrations if required, and HTTPS smoke against vergabe-teilnahme.whywhynot.de. Update docs/vergabe-teilnahme.md with the deployed tag, date, and smoke result (non-secret).

Blocked on: RAPPS-WP-0013-T04.