APPLY ONLY AFTER the multi-arch hermes-agent image is built + validated (both arch leaves + promoted index). Supersedes the earlier titan-22 flip on feature/hermes-agent-multiarch (dfa50b75), which required worker=true and tolerated the old media-primary taint. Rewrites the runtime node affinity so hermes-agent runs on titan-22: - Adds a second, OR'd nodeSelectorTerm matching amd64 + hostname titan-22 + node-role.kubernetes.io/accelerator=true. It does NOT require node-role.kubernetes.io/worker (titan-22 is no longer a generic worker). - Keeps the arm64 pi-fleet term untouched as an OR'd fallback so the worker is never stranded if titan-22 is unavailable. - Makes titan-22 the STRONG/primary preference: a hostname=titan-22 preference at weight 100 (the scheduler maximum) outranks the pi-fleet rpi5 nudge, lowered to weight 50, so hermes actually lives on titan-22. - Tolerates node-role.kubernetes.io/accelerator=true:NoSchedule so it can consider titan-22; this does not change jellyfin's media-core priority or preemption. Updates test_hermes_agent_layout.py to the two-term topology, the [100, 50] preference weights, the titan-22 primary preference, the absence of a worker requirement on the titan-22 term, and the toleration. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
titan-iac
Flux-managed Kubernetes desired-state config for bstein.dev.
Canonical source URL:
ssh://git@scm.bstein.dev:2242/atlas/titan-iac.git
Scope
This repo contains cluster configuration consumed by Flux:
- platform/infrastructure manifests
- service manifests and kustomizations
- operational scripts for render/reconcile workflows
Apply model
I use Git + Flux as the source of truth and avoid manual in-cluster edits for durable changes.
Description
Languages
Python
74%
JavaScript
10.2%
Shell
6.2%
TypeScript
3.9%
Go
2.1%
Other
3.4%