Repository navigation
Release 0.13.0
XMC Release 0.13.0
Release Version Determination: Minor bump (
0.12.0->0.13.0).
Rationale: Introduces configurable login session lifetime for operators, resolves out-of-the-box pagination and JobSet pod diagnostic bugs, expands end-to-end verification for the production-ready Metrics & Dashboard Service pipeline, and advances experimental Components and Pause Scheduling capabilities.
🌟 1. Public Changes (Available Out-of-the-Box)
✨ New Features & Improvements
- Configurable Login Session Lifetime: Cluster operators can now configure how long authenticated user login sessions remain active via
auth.sessionTtlindeploy/helm/values.yaml(or theSESSION_TTLenvironment variable, defaulting to1h). Both OAuth2 tokens and browser session cookies automatically align to the configured duration (#997).
🐛 User-Facing Bug Fixes & Stability
- Reliable Cursor Pagination & Filtering Across List RPCs: Fixed server-side Spanner SQL errors and cursor deserialization issues when paginating
ListExperiments,ListWorkUnits,ListXidEntries,ListArtifacts, andListStatusMessageswithpage_size,page_token, and customorder_byparameters (#983). - Restored JobSet Startup Pod Diagnostics: Fixed a pod lookup bug in the reconciler that prevented JobSet startup pod checks from running in production, ensuring
ImagePullBackOff,ErrImagePull, andUnschedulablepod warnings are surfaced to users when workloads fail to start (#1017).
🚀 2. Production-Ready Features Behind Feature Flags (Safe to Enable)
The following capabilities are fully developed, verified, and safe to be enabled. Their default enablement is temporarily postponed solely to align with managed solution milestones or external BYOD prerequisites.
🔹 [Flag: enable_metrics & dashboard_service_deployment_enabled] Metrics Pipeline & Dashboard Service
- How to enable:
- Metrics Ingestion: Set
enable_metrics: trueindeploy/ctk_v2/xmanager-cloud-deployment.yaml(ormetrics.enabled: trueindeploy/helm/values.yaml). - Dashboard Service: Set
dashboard_service_deployment_enabled: trueindeploy/ctk_v2/xmanager-cloud-deployment.yaml(ordashboardServiceDeployment.enabled: trueindeploy/helm/values.yaml). (Note: Dashboard Service requires BYOD storage devices—see the deployment README—and also requiresenable_metrics/metrics.enabledto be enabled for workload metrics data to be generated).
- Metrics Ingestion: Set
- What's New:
- End-to-End ClickHouse Metrics & Dashboard Hydration Verification: Enabled the metrics pipeline and ClickHouse/Redpanda addons in the continuous nightly environment, adding automated end-to-end verification of workload execution, direct ClickHouse SQL data ingestion, and Dashboard Service chart hydration (#910, #933, #1029, #1056).
- Flexible Node-Pool Scheduling for Redpanda Addon: Removed the hardcoded
main-poolnode selector fromdeploy/addons/metrics/redpanda/values.yamlso Redpanda schedules cleanly across standard and custom GKE node pool topologies, and pinned the documented Redpanda chart version to5.8.3(compatible with ClickHouse24.3) (#933).
🧪 3. In-Development / Experimental Features Behind Flags
Warning
The following capabilities are under active ongoing development, experimental, and may not yet be functional. They are available for early preview and evaluation by enabling their deployment flags in your Cluster Toolkit deployment YAML or Helm values.yaml.
🔹 [Flag: enable_components] Components
- How to enable: Set
enable_components: trueindeploy/ctk_v2/xmanager-cloud-deployment.yaml(orcomponentsDeployment.enabled: trueindeploy/helm/values.yaml). - What's New:
⚠️ [Topology Change whenenable_components: true] Ingestion Gateway Moves from Umbrella Chart to 1P Component: Whenenable_components: true(componentsDeployment.enabled: true), enablingenable_metrics: true(ingestionGatewayDeployment.enabled: true) no longer deploys the Ingestion Gateway from the umbrella Helm chart. Instead,ingestion-gatewayis now packaged as an embedded 1P native component blueprint (deploy/profiles/stable-2026a/components/ingestion-gateway) and actuated dynamically byxmc-bridgeonce itsComponentresource (along with its requiredredpandaandclickhousecomponent dependencies) is active (#969, #974).- Dependency-Safe Component Actuation & Deactivation: Propagated
Component.spec.dependenciesinto the CMS dependency graph and gated both component actuation and deactivation on dependency readiness and safety checks so dependent components are not orphaned or started prematurely (#989, #991, #992). - Live 1P Helm Release Health & Probe Diagnostics:
xmc-bridgenow reports live 1P Helm release health, verifies release status on cold-start hydration, and falls back to a clear diagnostic message when a 3P readiness probe fails without detail (#990, #1014). - Modular Bridge Reconciler Architecture: Decomposed
pkg/components/bridge/reconciler.gointo focused modules covering condition and spec parsing, CMS client and prober wiring, 3P wrapper reconciliation, and deletion/deactivation lifecycle management (#1009, #1010, #1011, #1012, #1015).
🔹 [Flag: pause_scheduling_enabled] Pause Scheduling
- How to enable: Set
pause_scheduling_enabled: trueindeploy/ctk_v2/xmanager-cloud-deployment.yaml(orfeatureFlags.pause_scheduling_enabled: trueindeploy/helm/values.yaml). - What's New:
- Paused Work Unit Status in the UI: Fixed the actuator pause handler update mask so paused tasks persist
SCHEDULING_PAUSEDwithout failing validation, and added a dedicated orange "Scheduling Paused" status chip and status bar segment in the Web UI (#984). - Backlog-Throttled Resumption Replay & Lease Extension: The Experiment State Server resumption worker now throttles paused-task replay when the Redis task stream (
xmc-tasks-stream) backlog exceeds threshold (500by default) to protect Redis memory, and automatically extends its Redis message claim lease (XCLAIM) during long replay runs (#986, #1007, #1042). - Transactional Pause Scheduling Storage Wiring: Centralized pause state and paused task repositories in the storage layer and bound actuator and ESS pause writes to transaction-scoped repositories (#1043, #1044).
- Paused Work Unit Status in the UI: Fixed the actuator pause handler update mask so paused tasks persist
⚙️ 4. Operational, Infrastructure & Engineering Velocity
Changes relevant to cluster operators, CI/CD, and internal architecture that do not alter the end-user interface.
- Reconciler Performance, Observability & Lifecycle Modernization: Migrated the reconciler to upstream
controller-runtimeAPIs, consolidated all reconciler and controller-runtime Prometheus metrics onto the:8082metrics endpoint (removing the unexposed:8081listener), scoped the Kubernetes informer cache strictly to XMC-managed JobSets and JobSet-owned Pods to lower memory usage, bounded reconcile loops withreconciliation_timeout(2m), and registered the update batcher andkueuesyncloop as managed controller-runtime runnables (#1017, #1021, #1022, #1023, #1024). - Storage Transaction Runner Refactoring: Introduced a Spanner transaction runner and moved work unit restart orchestration out of the storage layer into Experiment State Server handlers (#950).
- Release Orchestration & Developer Environment Tooling: Added the end-to-end
xmc_releaseorchestration skill and workflow watcher (dispatch_and_watch.py), and updated the GKE dev environment upgrade script to restartxmc-bridgeandingestion-gatewayduring rollout (#980, #988). - CI, Test Scoping & Linting Standards: Hardened stacked-PR test target resolution and added concurrency controls to
unit-tests.yml, propagated dynamic work unit counts to nightly verification scripts, enforced Python cyclomatic complexity checks in Ruff and unused-dependency linting across the stack, and updated engineering workflow rules (#987, #1000, #1001, #1008, #1041). - Dependency & Security Maintenance: Remediated Dependabot security alerts for
qsin the UI and bumped npm/yarn development packages (#999, #1026, #1054, #1055).