# MinKMS RELEASE.2026-03-27T09-51-41Z

Released: 2026-03-29

This release introduces comprehensive observability with new Prometheus-compatible metrics covering network, HTTP, RPC, and consensus operations, along with an example Grafana dashboard for out-of-the-box monitoring. It also adds cluster membership change signals, fixes a database snapshot lock bug, and removes the deprecated `--dev` mode.

---

## Container Images

```bash
# Standard
docker pull quay.io/minio/aistor/minkms:RELEASE.2026-03-27T09-51-41Z
podman pull quay.io/minio/aistor/minkms:RELEASE.2026-03-27T09-51-41Z

# FIPS
docker pull quay.io/minio/aistor/minkms:RELEASE.2026-03-27T09-51-41Z.fips
podman pull quay.io/minio/aistor/minkms:RELEASE.2026-03-27T09-51-41Z.fips
```

---

## Downloads

### Binary Downloads

| Platform | Architecture | Download |
| -------- | ------------ | -------- |
| Linux    | amd64        | [minkms.RELEASE.2026-03-27T09-51-41Z](https://dl.min.io/aistor/minkms/release/linux-amd64/archive/minkms.RELEASE.2026-03-27T09-51-41Z) |
| Linux    | arm64        | [minkms.RELEASE.2026-03-27T09-51-41Z](https://dl.min.io/aistor/minkms/release/linux-arm64/archive/minkms.RELEASE.2026-03-27T09-51-41Z) |
| macOS    | amd64        | [minkms.RELEASE.2026-03-27T09-51-41Z](https://dl.min.io/aistor/minkms/release/darwin-amd64/archive/minkms.RELEASE.2026-03-27T09-51-41Z) |
| macOS    | arm64        | [minkms.RELEASE.2026-03-27T09-51-41Z](https://dl.min.io/aistor/minkms/release/darwin-arm64/archive/minkms.RELEASE.2026-03-27T09-51-41Z) |
| Windows  | amd64        | [minkms.exe.RELEASE.2026-03-27T09-51-41Z](https://dl.min.io/aistor/minkms/release/windows-amd64/archive/minkms.exe.RELEASE.2026-03-27T09-51-41Z) |

### FIPS Binaries

| Platform | Architecture | Download |
| -------- | ------------ | -------- |
| Linux    | amd64        | [minkms.RELEASE.2026-03-27T09-51-41Z.fips](https://dl.min.io/aistor/minkms/release/linux-amd64/archive/minkms.RELEASE.2026-03-27T09-51-41Z.fips) |

Each binary also has `.sha256sum`, `.minisig`, and `.asc` signature files available at the same path.

---

## Breaking Changes

- **Removed `--dev` and `--license` flags**: The `--dev` flag, which started MinKMS with an ephemeral HSM key and auto-cleaned state on shutdown, has been removed. The `--license` flag has also been removed. Both flags are still parsed for backward compatibility but print deprecation warnings and have no effect. A data directory argument is now always required when starting the server (#200)

---

## New Features

- **Comprehensive Prometheus-compatible metrics**: Added network connection, HTTP API, internode RPC, and consensus protocol metrics in OpenMetrics v1.0 format. Metrics cover request latencies, error rates, connection counts, leader elections, and replication lag. The previous runtime-only metrics have been replaced with a full-featured metrics framework (#201)

- **Example Grafana dashboard and Prometheus configuration**: Included a ready-to-use Grafana dashboard JSON and Prometheus scrape configuration under `examples/`, enabling operators to set up monitoring quickly (#204)

- **Cluster membership change signals (`SigJoin` / `SigLeave`)**: MinKMS now emits `SigJoin` and `SigLeave` signals when nodes are added to or removed from a cluster. Both leader and follower nodes receive these signals. The server reprints its startup message on membership changes, providing immediate visibility into cluster topology changes (#203)

---

## Bug Fixes

- **Fixed database snapshot read-lock not being released**: Corrected a bug where the database read-lock was acquired twice (`RLock`) instead of being properly released (`RUnlock`) during snapshot generation, which could cause deadlocks under concurrent access (#205)

---

## Improvements

- **Switched container base image from `scratch` to `ubi-micro`**: Container images now use Red Hat UBI Micro as the base image instead of `scratch`. This adds approximately 22 MB to the image size but enables operators to exec into running containers for debugging purposes (#202)

---

## Upgrade Instructions

MinKMS supports rolling upgrades. Upgrade one node at a time, starting with followers:

1. Stop the follower node
2. Replace the `minkms` binary
3. Start the node and wait for it to rejoin the cluster
4. Repeat for remaining followers
5. Upgrade the leader node last

**Important**: Write operations require all nodes to be available. Plan a brief maintenance window for the leader upgrade.

**Breaking change note**: If you were using `--dev` mode for development or testing, you must now always provide a data directory and configure an HSM key. See the `--help` output for updated usage.

For enterprise support:
- SUBNET Support: https://subnet.min.io
- Documentation: https://docs.min.io
