Changelog¶
v1.2.0 — 12 September 2026¶
Upgrade from 1.1.1 is a standard helm upgrade; the database migrates itself on
first start.
This is the container-scanning release: scanning now handles a real namespace image by image, keeps its evidence when it fails, and never reports a clean result it did not earn. Alongside it, API keys gain scopes, the Applications tab is redesigned, and Telegram and Slack join alerting.
Two changes affect an install that sets nothing: API keys minted before 1.2.0 are revoked on upgrade and must be re-minted with scopes (see Upgrade notes), and basic alerting and the MCP server are now Free on every tier.
Container scanning¶
- Scans run image by image, so memory is bounded by the largest image rather than the whole namespace — a large namespace no longer gets the scan killed.
- Findings are saved as each image finishes; an interrupted run keeps what it scanned.
- A failed scan keeps a readable reason for the failure instead of disappearing.
- Private registries are scanned, using the cluster's own pull credentials.
- Only images whose digest changed are rescanned.
- Scanning a blocklisted namespace is refused with an explanation, instead of returning an empty result that reads as "all clean".
- Search a CVE across every scan, with per-image outcomes.
- Vulnerability totals count distinct (image, CVE) pairs — one CVE to fix, not one per workload it appears in.
- The vulnerability overview loads roughly three times faster on a large cluster.
API key scopes¶
- Every key carries scopes, chosen at mint, shown on the key, and enforced on every route. A route with no scope mapping is reachable by no key.
- Keys minted before 1.2.0 are revoked by the upgrade (see Upgrade notes).
Applications, alerting and chat¶
- The Applications tab is an explorer: your saved stacks as cards with status and composition, the stacks KubeManta found in your cluster beside them, and a two-pane detail view with a fast navigator you can filter and step with the keys.
- An application's CPU and memory are charted over a window you choose, and say so when there is no data yet rather than drawing a flat line at zero.
- Telegram joins Slack and email as an alert destination.
- Alert rules are Free and unlimited, including editing and deleting, with Slack, Telegram and email delivery. Integrations, firing history and auto-investigation remain Pro.
- Background tasks have a tray, so a scan that died no longer looks like one still running.
Resources, YAML and network¶
- Describe and View YAML work for any kind the cluster serves (Secret stays undescribable).
- Edit YAML returns a clean, editable manifest instead of a truncated live dump.
- YAML validation runs in every editor.
- The network policy view is a grouped, searchable table that shows whether the cluster's CNI actually enforces each policy.
- An in-product API reference, generated from the running app.
Changed¶
- Basic alerting and the MCP server are Free on every tier.
- The update notifier is off by default, so a default install makes no outbound version call; in air-gap mode it is refused outright. Security advisories are announced out of band.
- Observability settings are split into Prometheus, Alertmanager and Grafana.
- Activity filters survive a reload and say when they are on.
- Workloads sort by CPU and memory, and a pod with no measurement never sorts as idle.
- Notifications appear top-right and can be swiped away.
Fixed¶
- Telegram's Test button reported the integration as unknown while real alerts to Telegram arrived fine.
- A finished scan no longer hides the namespace picker.
- A scan that "completed with errors" now says which images failed and why.
- The running-scan banner names the namespace being scanned.
- A demoted admin loses admin surfaces on the next request, without signing out.
- Being signed out says why — expiry, revocation and a restart no longer look identical.
- The API key shown once at mint stays on screen, with a close button.
- Terminal commands are recorded when submitted, so a command that never returns is still audited.
Security¶
- An AI-proposed write is re-checked against the caller's role, so a non-admin cannot apply one.
- The pod exec terminal requires exec permission (
getandcreateonpods/exec), not just read access. - An SSO session stays bound to the account it authenticated as, and one LDAP directory account maps to exactly one user however the name was typed.
- The AI provider key is no longer stored in the browser.
- CSV and spreadsheet exports neutralise formulas.
- AppArmor confinement uses the field current Kubernetes supports, so it applies on modern clusters.
Upgrade notes¶
- API keys minted before 1.2.0 are revoked on upgrade and must be re-minted with scopes in Account → API keys. Re-mint before upgrading anything that depends on a key.
- Scanning a blocklisted namespace now returns an error where it returned an empty result; automation that treats any non-200 as a failure will see this.
rbac.readSecretsstill controls secret reads. The scanner takes pull credentials by reference and no longer carries a cluster-wide secret reader.- If you pinned image tags, the scanner and expert-exec images move with the release as usual.
v1.1.1 — 20 August 2026¶
A patch release, but not a small one: it corrects three defects that let a removed permission keep working, and a terminal failure that only appeared on busy clusters. Upgrade if you use roles, groups or the browser terminal.
helm upgrade kubemanta oci://registry.kubemanta.com/kubemanta/charts/stable/kubemanta \
--version 1.1.1 -n kubemanta-system --reset-then-reuse-values
Security¶
- Demoting an admin now takes effect immediately. A user demoted to viewer kept browser-terminal access and admin-level AI treatment until their session ended.
- A role change is reflected on the next request, not the next sign-in. The UI gated on the role captured at sign-in, so a promotion or demotion appeared to do nothing until the user signed out and back in.
- An unrecognised role is no longer treated as admin. It now grants nothing.
- Erasing a user removes their group memberships with them. They could previously outlive the account and keep granting access through a group.
Fixed¶
- The browser terminal could fail to open a shell on a busy node. The process limit it enforced was counted across the whole node rather than per session, so on a node already running many workloads the shell could not start at all.
- Built-in metrics collection failed on some clusters because the scrape looked for its credential under the wrong name. Network bandwidth is now collected by default.
- The update banner no longer claims "Up to date" when it cannot reach the version service. It says nothing rather than something untrue.
- Capacity is shown as donuts with a top-10 list and sortable, paged storage; an oversized reference line no longer flattens the trend it was meant to give context to; the topology canvas renders with its intended styling and no overlapping labels.
- Several Admin fixes: aligned Groups, a trimmed account menu, a more compact admin strip.
Added¶
- Admin → Groups. See the groups your identity provider actually sends, and decide what each one grants. Group membership is replaced at every sign-in, so removing someone at the IdP removes their access here.
- Account → API keys. Manage your own keys from your account, where the product already pointed you.
- Applications match a family of labels, with control over whether new members join automatically.
- The real client IP is preserved (
service.externalTrafficPolicy), so access rules and the activity log record the actual source address rather than a node's. Revoke all sessions moved to Admin → Access Control.
Changed¶
- A default install no longer contacts
api.kubemanta.com. The update check is off unless you turn it on.
v1.1.0 — 18 August 2026¶
Upgrading from 1.0.0 is a standard helm upgrade — no manual migration. Read
Breaking and Changed before you upgrade.
helm upgrade kubemanta oci://registry.kubemanta.com/kubemanta/charts/stable/kubemanta \
--version 1.1.0 -n kubemanta-system --reset-then-reuse-values
Breaking¶
- Shared password and shared API key removed. Sign in with per-user accounts; the
adminaccount is seeded at install fromsecurity.adminPassword. Automation using the old shared API key must switch to a per-user API key (Admin → Users). - Pricing is per admin seat; node limits removed. Viewers are free and unlimited. A lapsed paid licence degrades to Free (read-only keeps working) — it never locks the cluster.
sso.local_login=offnow fully disables password login. Recovery is a pod-side command (python3 -m app.recover_admin), not a UI toggle.
Changed (defaults)¶
rbac.readSecretsnow defaults to true (Secret read on by default). Setfalsefor a regulated install, or scope withrbac.secretsNamespaces. Secret write still ridesrbac.allowWrites; delete is never granted.security.scanning.enablednow defaults to true — container scanning is read-only (read your trivy-operator reports; let an admin trigger a scan), so the Security tab works on a fresh install. Setfalseto turn it off, which withholds the reader permissions and refuses the built-in self-scan. The write flags (rbac.allowWrites,expertMode.enabled) stay off by default. On upgrade, use--reset-then-reuse-valuesor-f values.yamlto pick up the new default; plain--reuse-valueskeeps your stored value.- Terminal memory is the container cgroup limit (
terminal.resources.limits.memory, default 8Gi); the per-session RAM cap was removed. expertMode.enabled=truedeploys the privileged component but leaves expert operations off until enabled in Admin → Expert (a second gate).
Added¶
- AI Copilot — cluster-grounded assistant with cited, deep-linkable answers.
- MCP server — connect AI clients (Claude Code via API key; Claude Desktop / claude.ai via OAuth) to KubeManta's read-only tools.
- AI Guardrails — master kill switch, data residency, cost caps, egress control.
- Enterprise SSO — SAML 2.0, OIDC, LDAP/AD with group→role mapping; multiple methods concurrently; local login stays as break-glass.
- User accounts & roles (admin/viewer), per-user API keys, 2FA (TOTP), GDPR data erasure, IP access control (allow/deny, auto-ban, idle timeout).
- Container scanning — posture grade, history, per-workload drill-down, risk acceptance; read your trivy-operator reports or run a built-in scan; bring your own scanner.
- Network Analyzer — pod-to-pod reachability with root-cause and a live probe; readable NetworkPolicy; multi-cloud VPC view.
- Applications — group workloads with one health verdict, sizing/traffic, and one-click alerting.
- Resource Builder — plan/apply/diff with Kubernetes-aware YAML, saved bundles, and a full Helm release manager.
- Manage any resource — edit YAML, describe, or delete any editable kind directly from Workloads → All resources (right-click), no drop to kubectl.
- Alert Rules Engine — condition types, start-from templates, firing history with captured evidence; inbound Alertmanager receiver; optional heartbeat.
- Metrics — built-in trends (no setup), Prometheus integration, and a guided Prometheus + kube-state-metrics deploy.
- Air-gap mode (
security.airgap.enabled) with offline licensing. - Flexible exposure — service-only mode, any IngressClass, attach-to-existing cloud LB, multi-host Ingress, Gateway API.
Fixed¶
- Sign-ins and sign-outs are attributed to the right person, in one unified activity feed.
- Alert evidence (logs/events) is captured at firing time, so a crashed pod's logs aren't lost by the time you look.
- Pod logs render as clean text everywhere.
- Container-scan history, status and diff now agree with the findings view and never expose KubeManta's own platform CVEs.
- A briefly-unavailable agent (e.g. during a
helm upgrade) now returns a retriable error instead of looking like a crash. - Numerous UI, alerting, scanning, metrics and exposure fixes.
Security¶
- Constant-time local login (no user-enumeration timing signal); revoked or deactivated sessions are refused on the next request.
- Air-gap docs now state that egress enforcement depends on your CNI, with a verification step.
v1.0.0 — 2 August 2026¶
First generally available release: real-time workload visibility, AI-assisted diagnosis, a browser terminal, and remediation that always waits for your approval — installed with one Helm command and running entirely inside your cluster.
Included¶
- Incident-first overview — leads with what is failing, where, and for how long, with per-pod incident stories from events, logs, exit codes and resource pressure; failure-cascade and network-topology visualizers.
- Browser terminal —
kubectl,helm,k9sand Node.js preinstalled, running as a separate unprivileged user, every command attributed; sessions start explicitly. - AI diagnosis with cited sources — bring your own model (Anthropic, OpenAI, Google, Azure, Groq, Ollama or any OpenAI-compatible endpoint); AI is optional and can be switched off.
- Approval-gated remediation — every write (pod restart, scale, Helm upgrade, manifest apply) is previewed, approved and audited. No autonomous remediation.
- Container scanning — read trivy-operator reports or scan on demand, with an A–F grade, per-workload drill-down and risk acceptance.
- Per-admin-seat pricing — viewers free and unlimited; no node counting. Free includes the full read-only platform on one cluster with one admin seat.
Operating notes¶
- Single instance by design. The agent owns a SQLite database on a ReadWriteOnce volume;
the chart refuses
replicaCount > 1. Recovery after a node failure depends on your StorageClass — networked storage reattaches in minutes, node-local storage waits for the node. - Alerting shares the agent's fate. Enable the heartbeat (
alerts.heartbeat.enabled) and alert on its absence, and watch the agent's readiness from outside KubeManta. - Behind a proxy or edge, set
security.trustedProxyCidrs— otherwise every request is attributed to your edge, collapsing audit attribution and letting one client's failed logins ban that shared IP for everyone. - Secure by default. A vanilla install is read-only; writes need
rbac.allowWrites=true, the terminal and Helm needexpertMode.enabled=true. - Everything stays in your cluster. Operational tables prune themselves; your own content (bundles, runbooks, workspace files) is never auto-deleted.