Upgrade a Silo Tenant
The following procedures upgrade a single Silo Tenant using either Kustomize or Helm. Test the exact server image, Operator/chart version, and rollback procedure in a non-production Tenant first.
Keep the server image on pgsty/minio and use only a tag or digest published on the Silo download page. The upstream Tenant defaults use a MinIO image. Also keep MINIO_UPDATE=off; the inherited in-place updater still targets the upstream MinIO feed and is not a Silo upgrade path.
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:Replace
my-tenantandmy-tenant-nswith 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:
-
In the same directory, create a
kustomization.yamlfile with contents resembling the following:If you used a different filename for the
kubectl getoutput in the previous step, replacemy-tenant-base.yamlwith the name of that file.
-
- You can upgrade the tenant using the
kustomizationfiles 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.yamlfile with contents resembling the following:
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. Replace the sample image tag only with a newer published Silo release that you have validated.
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:
The output resembles the following:
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 Silo Tenant installation.
Use
kubectl get all -n TENANT_NAMESPACEto verify the health and status of all Tenant pods and services.Use the
helm listcommand to view the installed charts in the namespace:The result should resemble the following:
-
Update the Operator Repository
Use
helm repo update minio-operatorto 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 listto review your installed repositories.Use
helm searchto check the latest available chart version after updating the Operator Repo:The response should resemble the following:
The
minio-operator/minio-operatoris a legacy chart and should not be installed under normal circumstances. -
Preserve and review the Tenant values
Export the release’s current user-supplied values, then verify that the file retains all topology, storage, TLS, credentials, and scheduling settings:
Set
tenant.image.repositorytopgsty/minio, pintenant.image.tagto a tested published Silo release, and ensuretenant.envincludesMINIO_UPDATE=off. Never allow a chart upgrade to silently restore the upstream image default. -
Run the pinned
helm upgradePin the chart version separately from the Silo server image and pass the reviewed values file:
The command results should return success with a bump in the
REVISIONvalue. -
Validate the Tenant Upgrade
Check that all services and pods are online, confirm the running image digest, and perform an authenticated S3 read/write smoke test before completing the rollout.