Repository navigation
Release 0.17.0
XMC Release 0.17.0
Release Version Determination: Minor bump (
0.16.0->0.17.0).
Rationale: Promotes Log Monitor (log_monitor_deployment_enabled: true/logMonitorDeployment.enabled: true) to enabled out-of-the-box by default across Cluster Toolkit and Helm deployments, adds database schema version health checks anddb-configvisibility in the Admin Panel, hardens XID ACL principal normalization and fail-closed production authentication guards, raises the minimum Python version for SDKs to Python 3.11+ (xmanager >= 0.8.5.post1), delivers the Pub/Sub Metrics Ingester and BigQueryDataEnginesupport for Dashboard Service, and completes the experimental PostgreSQL repository layer and database-agnostic Componentsdbstore.
🌟 1. Public Changes (Available Out-of-the-Box)
🚀 Major Highlights & Promoted Capabilities
- [Promoted to Default] Log Monitor GKE Deployment (
log_monitor_deployment_enabled: true): The Log Monitor service is now enabled out-of-the-box by default indeploy/ctk_v2/xmanager-cloud.yaml(deploy/ctk_v2/xmc-deployment-template.yaml) anddeploy/helm/values.yaml(logMonitorDeployment.enabled: true), automatically scanning Cloud Logging for workload failures and surfacing root-cause status messages on experiments and work units (#1494). - [Action Required / Breaking] Python 3.11+ Minimum Requirement for SDKs &
xmanager >= 0.8.5.post1Default: Raisedrequires-pythonacross thexmcandxdashPython SDKs to>=3.11(#1452), bumped the defaultxmanagerclient version requirement indeploy/cli/install_xmanager.pyand all example workloads to>=0.8.5.post1(#1400), and updatedinstall_xmanager.pyto purge shadowed wheelxdashpackages so localsdks/python/xdashinstalls cleanly (#1482).
✨ New Features & Improvements
- Database Configuration (
db-config) & Schema Version Health Checks in Admin Panel: Added Spanner and PostgreSQL schema version verification to the health checker (#1394) and exposed the shareddb-configConfigMap in the Health Service and Admin Panel UI (/admin) (#1293, #1380). - Declarative Kueue Queue & MultiKueue Dispatch Configuration in Helm: Extended
deploy/helm/values.yamlandkueue-devchart templates so deployments can declaratively configure CPU/GPU queues and their MultiKueue dispatch targets (#1359).
🐛 User-Facing Bug Fixes & Stability
- Case-Insensitive XID ACL Matching, Principal Normalization & Group Query Injection Guard: Consolidated and normalized email principals on ACL write and OAuth2 sign-in (#1447, #1453), matched XID ACL principals case-insensitively during authorization checks (#1446), and escaped group membership filter queries to prevent query injection (#1448).
- Build-Tag Isolation & Fail-Closed Production Guards for
DISABLE_AUTHENTICATIONandMOCK_AUTH: GatedDISABLE_AUTHENTICATIONandMOCK_AUTHbehind thedevbuild tag, built production container images exclusively from untagged binaries, and enforced fail-closed startup in production binaries (#1443, #1444, #1451). - Spanner
bit_reversed_xidFilter Rewrite & Thread-SafeQueryGenerator: Stopped leaking Spanner-specificbit_reversed_xidfilter predicates from ESSListExperimentsandListArtifactsby rewritingxidequality filters inside the Spanner XID repository (#1481), and removed racy mutablelastFromTablestate fromQueryGenerator(#1480).
🚀 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/xmc-deployment-template.yaml(ormetrics.enabled: trueindeploy/helm/values.yaml). - Dashboard Service: Set
dashboard_service_deployment_enabled: trueindeploy/ctk_v2/xmc-deployment-template.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:
- Pub/Sub Metrics Ingester (
cmd/metrics_ingester) with ClickHouse & BigQuery Writers: Added the Pub/Sub metrics ingester service with ClickHouse batch ingestion, subscription validation, health/readiness probes, and graceful shutdown batch flushing (#1002, #1003, #1004), alongside a BigQuery schema, row normalizer, and streaming writer (#1405, #1406). - Dashboard Service BigQuery
DataEngine, Parallel Multi-Plot Queries & LiveComponent/bigqueryHot-Reload: Decoupled theDataEngineprovider and parallelized multi-plot queries in Dashboard Service (#1407), added BigQuery client and staticDataEnginequery support (#1408), supported liveComponent/bigqueryconfiguration hot-reloading (#1409), and added a BigQuery golden E2E parity harness and seeder (#1410). xdashAuto-Discovery ofxmanager loginCredentials & Resilient Metrics Addons: Updated thexdashPython SDK and nightly verifiers to automatically discover cachedxmanager logincredentials (#1462), and hardened ClickHouse and Redpanda metrics addon manifests to survive pod rescheduling (#1459).
- Pub/Sub Metrics Ingester (
🧪 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 deploy/ctk_v2/xmc-deployment-template.yaml (or deploy/ctk_v2/xmanager-cloud.yaml) and Helm values.yaml.
🔹 [Flag: enable_components] Components
- How to enable: Set
enable_components: trueindeploy/ctk_v2/xmc-deployment-template.yaml(orcomponentsDeployment.enabled: trueindeploy/helm/values.yaml). - What's New:
- Database-Agnostic
dbstoreComponent Store & Serializable Catalog Transactions: Promoted the component store to a database-agnosticpkg/components/store/dbstorepackage backed bystorage.StorageandRunInSerializableTransaction(#1393, #1398, #1402, #1403, #1404, #1415, #1416, #1471, #1495). - Gateway Parameter Parity, Config Checksum Rollouts & Multi-Broker Preservation: Added gateway parameter parity, custom namespace support, and image resolution across
stable-2026acomponent charts (#1428), rotated config checksum annotations on Helm deployments while preserving multi-broker Redpanda endpoints iningestion-gateway(#1427), and added--profile-valuessupport with Helm>= 3.14enforcement indev_env.py(#1429).
- Database-Agnostic
🔹 [Flag: database.experimentalPostgres] Experimental PostgreSQL Control-Plane Backend
- How to enable: Set
database.backend: postgresanddatabase.experimentalPostgres: trueindeploy/helm/values.yaml. - What's New:
- Shared
dbconfigLoader & Backend-Agnostic Storage Factory Across Services: Added the shareddbconfigloader,postgres-secretdelivery, explicitdatabase.experimentalPostgresHelm opt-in, and backend-agnostic storage factory across all control-plane and auxiliary services (ess,xid_service,actuator,reconciler,dashboard_service,log_monitor,rod_data_provider,health_service) (#1293, #1302, #1387, #1388, #1396, #1401, #1419, #1493). - Complete PostgreSQL Domain Repositories & Spanner Parity: Implemented PostgreSQL repositories and row converters for Experiments (
Create,Get,Update,ListExperiments,FetchDriftedComponents), WorkUnits (reads, writes, ID allocation, severity queries,ListWorkUnits,FetchActiveWorkUnitsByQueues), Artifacts, Dashboards & Charts, StatusMessages, WorkUnitStatusHistory, Operations, PausedTasks, CLILoginCodes, XIDs, and Components, along with BIGINT symbolic enum query rewrites (#1355, #1397, #1417, #1424, #1434, #1435, #1436, #1437, #1439, #1442, #1454, #1463, #1464, #1465, #1488, #1489, #1492).
- Shared
⚙️ 4. Operational, Infrastructure & Engineering Velocity
Changes relevant to cluster operators, CI/CD, and internal architecture that do not alter the end-user interface.
- CI, Pre-Commit & Nightly Verification Tooling: Dropped
apt-bound--with-depsfrom Playwright browser installs on ARC runners (#1483), handledstrandbytesHTTP responses inxmc_entities_validator.py(#1460), auto-restaged formatter fixes during.githooks/pre-commit(#1474), addedcheck_agent_doc_paths.pyto fail on broken repository file paths in agent documentation (#1476), and addedwait_for_ci.pyand PR review thread resolution helpers undertools/pr_review/(#1473, #1475, #1477). - Dependency Security Updates: Bumped
github.com/go-jose/go-jose/v4,serialize-javascript, and npm packages incmd/ui(#1450, #1457, #1458).