# AIStor Operator RELEASE.2026-07-16T23-53-30Z

Released: 2026-07-17

This release renames every remaining cluster-scoped RBAC resource from colon-separated to dash-separated names, which OLM and OpenShift require. It also adds an option to stop the operator managing PodDisruptionBudgets, so every node in a cluster can be drained.

---

## Component Versions

| Component | Tag | Previous |
| --- | --- | --- |
| Operator | `RELEASE.2026-07-16T23-53-30Z` | `RELEASE.2026-07-14T19-42-05Z` |
| MinIO Sidecar | `RELEASE.2026-07-14T22-07-12Z` | unchanged |
| KES Sidecar | `RELEASE.2026-07-14T22-03-37Z` | unchanged |
| MinKMS Sidecar | `RELEASE.2026-07-14T22-12-08Z` | unchanged |

Images the operator deploys, as pinned by the Helm charts in this cycle:

| Image | Tag | Previous |
| --- | --- | --- |
| `minio` | [`RELEASE.2026-06-06T02-44-06Z`](https://dl.min.io/aistor/minio/release/notes/release-notes-RELEASE.2026-06-06T02-44-06Z.md) | unchanged |
| `mc` | `RELEASE.2026-06-24T01-47-10Z` | unchanged |
| `kes` | `RELEASE.2026-04-13T20-11-36Z` | unchanged |
| `minkms` | [`RELEASE.2026-07-17T11-53-00Z`](https://dl.min.io/aistor/minkms/release/notes/release-notes-RELEASE.2026-07-17T11-53-00Z.md) | `RELEASE.2026-06-24T10-30-16Z` |
| `minwall` | `RELEASE.2026-05-21T06-25-56Z` | unchanged |
| `aihub` | `RELEASE.2025-12-11T18-08-15Z` | unchanged |
| `prompt` | `RELEASE.2025-01-17T21-55-43Z` | unchanged |
| `warp` | `v1.5.0` | unchanged |

### Helm Charts

| Chart | Version | Previous |
| --- | --- | --- |
| `aistor-operator` | `5.9.0`, `5.10.0` | `5.8.0` |
| `minkms-operator` | `1.8.0`, `1.8.1`, `1.9.0` | `1.7.0` |
| `aistor-objectstore` | `1.0.16` | `1.0.15` |

### Container Images

```bash
docker pull quay.io/minio/aistor/operator:RELEASE.2026-07-16T23-53-30Z
docker pull quay.io/minio/aistor/operator:RELEASE.2026-07-16T23-53-30Z.fips
```

```bash
helm repo add minio https://helm.min.io
helm upgrade --install aistor-operator minio/aistor-operator --version 5.10.0
```

---

## New Features

- **`disablePodDisruptionBudget` on `ObjectStore`.** Set it to `true` and the operator stops creating per-pool PodDisruptionBudgets and removes the ones it created, so every node can be drained. Budgets you created yourself are left alone. Default `false` (#1599).

- **`global.fipsMode` in both operator charts.** Appends `.fips` to every resolved image tag, selecting the FIPS 140-3 variants in one place. Rendering fails with a named error on a digest-pinned or untagged image. Default `false` (#1606).

---

## CRD Changes

### ObjectStore (`aistor.min.io/v1`)

| Field | Change |
| --- | --- |
| `spec.disablePodDisruptionBudget` | Added. Boolean, default `false`. |

---

## Helm Chart Changes

| Chart | Version | Change |
| --- | --- | --- |
| `aistor-operator` | `5.9.0` | Cluster-scoped RBAC renamed from `:` to `-`; ships the `disablePodDisruptionBudget` field |
| `aistor-operator` | `5.10.0` | Adds `global.fipsMode`. No image versions change |
| `minkms-operator` | `1.8.0` | Cluster roles and bindings renamed; `minkms:minkms:pods` becomes `minkms-pods` |
| `minkms-operator` | `1.8.1` | Default `minkms` → `RELEASE.2026-07-17T11-53-00Z` (#1614, #1616) |
| `minkms-operator` | `1.9.0` | Adds `global.fipsMode` |
| `aistor-objectstore` | `1.0.16` | Adds `objectStore.disablePodDisruptionBudget`, requiring this operator release |

---

## Breaking Changes

- **All cluster-scoped RBAC resources use `-` instead of `:`** — `aistor:object-store-cluster` becomes `aistor-object-store-cluster`, `minkms:minkms:pods` becomes `minkms-pods`. Colons break OLM bundle unpacking on OpenShift 4.16 through 4.20. Update any external policy or automation that names the old roles (#1595).

- The operator deletes the legacy colon-named token-review binding on reconcile and on teardown, so no manual cleanup is needed (#1595).

---

## Security & Compliance

### Software Bill of Materials (SBOM)

- [SPDX JSON](sbom-RELEASE.2026-07-16T23-53-30Z.spdx.json)
- [CycloneDX JSON](sbom-RELEASE.2026-07-16T23-53-30Z.cyclonedx.json)
- [Go Modules](go-modules-RELEASE.2026-07-16T23-53-30Z.txt)

---

## Upgrade Instructions

For detailed upgrade instructions, please read: https://docs.min.io/aistor/upgrade-aistor-server/upgrade-aistor-kubernetes-helm/

Environment-specific upgrade guides:

- **Public registries**: https://docs.min.io/aistor/upgrade-aistor-server/upgrade-kubernetes-standard/
- **Private registries**: https://docs.min.io/aistor/upgrade-aistor-server/upgrade-kubernetes-private-registry/
- **Airgap**: https://docs.min.io/aistor/upgrade-aistor-server/upgrade-kubernetes-airgapped/

Chart, operator and sidecar images are only validated in the combination listed above. Only update single component versions when MinIO support asks for it.

### New Configuration Options

| Value | Default | Purpose |
| --- | --- | --- |
| `.spec.disablePodDisruptionBudget` | `false` | Stop the operator managing PodDisruptionBudgets |
| `objectStore.disablePodDisruptionBudget` | `false` | The same, through the object store chart |
| `global.fipsMode` | `false` | Append `.fips` to every resolved image tag |

### Migration Notes

- Apply the chart version or Kustomize manifests that ship with this operator, then update external RBAC references to the dash-separated names.
- `disablePodDisruptionBudget: true` removes quorum protection against voluntary disruptions. Use it for a planned maintenance window and restore the default afterwards.

### Support

For enterprise support:

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