Skip to the content.

skupper-model-provider Changelog

Updated Change
2026-08-29 13:14 v8.10.0 — Added animated VAN topology GIF to docs/ and image link in SKILL.md Architecture section
2026-08-29 12:42 v8.9.0 — Redesigned VAN Topology diagram: removed RouterAccess and Controller components, added LAN/AWS/HOST network zone bands, renamed CRC to OpenShift Local, added flow animations, improved layout alignment
2026-08-27 12:59 v8.8.0 — Fix delegation instructions: hosted-model-ctl takes profile names not host names; added explicit start/stop on PROVIDER rows with resolution order; added 3 known issues (OLS duplicate volume mount, llama.cpp grammar incompatibility, provider naming convention)
2026-08-27 12:14 v8.7.1 — Document combined status report format: 5-section layout (VAN infra, CRC links, localhost listeners, CRC listeners, model containers)
2026-08-27 11:19 v8.7.0 — Refactor scripts for dual CRC links: common.sh (new helpers + topology vars), up.sh (recreate both links + both listeners), down.sh (delete both links), status.sh (report both links/listeners/services), precheck (show full CRC topology)
2026-08-27 10:57 v8.6.0 — Add local-ezhang RouterAccess (port 55672) and CRC→local link for rhtevan-work model access; CRC now has 2 links (hub-rhel-ai + local-ezhang) and 2 listeners (9000 + 10000)
2026-08-26 23:21 vv8.5.0 — Simplified signal routing — dropped redundant ‘model’ from all signals. ‘start skupper’, ‘stop skupper on crc’, ‘start skupper with g8b-fp8-spec-128k’ now work. Long forms still accepted. Signal table generalized: PROVIDER/CONSUMER placeholders instead of hardcoded host names. Description field updated with short-form signals including host and profile examples.
2026-08-26 23:11 vv8.4.0 — Added consumer site signal routing. on HOST modifier now works for any site (provider or consumer). Added start/stop skupper model on crc signals. Scoping rules clarify provider vs consumer delegation (consumer = VAN only, no hosted-model-ctl). Script Separation table and Operations examples show crc as valid HOST. Added S10a/S10b (consumer site scoped start/stop) and T10a/T10b/T10c test cases. No script changes — up.sh crc and down.sh crc already worked.
2026-08-26 09:52 vv8.3.0 — Aligned with hosted-model-ctl v7.2.0 profile-only architecture. Replaced stale model alias layer (g350m, g1b, g8b, g30b-96k, g8b-128k) with host-based routing. common.sh: removed alias_to_host/local_port/routing_key/container functions; added resolve_host(), host_to_local_port(), host_to_routing_key(), PROFILE_TO_HOST map. test-model.sh: accepts host or profile name; T6 rewritten from container name lookup to direct remote API check. up.sh/down.sh: alias_to_host replaced with resolve_host. SKILL.md: Model Alias Routing table replaced with Host-Based Routing; signal routing and scoping rules updated to profile names. van-topology diagram updated and re-delivered (showcase 9/9).
2026-08-18 23:29 Added interactive diagram links to SKILL.md Architecture section.
2026-08-18 23:05 Added architecture diagram (VAN topology) and lifecycle diagram (operational lifecycle) to docs/ using archify.
2026-08-14 12:13 v8.2.0 — Partial Availability. up.sh and down.sh no longer hard-fail when a host is unreachable — they skip it with warnings and operate on reachable hosts only. Added Phase 0 (reachability check) to down.sh. Both scripts now emit a summary section (✅ FULL UP/DOWN or ⚠️ PARTIAL UP/DOWN with up/skipped lists). Added Site Roles section to Agent Orchestration (Provider: rhel-ai, rhtevan-work; Consumer: localhost, CRC). Added Partial Availability protocol: agent delegates hosted-model-ctl only for reachable Provider hosts, reports skipped hosts by role, presents combined status report. No user confirmation needed — partial success is the default. Updated S2a for 4 sites. Added S9a/S9b/S9c (partial start/stop specs) and T9a/T9b/T9c (test cases).
2026-08-13 19:50 v8.1.1 — Bugfix: skupper system start re-enables services on every run, recreating default.target.wants/ symlinks that v6.1.2 had removed. Moved systemctl --user disable into install_router_auto_restart() and install_controller_auto_restart() in common.sh so the stale symlinks are removed every time the unit files are patched. Previously, disable was a one-time manual fix that didn’t survive re-running setup.sh. Applied fix to all 3 hosts (localhost, rhel-ai, rhtevan-work). Verified: all services now static with no default.target.wants symlinks.
2026-08-13 18:10 v8.1.0 — Network Observer. Added optional Skupper Network Observer UI on CRC (CRC_OBSERVER_ENABLED toggle in topology.env). Installs skupper-netobs-operator (stable-2.2, AllNamespaces) in openshift-operators. Creates NetworkObserver CR (observability.skupper.io/v2alpha1) in model-provider-crc. Auto-creates Route, 3-container pod (observer + oauth-proxy + prometheus). Dashboard shows all 4 VAN sites, links, traffic flows. Scripts: setup.sh (6h: operator + CR + Route), teardown.sh (observer cleanup before namespace deletion), status.sh (Observer pod + Dashboard URL). Pod label: app.kubernetes.io/name=network-observer. Independent lifecycle from VAN — up.sh/down.sh don’t touch observer.
2026-08-13 17:32 v8.0.0 — CRC as 4th site. Added crc-ezhang as a first-class Kubernetes site in the VAN with full lifecycle parity. All scripts updated: common.sh (CRC config, oc_crc() wrapper with explicit --context, site_platform(), CRC helpers, 4-site topology display, CRC precheck), setup.sh (Phase 6: operator install in openshift-operators AllNamespaces mode, TLS secret, Site, Link, Listener), teardown.sh (Phase 6: CRC resource + operator + namespace cleanup), up.sh (CRC link recreate + router pod restart), down.sh (CRC link delete preserving Site/Listener), status.sh (CRC section: site/router/link/listener/service/operator), test-model.sh (--from-crc flag, T7-T10 CRC tests using oc run --quiet). Key findings: skupper-operator v2.2.1 only supports AllNamespaces install mode; kube-adaptor requires kubernetes.io/tls type secrets (not Opaque); router pod restart needed after link recreation to mount TLS secret; CRC→hub TCP precheck downgraded to warning (hub may not be up during setup). Config: topology.env CRC section (CRC_ENABLED, CRC_SITE_NAME, CRC_NAMESPACE, CRC_OC_CONTEXT, CRC_LINK_TARGET, CRC_MODEL_PORT, CRC_ROUTING_KEY). Verified: setup→status→test(10/10)→down→up→teardown→re-setup full cycle.
2026-08-13 12:51 v7.4.1 — Skill check fixes: teardown.sh now removes router start-watch.sh (not just controller’s); setup.sh uses mktemp+chmod 600 for link YAML temp files (was predictable /tmp/link-hub-*.yaml); updated POSTMORTEM.md Architecture Decision #4 to reflect v6.1.1 change (controllers now stopped on down.sh all); minor comment update in down.sh Phase 1.
2026-08-13 v7.4.0 — Simplified start-watch.sh from 20 lines to 6: removed bash SIGTERM trap, stop marker file, and podman inspect exit code check. Now uses direct podman wait exit code propagation. Added SuccessExitStatus=SIGTERM to systemd units. Fixes service marked failed (exit 143) after systemctl stop. Verified on all 3 hosts: crash → auto-restart ✅, systemctl stopinactive/success ✅, down.sh → all inactive/success ✅.
2026-08-12 v7.3.0 — Bugfix: up.sh no longer calls recreate_router_with_tmpfs() on every start. Tmpfs workaround is setup-only — container retains flags across stop/start. All hosts now use identical systemctl --user start path, restoring systemd auto-restart (start-watch.sh) on rhel-ai. Split S7→S7a/S7b for normal vs tmpfs-workaround host auto-restart. Added T7a/T7b. Verified: T7b auto-restart on rhel-ai confirmed (kill → restart in ~5s).
2026-08-12 v7.2.0 — Bugfix: Scoped down.sh HOST no longer kills other routes. Local router/controller are shared infrastructure; scoped mode now checks if other remote hosts still have active routers before stopping local. Added up.sh scoped verification of unaffected routes. Split S2→S2a/S2b, S3→S3a/S3b/S3c with negative assertions. Added tests T2b/T2c/T3b/T3c/T3d/T3e for all scoped scenarios. Added Gotchas for shared-infrastructure incident and rhel-ai router surviving systemctl stop (tmpfs workaround creates container outside systemd lifecycle; explicit podman stop safety net added).
2026-08-12 v7.1.0 — Enhanced status.sh with dual-column reporting: Last-Known (persisted YAML) vs Live (actual container/systemd/port checks). Sites show controller+router systemd state with STALE flag when YAML disagrees with reality. Links include TCP probe to remote inter-router port. Listeners check local port binding. Removed redundant systemd section (merged into Sites).
2026-08-12 v7.0.1 — Clarified loose coupling: agent semantically triggers hosted-model-ctl (loads skill, follows instructions) — no cross-script invocation. Stripped model container and e2e sections from status.sh (VAN-only). Added skupper model provider status/check skupper model provider signals.
2026-08-12 v7.0.0 — Breaking: Decoupled model lifecycle from VAN scripts. up.sh/down.sh now manage Skupper infrastructure only (controllers + routers). Model containers semantically triggered via hosted-model-ctl at agent level (DRY + Loose Coupling). Added Agent Orchestration section with signal routing rules, scoping rules (on HOST, with MODEL), error handling (STOP & WAIT), startup/shutdown ordering. Updated signals for symmetric verb skupper model / skupper model verb patterns. Removed --keep-van flag (no longer needed). Scripts accept optional [HOST] arg for scoped operations. Updated Specification (S1–S8) and Tests (T1–T8).
2026-08-12 v6.1.3 — Fixed down.sh Phase 1 container filter: --filter 'name=model-' was also matching model-provider-podman-skupper-router; added grep -v skupper-router to exclude routers from model stop phase.
2026-08-12 v6.1.2 — Removed [Install] / WantedBy=default.target from systemd unit templates in common.sh; disabled services on all 3 hosts. Prevents auto-start on reboot when Linger=yes. up.sh starts on demand; Restart=on-failure still handles crash recovery.
2026-08-11 v6.1.1 — down.sh all now stops controllers on all 3 hosts (previously left running). No reason to keep controllers alive when all routers are down.
2026-08-11 v6.1.0 — Extracted site-specific config to topology.env (gitignored). Added topology.env.example with placeholder values. Added precheck capability (setup.sh --check) with topology display and validation. Signals: skupper model precheck, skupper model topology, show skupper topology. Scripts no longer contain hardcoded IPs, hostnames, or usernames.
2026-08-11 v6.0.1 — Added Tests section (T1–T7) mapped to Specification (S1–S7) per skill-check P4
2026-08-11 v6.0 — Complete refactor: separated setup.sh/teardown.sh (one-time) from up.sh/down.sh (daily). Added auto-restart patches for router + controller. Unique site names (hub-rhel-ai, hub-rhtevan-work, local-site). Manual link building (CLI link generate broken on podman). SANs on all RouterAccess certs. Comprehensive status.sh with controllers, systemd, e2e.
2026-08-11 v5.1 — Fix pipefail crash in status.sh
2026-08-08 v5.0 — Complete rewrite for podman/interior platform
2026-08-08 v4.0 — All-interior mode; podman platform
2026-08-07 v3.0 — Two routing keys; rhel-ai edge port 8000
2026-08-06 v2.0 — rhel-ai support; model alias routing
2026-08-04 v1.0 — Initial skill