Documentation

Deploy Operator With Helm

Overview

Helm is a tool for automating the deployment of applications to Kubernetes clusters. A Helm chart is a set of YAML files, templates, and other files that define the deployment details. The following procedure uses a Helm Chart to install the MinIO Kubernetes Operator to a Kubernetes cluster.

Prerequisites

See the Operator Prerequisites for a baseline of requirements. Helm installations have the following additional requirements:

  • Helm (Use the Version appropriate for your Kubernetes API version)

  • yq

For more about Operator installation requirements, including supported Kubernetes versions and TLS certificates, see the Operator deployment prerequisites.

This procedure assumes familiarity with the referenced Kubernetes concepts and utilities. While this documentation may provide guidance for configuring or deploying Kubernetes-related resources on a best-effort basis, it is not a replacement for the official Kubernetes Documentation.

Install the MinIO Operator using Helm Charts

The following procedure installs the Operator using the MinIO Operator Chart Repository. This method supports a simplified installation path compared to the local chart installation. You can modify the Operator deployment after installation.

Important

If you use Helm charts to install the Operator, you must use Helm to manage that installation. Do not use kubectl krew, Kustomize, or similar methods to update or manage the MinIO Operator installation.

  1. Add the MinIO Operator Repo to Helm

    MinIO maintains a Helm-compatible repository at https://operator.min.io. Add this repository to Helm:

    helm repo add minio-operator https://operator.min.io
    

    You can validate the repo contents using helm search:

    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.1           v6.0.1          A Helm chart for MinIO Operator
    minio-operator/tenant           6.0.1           v6.0.1          A Helm chart for MinIO Operator
    

    The minio-operator/minio-operator is a legacy chart and should not be installed under normal circumstances.

  2. Install the Operator

    Run the helm install command to install the Operator. The following command specifies and creates a dedicated namespace minio-operator for installation. MinIO strongly recommends using a dedicated namespace for the Operator.

    helm install \
      --namespace minio-operator \
      --create-namespace \
      operator minio-operator/operator
    
  3. Verify the Operator installation

    Check the contents of the specified namespace (minio-operator) to ensure all pods and services have started successfully.

    kubectl get all -n minio-operator
    

    The response should resemble the following:

    NAME                                  READY   STATUS    RESTARTS   AGE
    pod/minio-operator-699f797b8b-th5bk   1/1     Running   0          25h
    pod/minio-operator-699f797b8b-nkrn9   1/1     Running   0          25h
    
    NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
    service/operator   ClusterIP   10.43.44.204    <none>        4221/TCP            25h
    service/sts        ClusterIP   10.43.70.4      <none>        4223/TCP            25h
    
    NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/minio-operator   2/2     2            2           25h
    
    NAME                                        DESIRED   CURRENT   READY   AGE
    replicaset.apps/minio-operator-79f7bfc48    2         2         2       123m
    

You can now deploy a tenant using Helm Charts.

Install the MinIO Operator using Local Helm Charts

The following procedure installs the Operator using a local copy of the Helm Charts. This method may support easier pre-configuration of the Operator compared to the repo-based installation

  1. Download the Helm charts

    On your local host, download the Operator Helm charts to a convenient directory:

    curl -O https://raw.githubusercontent.com/minio/operator/master/helm-releases/operator-6.0.4.tgz
    
  2. (Optional) Modify the values.yaml

    The chart contains a values.yaml file you can customize to suit your needs. For details on the options available in the MinIO Operator values.yaml, see Operator Helm Charts.

    For example, you can change the number of replicas for operators.replicaCount to increase or decrease pod availability in the deployment. See Operator Helm Charts for more complete documentation on the Operator Helm Chart and Values.

    For more about customizations, see Helm Charts.

  3. Install the Helm Chart

    Use the helm install command to install the chart. The following command assumes the Operator chart is saved to ./operator relative to the working directory.

    helm install \
    --namespace minio-operator \
    --create-namespace \
    minio-operator ./operator
    
  4. To verify the installation, run the following command:

    kubectl get all --namespace minio-operator
    

    If you initialized the Operator with a custom namespace, replace minio-operator with that namespace.

    The output resembles the following:

    NAME                                  READY   STATUS    RESTARTS   AGE
    pod/minio-operator-7976b4df5b-rsskl   1/1     Running   0          81m
    pod/minio-operator-7976b4df5b-x622g   1/1     Running   0          81m
    
    NAME               TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
    service/operator   ClusterIP   10.110.113.146   <none>        4222/TCP,4233/TCP   81m
    
    NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/minio-operator   2/2     2            2           81m
    
    NAME                                        DESIRED   CURRENT   READY   AGE
    replicaset.apps/minio-operator-7976b4df5b   1         1         1       81m
    

You can now deploy a tenant using Helm Charts.