Upgrade a MinIO Tenant
The following procedures upgrade a single MinIO Tenant, using either Kustomize or Helm. MinIO recommends you test upgrades in a lower environment such as a Dev or QA Tenant, before upgrading production Tenants.
Important
For Tenants using a MinIO Image older than RELEASE.2024-03-30T09-41-56Z running with AD/LDAP enabled, you must read through the release notes for RELEASE.2024-04-18T19-09-19Z before starting this procedure. You must take the extra steps documented in the linked release as part of the upgrade procedure.
Upgrade a Tenant using Kustomize
The following procedure upgrades a MinIO Tenant using Kustomize and the kubectl
CLI.
If you deployed the Tenant using Helm, use the Upgrade the Tenant using the MinIO Helm Chart procedure instead.
To upgrade a Tenant with Kustomize:
If the tenant was deployed with Operator Console, there are additional steps to create a base configuration file before upgrading.
If the tenant was deployed with Kustomize, the base configuration is your existing kustomization
files from the original tenant deployment.
Choose a tab below depending on how the tenant was deployed:
Create the base configuration file:
In a convenient directory, save the current Tenant configuration to a file using
kubectl get
:kubectl get tenant/my-tenant -n my-tenant-ns -o yaml > my-tenant-base.yaml
Replace
my-tenant
andmy-tenant-ns
with the name and namespace of the Tenant to upgrade.Edit the file to remove the following lines:
creationTimestamp:
resourceVersion:
uid:
selfLink:
(if present)
For example, remove the highlighted lines:
metadata: creationTimestamp: "2024-05-29T21:22:20Z" generation: 1 name: my-tenant namespace: my-tenant-ns resourceVersion: "4699" uid: d5b8e468-3bed-4aa3-8ddb-dfe1ee0362da
In the same directory, create a
kustomization.yaml
file with contents resembling the following:apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - my-tenant-base.yaml patches: - path: upgrade-minio-tenant.yaml
If you used a different filename for the
kubectl get
output in the previous step, replacemy-tenant-base.yaml
with the name of that file.
You can upgrade the tenant using the
kustomization
files from the original deployment as the base configuration. If you no longer have these files, follow the instructions in the Operator Console-Deployed Tenant tab.
Create a
upgrade-minio-tenant.yaml
file with contents resembling the following:
apiVersion: minio.min.io/v2
kind: Tenant
metadata:
name: my-tenant
namespace: my-tenant-ns
spec:
image: minio/minio:RELEASE.2024-11-07T00-52-20Z
This file instructs Kustomize to upgrade the tenant using the specified image.
The name of this file, upgrade-minio-tenant.yaml
, must match the patches.path
filename specified in the kustomization.yaml
file created in the previous step.
Replace my-tenant
and my-tenant-ns
with the name and namespace of the Tenant to upgrade.
Specify the MinIO version to upgrade to in image:
.
Alternatively, you can update the base configuration directly, according to your local procedures. Refer to the Kustomize Documentation for more information.
From the same directory as the above files, apply the updated configuration to the Tenant with
kubectl apply
:
kubectl apply -f ./The output resembles the following:
tenant.minio.min.io/my-tenant configured
Upgrade the Tenant using the MinIO Helm Chart
This procedure upgrades an existing MinIO Tenant using Helm Charts.
If you deployed the Tenant using Kustomize, use the Upgrade a Tenant using Kustomize procedure instead.
Verify the existing MinIO Tenant installation.
Use
kubectl get all -n TENANT_NAMESPACE
to verify the health and status of all Tenant pods and services.Use the
helm list
command to view the installed charts in the namespace:helm list -n TENANT_NAMESPACE
The result should resemble the following:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION CHART_NAME TENANT_NAMESPACE 1 2023-11-01 15:49:58.810412732 -0400 EDT deployed tenant-5.0.x v5.0.x
Update the Operator Repository
Use
helm repo update minio-operator
to update the MinIO Operator repo. If you set a different alias for the MinIO Operator repository, specify that to the command. You can usehelm repo list
to review your installed repositories.Use
helm search
to check the latest available chart version after updating the Operator Repo:helm search repo minio-operator
The response should resemble the following:
NAME CHART VERSION APP VERSION DESCRIPTION minio-operator/minio-operator 4.3.7 v4.3.7 A Helm chart for MinIO Operator minio-operator/operator 6.0.4 v6.0.4 A Helm chart for MinIO Operator minio-operator/tenant 6.0.4 v6.0.4 A Helm chart for MinIO Operator
The
minio-operator/minio-operator
is a legacy chart and should not be installed under normal circumstances.Run
helm upgrade
Helm uses the latest chart to upgrade the Tenant:
helm upgrade -n minio-tenant \ CHART_NAME minio-operator/tenant
The command results should return success with a bump in the
REVISION
value.Validate the Tenant Upgrade
Check that all services and pods are online and functioning normally.