Skip to content

Rate this page
Thanks for your feedback
Thank you! The feedback has been submitted.

Get free database assistance or contact our experts for personalized support.

Install Percona Server for MongoDB using Helm

Helm is the package manager for Kubernetes. A Helm chart is a package that contains all the necessary resources to deploy an application to a Kubernetes cluster.

You can find Percona Helm charts in percona/percona-helm-charts repository in GitHub.

Prerequisites

To install and deploy the Operator, you need the following:

  1. Helm v3 .
  2. kubectl command line utility.
  3. A Kubernetes environment. You can deploy it locally on Minikube for testing purposes or using any cloud provider of your choice. Check the list of our officially supported platforms.

What you will install

  • The Operator - the custom controller that uses the custom resources to install and manage the lifecycle of your database cluster. It consists of the following components:

    • the Operator Deployment - the controller Pod
    • the CustomResourceDefinitions (CRDs) are a way to add new API types (custom resources) to Kubernetes so that it understands and handles them
    • Role-based access control (RBAC) is the system that controls who can perform which actions on which resources, using roles and bindings to enforce safe, predictable access.
  • The database cluster - the actual Percona Server for MongoDB cluster that the Operator creates for you when you apply the Custom Resource or install the Helm chart. It includes StatefulSets for mongod/mongos/config servers, Services, Secrets, and optional components like backups and PMM.

The default Percona Server for MongoDB configuration includes three mongod, three mongos, and three config server instances with enabled sharding.

Installation

Here’s a sequence of steps to follow:

  1. Add the Percona’s Helm charts repository and make your Helm client up to date with it:

    helm repo add percona https://percona.github.io/percona-helm-charts/
    helm repo update
    
  2. It is a good practice to isolate workloads in Kubernetes via namespaces. Create a namespace:

    kubectl create namespace <namespace>
    
  3. Install the Percona Server for MongoDB Operator Custom Resource Definitions (CRDs) first. You can later use this chart to manage and upgrade CRDs independently using Helm or GitOps tools.

    helm install psmdb-operator-crds percona/psmdb-operator-crds --namespace <namespace> 
    

    Important

    Although you install the CRD Helm chart (psmdb-operator-crds) in a specific namespace, the CRDs themselves are cluster-scoped resources and apply to all namespaces in your Kubernetes environment. If you uninstall or delete this CRD chart, it will remove the CRDs from the Kubernetes environment. This will irreversibly delete all Percona Server for MongoDB clusters managed by these CRDs across all namespaces where you deployed them.

  4. Install Percona Operator for MongoDB Deployment. Replace the namespace with the name of your namespace:

    helm install my-op percona/psmdb-operator --namespace <namespace> 
    

    The my-op parameter in the above example is the name of a new release object which is created for the Operator when you install its Helm chart (use any name you like).

    Expected output
    NAME: my-op
    LAST DEPLOYED: Mon Jan 19 11:45:12 2026
    NAMESPACE: <namespace>
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    .....
    
  5. Install Percona Server for MongoDB:

    helm install cluster1 percona/psmdb-db --namespace <namespace>
    

    The cluster1 parameter is the name of a new release object which is created for the Percona Server for MongoDB when you install its Helm chart (use any name you like).

    Expected output
    NAME: cluster1
    LAST DEPLOYED: Mon Jan 19 12:19:37 2026
    NAMESPACE: <namespace>
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    ....
    
  6. Check the Operator and the Percona Server for MongoDB Pods status.

    kubectl get psmdb -n <namespace>
    

    The creation process may take some time. When the process is over your cluster obtains the ready status.

    Expected output
    NAME              ENDPOINT                                           STATUS   AGE
    cluster1-psmdb-db   cluster1-psmdb-db-mongos.<namespace>.svc.cluster.local:27017   ready    5m26s
    

You have successfully installed and deployed the Operator with default parameters.

You can find in the documentation for the charts which Operator and database parameters can be customized during installation. Also, you can check the rest of the Operator’s parameters in the Custom Resource options reference.

Next steps

Connect to Percona Server for MongoDB

Install Percona Server for MongoDB with customized parameters


Last update: March 4, 2026
Created: March 4, 2026