Ongrid v0.10.2
Ongrid v0.10.2
Ongrid v0.10.2 focuses on isolating Kubernetes telemetry workloads from the Controller, safer one-command cluster upgrades, earlier LLM configuration diagnostics, broader model compatibility, and usable device charts at very high series cardinality. It also improves alert context and native instant-messaging delivery.
This release resolves the Controller and heartbeat pressure reported in #235 and #239, restores Kimi K2/K3 chat compatibility from #219, and fixes the high-core chart layout from #238.
Highlights
Kubernetes control plane and telemetry data plane are now isolated
The Kubernetes Controller remains a single replica with one controller identity, but its default responsibilities are now limited to enrollment, heartbeat and tunnel management, Kubernetes inventory list/watch, live queries, and approved cluster actions. OTLP traffic and kube-state-metrics collection no longer share the Controller process, cgroup, or tunnel.
| Component | Default replicas | Responsibility | Scaling model |
|---|---|---|---|
| Controller | 1 | Enrollment, heartbeat, inventory watch/query, approved actions | Fixed single replica |
| Telemetry Gateway | 2 | Receive and export OTLP traces, logs, and metrics | HPA, 2-10 replicas |
| Metrics Scraper | 1 | Scrape kube-state-metrics and write Prometheus samples directly | Deliberately single-active |
| kube-state-metrics | 1 | Watch Kubernetes resources and expose cluster-state metrics | Fixed by this release |
Key behavior changes:
- OTLP traces, logs, and metrics are handled by a dedicated Telemetry Gateway Deployment instead of the Controller.
- The existing OTLP Service DNS and ports remain unchanged (
4317for gRPC and4318for HTTP), so instrumented workloads do not need endpoint changes. - Telemetry Gateway HPA is enabled by default with 2 minimum and 10 maximum replicas, 60% target CPU utilization, a 512 MiB memory target, and conservative scale-down behavior.
- kube-state-metrics is scraped by an independent Metrics Scraper that sends protobuf + Snappy Prometheus
remote_writerequests directly to the configured backend. - Large KSM sample batches no longer occupy the Controller tunnel or delay heartbeat and re-registration traffic.
- Gateway and Scraper use a dedicated, least-privilege telemetry credential that is separate from the Controller identity. They do not inherit Controller action permissions.
- Telemetry endpoint and credential changes are published through a dedicated Secret; Gateway and Scraper hot-reload them without a workload rollout.
- Resource limits, health probes, queues, retries, a PodDisruptionBudget, and explicit compatibility modes are included in the Chart.
The Metrics Scraper intentionally stays at one replica in v0.10.2. Running multiple uncoordinated scrapers against the same KSM endpoint would duplicate Prometheus samples; future horizontal scaling requires leader election or explicit target/KSM sharding.
One-command Kubernetes upgrade and automatic migration
The Kubernetes page now generates one atomic Helm upgrade command for both simple image updates and topology-changing upgrades.
- Helm 3.14+ is required because the command uses
--reset-then-reuse-values: new Chart defaults are loaded first, then existing user overrides are reapplied. - An idempotent pre-upgrade Hook stops the legacy Controller KSM path before the new Metrics Scraper starts, preventing overlapping writes to the same time series.
- The stable OTLP Service is handed from the embedded Collector to the standalone Gateway without requiring workload configuration changes. A brief client reconnect can occur during the transition.
--wait --wait-for-jobs --atomicwaits for the migration and workloads; a failed upgrade automatically restores the previous Helm release.- Once a cluster has migrated, later image-only upgrades perform state checks without patching or unnecessarily restarting the Controller.
- Explicit rollback modes remain available:
telemetryGateway.mode=embeddedandkubernetesMetrics.mode=controllerrestore the v0.10.1 data paths.
Important
Use the upgrade command generated by the Ongrid Kubernetes page. It contains cluster-specific values and credentials and should be handled as a secret.
Note
The default Telemetry Gateway HPA requires the standard metrics.k8s.io API, normally provided by Kubernetes Metrics Server. If that API is unavailable, the Gateway pods still run but HPA cannot scale and Kubernetes reports HPA warnings. Set telemetryGateway.autoscaling.enabled=false to use the fixed replica count on such clusters.
Validate LLM settings before they are saved
The LLM settings page can now validate the configuration being edited with a minimal real Chat Completions request.
- Administrators can run validation manually and the same validation is performed before saving.
- Invalid configurations are rejected before persistence; leaving the API key empty continues to use the existing disable behavior.
- Errors distinguish invalid credentials, inaccessible or unknown models, quota exhaustion, rate limiting, network and TLS failures, endpoint errors, malformed responses, and upstream failures.
- Validation has a 20-second timeout, does not retry, and does not log or persist the submitted API key.
- Localized, actionable guidance is shown in the settings page, and a prior success is invalidated when the configuration changes.
Kimi K2 and K3 compatibility
Kimi models that require fixed sampling parameters can now be used for normal conversations, not only the settings probe.
- Sampling overrides are omitted for the Kimi K2 and K3 families, including K2.5, K2.6, and K3.
- If an unknown future Kimi alias returns the provider's fixed-temperature error, Ongrid retries the request without the sampling override.
- Other providers and models retain the existing temperature behavior.
High-cardinality device metric charts
Device metric charts remain usable when a host exposes hundreds of series; the regression suite covers a 496-core device.
- The plot keeps a stable height while the complete, naturally sorted legend grows below it.
- Clicking a legend entry isolates that series; clicking another switches the selection; clicking the active entry again restores all series.
- Hover tooltips show only the series nearest to the pointer instead of an unscrollable list containing every series.
- Network metric tooltip scaling remains accurate after single-series selection.
Alert and IM delivery improvements
- Host-scoped alert notifications now display
device=<hostname> (<ip>)when inventory data is available, while preserving the numeric device ID in labels and incident deduplication keys (#193). - DingTalk long-connection delivery is enabled through the official Stream SDK, including callback normalization, credential validation, session-webhook replies, and a single final response for providers without message editing (#167).
- Slack replies use Block Kit with a plain accessibility fallback, Telegram replies use sanitized HTML within provider limits, and Feishu/Lark replies use native post messages with an oversized-payload fallback.
- The Chinese settings navigation now labels bidirectional integrations as “IM”, while notification delivery integrations remain “Channels”.
Compatibility and operational notes
- New Kubernetes installs default to
telemetryGateway.mode=deploymentandkubernetesMetrics.mode=scraper. - Existing Kubernetes installations should upgrade with the command generated by the v0.10.2 Manager rather than manually replacing only the Controller image.
- Metrics Scraper is single-active in this release;
kubernetesMetrics.replicasmust remain1in scraper mode. - The Manager installation package remains Docker Compose only. Linux device Edge installation and upgrade through systemd remain supported.
- Manager upgrades preserve
/opt/ongrid/.env, TLS certificates, and data under/var/lib/ongrid, but Compose recreation causes a short service interruption.
The v0.10.2 Kubernetes Chart is published at:
oci://helm.cnb.cool/ongridio/ongrid-edge
To inspect the Chart:
helm show chart oci://helm.cnb.cool/ongridio/ongrid-edge --version 0.10.2Fresh installation
Ubuntu 22.04+, Debian 12+, and RHEL/Rocky 9 are supported. Docker 24.0+ and Docker Compose v2 are required for the Manager package.
AMD64
wget https://github.com/ongridio/ongrid/releases/download/v0.10.2/ongrid-v0.10.2-linux-amd64.tar.xz
wget https://github.com/ongridio/ongrid/releases/download/v0.10.2/ongrid-v0.10.2-linux-amd64.tar.xz.sha256
sha256sum -c ongrid-v0.10.2-linux-amd64.tar.xz.sha256
tar -xf ongrid-v0.10.2-linux-amd64.tar.xz
cd ongrid-v0.10.2-linux-amd64
sudo ./install.shARM64
wget https://github.com/ongridio/ongrid/releases/download/v0.10.2/ongrid-v0.10.2-linux-arm64.tar.xz
wget https://github.com/ongridio/ongrid/releases/download/v0.10.2/ongrid-v0.10.2-linux-arm64.tar.xz.sha256
sha256sum -c ongrid-v0.10.2-linux-arm64.tar.xz.sha256
tar -xf ongrid-v0.10.2-linux-arm64.tar.xz
cd ongrid-v0.10.2-linux-arm64
sudo ./install.shUpgrade
Manager
Download and extract the package matching the target architecture, then run:
cd ongrid-v0.10.2-linux-<arch>
sudo ./upgrade.shThe upgrade script validates and pulls the required images before stopping the current stack, preserves configuration and data, recreates the Compose services, and waits for /healthz.
Kubernetes Edge
After upgrading the Manager to v0.10.2, open the Kubernetes cluster page and run its generated one-command Helm upgrade in the target cluster. Confirm that Helm 3.14+ and the OCI registry helm.cnb.cool are reachable first.
After the command completes, verify that the Controller, Telemetry Gateway, Metrics Scraper, kube-state-metrics, and Node Edge workloads are Ready. On clusters with Metrics Server, also confirm that the Telemetry Gateway HPA can read CPU and memory metrics.
Release artifacts
The release workflow successfully published:
linux/amd64andlinux/arm64Manager/Web/Kubernetes Edge image manifests;- the v0.10.2 OCI Helm Chart;
- AMD64 and ARM64 server packages with SHA-256 checksum files;
latest.jsonrelease metadata.
What's Changed
Kubernetes
- #241 Separate the telemetry data plane from the Controller, add the scalable Gateway and direct-write Metrics Scraper, and provide atomic Helm migration. Fixes #235 and #239.
AI and model configuration
- #237 Validate LLM configurations before saving and return actionable failure categories.
- #242 Support fixed-temperature Kimi K2/K3 models. Closes #219.
Metrics UI
- #243 Improve high-cardinality device metric charts and Grafana-style series interaction. Closes #238.
Alerts and instant messaging
- #201 Show human-readable device identity in alert notifications. Fixes #193.
- #200 Enable DingTalk Stream delivery. Fixes #167.
- #203 Render Slack, Telegram, and Feishu/Lark replies in native formats; continues #202.
- #223 Clarify the Chinese IM settings labels.
Documentation and release
- #222 Update multilingual installation links for the preceding v0.10.1 release; no v0.10.2 runtime behavior change.
- #244 Prepare the v0.10.2 release version.
Full Changelog: v0.10.1...v0.10.2