21 Commits

Author SHA1 Message Date
jenkins
17c5f5093a placement(quality): use titan-22 spare capacity 2026-08-23 11:50:39 -03:00
jenkins
271f3e8c32 ops: spread saturated node workloads 2026-08-23 10:37:01 -03:00
Hermes Agent
94106bf252 refactor(hermes): rename the owner agent host to worker.bstein.dev
Introduce worker.bstein.dev as the canonical hostname for the owner-only
Hermes coordinator, previously agent.hermes.bstein.dev.

The rename is additive, matching the shape #38 restored for chat and triage.
CoreDNS, both agent Ingresses and the hermes-sites certificate now serve BOTH
names, so merging this cannot take away the endpoint the operator uses to
reach the coordinator. Retiring agent.hermes.bstein.dev is a separate,
separately scheduled change. No redirect middleware is added.

What switches to the new host:
- HERMES_DASHBOARD_PUBLIC_URL and the oauth2-proxy --redirect-url
- the Keycloak agent proxy rootUrl
- operator docs, skills, the ZAP baseline target and the triage monitor default

What stays dual-homed until retirement:
- CoreDNS hosts entry, both agent Ingress rules, certificate SANs
- API_SERVER_CORS_ORIGINS (now a comma-separated pair)
- the Keycloak redirect URIs, web origins and post-logout origins, so a
  rollback only needs the oauth2-proxy --redirect-url reverted and does not
  require re-running the ensure job

The agent client passes its legacy origin through the optional fourth argument
#38 added to ensure_proxy_client, so no second mechanism is introduced. The
immutable ensure Job goes -11 -> -12 because #38 already consumed -11 and that
run has completed; without a further bump this change would never be applied.
Login on the new host fails until the -12 Job completes.

Because the session and CSRF cookies use the __Host- prefix they are bound to
one origin, so a fresh login must start on worker.bstein.dev and existing
sessions do not carry over -- re-login is required after rollout.

#38's public-host continuity test now covers the agent proxy's dual origins
rather than asserting the agent surface was untouched by the rename.

Knowledge catalogs and diagrams regenerated with `make knowledge`.
2026-08-21 10:29:46 +00:00
Hermes Agent
79be4d1c71 refactor(hermes): rename chat and triage public hosts 2026-08-21 06:43:19 +00:00
jenkins
bb73efb285 feat(hermes): split chat agent and triage surfaces 2026-08-08 17:59:57 -03:00
jenkins
8f45f47e60 refactor: restructure services layout, retire oceanus, add aether scaffolding
- Move flat service manifests into structured subdirs (apps/, bootstrap-jobs/,
  repair-jobs/, migration-jobs/, validation-jobs/, node-ops/, networking/)
- Retire oneoffs/ directories across services
- Remove oceanus cluster and its host roles; add aether cluster + terraform scaffolding
- Reorganize scripts/ into ops/, render/, sync/, manual-tests/
- Add Makefile with render/validate/test/flux targets and repo-structure tests
- Update flux-system application CRs to the new paths
- Add hermes-automated-triage-24h-plan knowledge doc (+ comms mirror)
- Refresh knowledge catalogs, dashboards, vmalert rules, quality contract

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 16:21:36 -03:00
jenkins
16a561e107 scheduling: target hdd storage node exclusions 2026-05-22 14:02:17 -03:00
jenkins
e5d3362299 scheduling: keep apps off longhorn storage nodes 2026-05-22 13:38:29 -03:00
jenkins
9dbc0ee95e quality: cap placement preference weights 2026-05-20 17:49:09 -03:00
jenkins
df51fe52c7 quality: keep sonar off control plane 2026-05-20 17:45:56 -03:00
jenkins
7be22939db quality: allow sonar to spill onto rpi4 workers 2026-05-20 17:43:39 -03:00
jenkins
712b97f64b agent(openclaw): expose oauth protected UI 2026-05-20 17:22:12 -03:00
jenkins
f2fa710732 quality: give sonarqube a startup probe 2026-05-20 01:40:15 -03:00
jenkins
2a6e003286 quality: recreate sonarqube on pvc moves 2026-05-20 01:24:38 -03:00
jenkins
a243190145 quality: right-size sonarqube cpu request 2026-05-20 01:21:11 -03:00
jenkins
f838ac0709 quality: keep sonarqube on rpi5 workers 2026-05-20 00:57:24 -03:00
jenkins
b401f6c6fb quality: loosen sonarqube placement pressure 2026-05-19 16:41:03 -03:00
80955bbefd infra(ci): use harbor python utility images 2026-04-21 13:37:46 -03:00
7aca564e02 quality(sonarqube): read exporter token from shared oidc vault path 2026-04-19 16:40:39 -03:00
d35abed877 quality(sonarqube): inject exporter token from vault 2026-04-19 16:34:27 -03:00
45fde5e2bc quality: standardize suite checks and add SonarQube stack 2026-04-19 14:18:58 -03:00