Skip to content

Commit 2cdeaa3

Browse files
committed
Bump v0.12.0
1 parent 6a99264 commit 2cdeaa3

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [v0.12.0] - 2026-03-15
11+
1012
### Added
13+
- **Alerting system with vmalert + Alertmanager** — Metric-based alerting integrated into the daemon via VictoriaMetrics vmalert (v1.108.1) and Prometheus Alertmanager (v0.27.0), running inside the `core-victoriametrics` container.
14+
- 9 default alert rules: `HighMemoryUsage`, `HighDiskUsage`, `DiskAlmostFull`, `HighCPULoad`, `MetricsCollectionDown`, `ContainerHighMemory`, `ContainerHighCPU`, `ContainerStopped`, `NoRunningContainers`
15+
- Custom alert rule CRUD via gRPC/REST API (`/v1/alerts`) with PostgreSQL persistence
16+
- Webhook notifications with optional HMAC-SHA256 payload signing (`X-Containarium-Signature` header) via an internal relay
17+
- Webhook delivery history tracking (`/v1/system/alerting/deliveries`) with 1000-row / 30-day retention
18+
- Idempotent setup — detects existing vmalert install and only updates rules on restart
19+
- **Alerts web UI** (`/webui/alerts/`) — Full management interface with tabs for default rules, custom rules, and delivery history. Clickable rule rows open a detail dialog showing the full PromQL expression, equivalent vmalert YAML, and a PromQL writing guide. Webhook configuration dialog with HMAC secret generation and inline verification code examples (Python, Go, Node.js).
20+
- **Alert proto definitions** (`proto/containarium/v1/alert.proto`) — 8 new RPCs: `CreateAlertRule`, `ListAlertRules`, `GetAlertRule`, `UpdateAlertRule`, `DeleteAlertRule`, `GetAlertingInfo`, `UpdateAlertingConfig`, `TestWebhook`, `ListWebhookDeliveries`
1121
- **OCI runtime wrapper for Docker cgroup limit injection** — Registers a custom OCI runtime (`containarium-runtime`) as Docker's default via `daemon.json`. Intercepts every `runc create` — from CLI, Compose v2, or API — and injects LXC memory/CPU cgroup limits into the OCI spec. Also bind-mounts LXCFS-backed `/proc` files (`meminfo`, `cpuinfo`, `stat`, etc.) so tools like `free` and `top` report correct values inside nested containers. See [`docs/OCI-RUNTIME-CGROUP-INJECTION.md`](docs/OCI-RUNTIME-CGROUP-INJECTION.md).
1222
- **Automatic OCI runtime upgrade on daemon startup**`UpgradeCgroupWrappers()` now installs the OCI runtime on all existing Docker containers, in addition to CLI wrappers
1323
- **Caddy L4 SNI-based TLS passthrough** — mTLS gRPC services are now exposed on `:443` via SNI hostname routing, eliminating the need for per-port GCP firewall rules and sentinel iptables forwarding. Caddy L4 inspects the TLS ClientHello SNI field without decrypting, preserving end-to-end mTLS.

pkg/version/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88

99
var (
1010
// Version is the semantic version - UPDATE THIS MANUALLY for releases
11-
Version = "0.11.0"
11+
Version = "0.12.0"
1212

1313
// GitCommit is the git commit hash (set by build flag via ldflags)
1414
GitCommit = ""

web-ui/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "containarium-web-ui",
3-
"version": "0.11.0",
3+
"version": "0.12.0",
44
"private": true,
55
"scripts": {
66
"dev": "next dev",

0 commit comments

Comments
 (0)