Upgrade AIStor on Kubernetes with Public Registries
This page describes how to upgrade AIStor Helm deployments that use public registries and have direct internet access to helm.min.io and quay.io.
If your deployment uses a private container registry or is in an airgapped environment, see:
Overview
AIStor Helm upgrades involve updating two components:
- Operator Chart - Controls CustomResourceDefinitions and core operator resources
- Object Store Chart - Deploys and manages the AIStor Object Store instances
You can upgrade both components together or independently. This page covers the complete upgrade workflow for standard deployments with internet access.
All AIStor software supports non-disruptive upgrades with zero downtime. In optimal environments, cluster-wide upgrades typically complete in under 500 milliseconds with large clusters (1000+ nodes) completing in less than 5 seconds.
S3 SDKs and applications typically implement retry mechanisms that mitigate the impact of any reduced availability.
Prerequisites
Complete all standard upgrade prerequisites, then verify you have network access to helm.min.io and quay.io.
Step 1: Upgrade the operator chart
The operator chart provides the core resources for deploying AIStor Object Store onto Kubernetes.
-
Verify the existing installation.
Check the health and status of the operator:
kubectl get all -n aistor -
Update and upgrade the operator.
Update the Helm repository:
helm repo update minioUpgrade the operator chart:
helm upgrade -n aistor aistor minio/aistor-objectstore-operator \ --set license="eyJhbGciOiJFUzM4NCIsInR..."Replace the license value with your decoded JWT token from SUBNET.
-
Validate the installation by running the following command:
kubectl get all -n aistorThe output should show running pods similar to the following:
NAME READY STATUS RESTARTS AGE pod/adminjob-operator-cfc97d9f-hjbp5 1/1 Running 0 4m16s pod/object-store-operator-78c9f84b85-kmwlv 1/1 Running 0 4m16s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/object-store-operator ClusterIP 10.43.210.230 <none> 4221/TCP 4m16s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/adminjob-operator 1/1 1 1 4m16s deployment.apps/object-store-operator 1/1 1 1 4m16s NAME DESIRED CURRENT READY AGE replicaset.apps/adminjob-operator-cfc97d9f 1 1 1 4m16s replicaset.apps/object-store-operator-78c9f84b85 1 1 1 4m16s
Step 2: Upgrade the object store chart
The object store chart deploys and manages your AIStor Object Store instances.
-
Verify the existing installation.
Check the health and status of your object store:
kubectl get all -n OBJECT-STORE-NAMESPACEReplace
OBJECT-STORE-NAMESPACEwith your object store’s namespace. -
Update the Helm repository.
Update the Helm repository to get the latest chart version:
helm repo update minio -
Upgrade the object store chart.
Use
helm upgradeto deploy the updated chart:helm upgrade -n OBJECT-STORE-NAMESPACE OBJECT-STORE-NAME minio/aistor-objectstore \ -f aistor-objectstore-values.yamlReplace:
OBJECT-STORE-NAMESPACEwith your object store’s namespaceOBJECT-STORE-NAMEwith your object store’s Helm release nameaistor-objectstore-values.yamlwith the path to your values file
-
Validate the object store upgrade.
Confirm the object store pods are running with the new version:
kubectl get all -n OBJECT-STORE-NAMESPACECheck the pods are ready and the deployment is healthy.
Upgrade only the object store image
If you want to update only the AIStor Object Store binary version without upgrading the chart itself, you can specify a new image tag. This approach keeps your existing chart version but updates the running software.
-
Update the values file.
Edit your
aistor-objectstore-values.yamlfile and update the image tag:objectStore: image: repository: quay.io/minio/aistor/minio tag: RELEASE.2025-05-30T11-03-39ZReplace the tag with your target release version.
-
Deploy the image update.
Apply the updated configuration:
helm upgrade -n OBJECT-STORE-NAMESPACE OBJECT-STORE-NAME minio/aistor-objectstore \ -f aistor-objectstore-values.yaml -
Validate the deployment.
Verify the pods are running with the new image:
kubectl get pods -n OBJECT-STORE-NAMESPACE -o jsonpath='{.items[*].spec.containers[?(@.name=="minio")].image}'This command displays the image versions running in your pods.