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.

Upgrade the Operator and CRD via Helm

If you have installed the Operator using Helm, you can upgrade the Operator with the helm upgrade command.

The helm upgrade command updates only the Operator deployment. The update flow for the database management system is the same for all installation methods, whether it was installed via Helm or kubectl.

  1. Update the Custom Resource Definition for the Operator, taking it from the official repository on GitHub, and do the same for the Role-based access control:

    kubectl apply --server-side -f https://raw.githubusercontent.com/percona/percona-server-mysql-operator/v1.1.0/deploy/crd.yaml
    kubectl apply --server-side -f https://raw.githubusercontent.com/percona/percona-server-mysql-operator/v1.1.0/deploy/rbac.yaml
    
  2. Next, update the Operator deployment.

    If you installed the Operator with default parameters, the upgrade can be done as follows:

    helm upgrade my-op percona/ps-operator --version 1.1.0
    

    If you installed the Operator with some customized parameters , you should list these options in the upgrade command.

    You can get the list of the used options in YAML format with the helm get values my-op -a > my-values.yaml command. Then pass this file directly to the upgrade command as follows:

    helm upgrade my-op percona/ps-operator --version 1.1.0 -f my-values.yaml
    
  3. Update the Custom Resource, the database and components. This step ensures all new features and improvements of the latest release work well within your environment.

Update the Custom Resource, the database and components

Update the Custom Resource, the database and components

Update the Custom Resource, the database, backup, proxy and PMM Client image names with a newer version tag. This step ensures all new features and improvements of the latest release work well within your environment.

Find the image names in the list of certified images.

We recommend to update the PMM Server before the upgrade of PMM Client. If you haven’t updated your PMM Server yet, exclude PMM Client from the list of images to update.

Since this is a working cluster, the way to update the Custom Resource is to apply a patch with the kubectl patch ps command.

Select the command that matches your setup from the sections below.

Asynchronous replication uses HAProxy and Orchestrator. It does not use MySQL Router.

  • With PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.4.8-8.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "orchestrator":{ "image": "percona/percona-orchestrator:3.2.6-20" },
           "backup":{ "image": "percona/percona-xtrabackup:8.4.0-5.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" },
           "pmm": { "image": "percona/pmm-client:3.7.0" }
       }}'
    
  • Without PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.4.8-8.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "orchestrator":{ "image": "percona/percona-orchestrator:3.2.6-20" },
           "backup":{ "image": "percona/percona-xtrabackup:8.4.0-5.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" }
       }}'
    

Group replication with HAProxy uses HAProxy only. It does not use MySQL Router or Orchestrator.

  • With PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.4.8-8.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.4.0-5.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" },
           "pmm": { "image": "percona/pmm-client:3.7.0" }
       }}'
    
  • Without PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.4.8-8.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.4.0-5.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" }
       }}'
    

Group replication with MySQL Router uses MySQL Router only. It does not use HAProxy or Orchestrator.

  • With PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.4.8-8.1" },
           "proxy":{
              "router":{ "image": "percona/percona-mysql-router:8.4.8" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.4.0-5.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" },
           "pmm": { "image": "percona/pmm-client:3.7.0" }
       }}'
    
  • Without PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.4.8-8.1" },
           "proxy":{
              "router":{ "image": "percona/percona-mysql-router:8.4.8" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.4.0-5.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" }
       }}'
    

Asynchronous replication uses HAProxy and Orchestrator. It does not use MySQL Router.

  • With PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.0.45-36.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "orchestrator":{ "image": "percona/percona-orchestrator:3.2.6-20" },
           "backup":{ "image": "percona/percona-xtrabackup:8.0.35-35.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" },
           "pmm": { "image": "percona/pmm-client:3.7.0" }
       }}'
    
  • Without PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.0.45-36.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "orchestrator":{ "image": "percona/percona-orchestrator:3.2.6-20" },
           "backup":{ "image": "percona/percona-xtrabackup:8.0.35-35.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" }
       }}'
    

Group replication with HAProxy uses HAProxy only. It does not use MySQL Router or Orchestrator.

  • With PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.0.45-36.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.0.35-35.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" },
           "pmm": { "image": "percona/pmm-client:3.7.0" }
       }}'
    
  • Without PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.0.45-36.1" },
           "proxy":{
              "haproxy":{ "image": "percona/haproxy:2.8.18-1" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.0.35-35.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" }
       }}'
    

Group replication with MySQL Router uses MySQL Router only. It does not use HAProxy or Orchestrator.

  • With PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.0.45-36.1" },
           "proxy":{
              "router":{ "image": "percona/percona-mysql-router:8.0.45" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.0.35-35.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" },
           "pmm": { "image": "percona/pmm-client:3.7.0" }
       }}'
    
  • Without PMM Client

    kubectl patch ps ps-cluster1 --type=merge --patch '{
       "spec": {
           "crVersion":"1.1.0",
           "mysql":{ "image": "percona/percona-server:8.0.45-36.1" },
           "proxy":{
              "router":{ "image": "percona/percona-mysql-router:8.0.45" }
           },
           "backup":{ "image": "percona/percona-xtrabackup:8.0.35-35.1" },
           "toolkit":{ "image": "percona/percona-toolkit:3.7.1" }
       }}'
    

Last update: April 17, 2026
Created: April 17, 2026