Skip to content

Custom Resource options reference

Percona Operator for MySQL uses Custom Resources to manage options for the various components of the cluster.

  • PerconaServerMySQL Custom Resource with options for the cluster,
  • PerconaServerMySQLBackup and PerconaServerMySQLRestore Custom Resources contain options for Percona XtraBackup used to backup Percona XtraDB Cluster and to restore it from backups.

PerconaServerMySQL Custom Resource options

Percona Server for MySQL managed by the Operator is configured via the spec section of the deploy/cr.yaml file.

The metadata part of PerconaServerMySQL Custom Resource contains the following keys:

  • name (cluster1 by default) sets the name of your Percona Server for MySQL cluster; it should include only URL-compatible characters , not exceed 22 characters, start with an alphabetic character, and end with an alphanumeric character;
  • finalizers subsection:
    • percona.com/delete-mysql-pods-in-order if present, activates the Finalizer which controls the proper Pods deletion order in case of the cluster deletion event (on by default).
    • percona.com/delete-ssl if present, activates the Finalizer which deletes objects, created for SSL (Secret, certificate, and issuer) after the cluster deletion event (off by default).

The toplevel spec elements of the deploy/cr.yaml are the following ones:

initImage

An alternative init image for the Operator.

Value type Example
string perconalab/percona-server-mysql-operator:0.8.0

secretsName

A name for users secrets.

Value type Example
string cluster1-secrets

sslSecretName

A secret with TLS certificate generated for external communications, see Transport Layer Security (TLS) for details.

Value type Example
string cluster1-ssl

ignoreAnnotations

The list of annotations to be ignored by the Operator.

Value type Example
subdoc service.beta.kubernetes.io/aws-load-balancer-backend-protocol

ignoreLabels

The list of labels to be ignored by the Operator.

Value type Example
subdoc rack

updateStrategy

A strategy the Operator uses for upgrades.

Value type Example
string SmartUpdate

pause

Pause/resume: setting it to true gracefully stops the cluster, and setting it to false after shut down starts the cluster back.

Value type Example
boolean false

allowUnsafeConfigurations

Prevents users from configuring a cluster with unsafe parameters such as starting a group replication cluster with less than 3 or more than 9 Percona Server for MySQL instances. This option is deprecated and will be removed in future releases. Use unsafeFlags subsection instead. Setting allowUnsafeConfigurations won’t have any effect with the Operator version 0.8.0 and newer, and upgrading existing clusters with allowUnsafeConfigurations=true will cause everything under the unsafeFlags subsection set to true.

Value type Example
boolean false

Unsafe flags section

The unsafeFlags section in the deploy/cr.yaml file contains various configuration options to prevent users from configuring a cluster with unsafe parameters. After switching to unsafe configurations permissive mode you will not be able to switch the cluster back by setting same keys to false, the flags will be ignored.

unsafeFlags.mysqlSize

Allows users to start the cluster with less than 3 MySQL instances or with more than 9 (the maximum safe size).

Value type Example
boolean false

unsafeFlags.proxy

Allows users to configure a cluster with disabled proxy (both HAProxy and Router).

Value type Example
boolean false

unsafeFlags.proxySize

Allows users to set proxy (HAProxy or Router) size to a value less than 2 Pods.

Value type Example
boolean false

unsafeFlags.orchestrator

Allows users to configure a cluster with disabled Orchestrator even if asynchronous replication is turned on.

Value type Example
boolean false

unsafeFlags.orchestratorSize

Allows users to set orchestrator.size option to a value less than the minimum safe size (3).

Value type Example
boolean false

Extended cert-manager configuration section

The tls section in the deploy/cr.yaml file contains various configuration options for additional customization of the TLS cert-manager.

tls.SANs

Additional domains (SAN) to be added to the TLS certificate within the extended cert-manager configuration.

Value type Example
subdoc

tls.issuerConf.name

A cert-manager issuer name .

Value type Example
string special-selfsigned-issuer

tls.issuerConf.kind

A cert-manager issuer type .

Value type Example
string ClusterIssuer

tls.issuerConf.group

A cert-manager issuer group . Should be cert-manager.io for built-in cert-manager certificate issuers |

Value type Example
string cert-manager.io

Upgrade options section

The upgradeOptions section in the deploy/cr.yaml file contains various configuration options to control Percona Server for MySQL version choice at the deployment time and during upgrades.

upgradeOptions.versionServiceEndpoint

The Version Service URL used to check versions compatibility for upgrade.

Value type Example
string https://check.percona.com

upgradeOptions.apply

Specifies how images are picked up from the version service on initial start by the Operator. Never or Disabled will completely disable quering version service for images, otherwise it can be set to Latest or Recommended or to a specific version string of Percona Server for MySQL (e.g. 8.0.32-24) that is wished to be version-locked (so that the user can control the version running) |

Value type Example
string Disabled

Percona Server for MySQL section

The mysql section in the deploy/cr.yaml file contains general configuration options for the Percona Server for MySQL.

mysql.clusterType

The cluster type: async for Asynchronous replication , group-replication for Group Replication .

Value type Example
int group-replication

mysql.autoRecovery

Enables or disables the Operator from attempting to fix the issue in the event of a full cluster crash .

Value type Example
boolean true

mysql.size

The number of the Percona Server for MySQL instances.

Value type Example
int 3

mysql.image

The Docker image of the Percona Server for MySQL used (actual image names for Percona Server for MySQL 8.0 and Percona Server for MySQL 5.7 can be found in the list of certified images).

Value type Example
string percona/percona-server:8.0.36-28

mysql.imagePullSecrets.name

The Kubernetes ImagePullSecret .

Value type Example
string private-registry-credentials

mysql.initImage

An alternative init image for MySQL Pods.

Value type Example
string perconalab/percona-server-mysql-operator:0.8.0

mysql.primaryServiceType

Specifies the type of Kubernetes Service to be used for Primary instance if the asyncronous replication is turned on.

Value type Example
string LoadBalancer

mysql.replicasServiceType

Specifies the type of Kubernetes Service to be used for Replica instances if the asyncronous replication is turned on.

Value type Example
string ClusterIP

mysql.resources.requests.memory

The Kubernetes memory requests for a Percona Server for MySQL container.

Value type Example
string 512M

mysql.resources.limits.memory

Kubernetes memory limits for a Percona Server for MySQL container.

Value type Example
string 1G

mysql.affinity.antiAffinityTopologyKey

The Operator topology key node anti-affinity constraint.

Value type Example
string kubernetes.io/hostname

mysql.affinity.advanced

In cases where the Pods require complex tuning the advanced option turns off the topologyKey effect. This setting allows the standard Kubernetes affinity constraints of any complexity to be used.

Value type Example
subdoc

mysql.topologySpreadConstraints.labelSelector.matchLabels

The Label selector for the Kubernetes Pod Topology Spread Constraints .

Value type Example
label app.kubernetes.io/name: percona-server

mysql.topologySpreadConstraints.maxSkew

The degree to which Pods may be unevenly distributed under the Kubernetes Pod Topology Spread Constraints .

Value type Example
int 1

mysql.topologySpreadConstraints.topologyKey

The key of node labels for the Kubernetes Pod Topology Spread Constraints .

Value type Example
string kubernetes.io/hostname

mysql.topologySpreadConstraints.whenUnsatisfiable

What to do with a Pod if it doesn’t satisfy the Kubernetes Pod Topology Spread Constraints .

Value type Example
string DoNotSchedule

mysql.expose.enabled

Enable or disable exposing Percona Server for MySQL nodes with dedicated IP addresses.

Value type Example
boolean false

mysql.expose.type

The Kubernetes Service Type used for exposure.

Value type Example
string ClusterIP

mysql.expose.annotations

The Kubernetes annotations .

Value type Example
string service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp

mysql.expose.externalTrafficPolicy

Specifies whether Service should route external traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

mysql.expose.internalTrafficPolicy

Specifies whether Service should route internal traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

mysql.expose.labels

Labels are key-value pairs attached to objects .

Value type Example
label rack: rack-22

mysql.expose.loadBalancerSourceRanges

The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations).

Value type Example
string 10.0.0.0/8

mysql.volumeSpec.persistentVolumeClaim.resources.requests.storage

The Kubernetes PersistentVolumeClaim size for the Percona Server for MySQL.

Value type Example
string 2Gi

mysql.configuration

The my.cnf file options to be passed to Percona Server for MySQL instances.

Value type Example
string
|
[mysqld]
max_connections=250

mysql.sidecars.image

Image for the custom sidecar container for Percona Server for MySQL Pods.

Value type Example
string busybox

mysql.sidecars.command

Command for the custom sidecar container for Percona Server for MySQL Pods.

Value type Example
array ["sleep", "30d"]

mysql.sidecars.name

Name of the custom sidecar container for Percona Server for MySQL Pods.

Value type Example
string my-sidecar-1

mysql.sidecars.volumeMounts.mountPath

Mount path of the custom sidecar container volume for Replica Set Pods.

Value type Example
string /volume1

mysql.sidecars.resources.requests.memory

The Kubernetes memory requests for a Percona Server for MySQL sidecar container.

Value type Example
string 16M

mysql.sidecars.volumeMounts.name

Name of the custom sidecar container volume for Replica Set Pods.

Value type Example
string sidecar-volume-claim

mysql.sidecarVolumes

Volume specification for the custom sidecar container volume for Percona Server for MySQL Pods.

Value type Example
subdoc

mysql.sidecarPVCs

Persistent Volume Claim for the custom sidecar container volume for Replica Set Pods |

Value type Example
subdoc

HAProxy subsection

The proxy.haproxy subsection in the deploy/cr.yaml file contains configuration options for the HAProxy service.

proxy.haproxy.enabled

Enables or disables load balancing with HAProxy Services .

Value type Example
boolean true

proxy.haproxy.size

The number of the HAProxy Pods to provide load balancing. Safe configuration should have 2 or more.

Value type Example
int 3

proxy.haproxy.image

HAProxy Docker image to use.

Value type Example
string percona/perconalab-xtradb-cluster-operator:0.8.0-haproxy

proxy.haproxy.imagePullPolicy

The policy used to update images .

Value type Example
string Always

proxy.haproxy.resources.requests.memory

The Kubernetes memory requests for the main HAProxy container.

Value type Example
string 1G

proxy.haproxy.resources.requests.cpu

Kubernetes CPU requests for the main HAProxy container.

Value type Example
string 600m

proxy.haproxy.resources.limits.memory

Kubernetes memory limits for the main HAProxy container.

Value type Example
string 1G

proxy.haproxy.resources.limits.cpu

Kubernetes CPU limits for the main HAProxy container.

Value type Example
string 700m

proxy.haproxy.env.name

Name of an environment variable for HAProxy.

Value type Example
string HA_CONNECTION_TIMEOUT

proxy.haproxy.env.value

Value of an environment variable for HAProxy.

Value type Example
string "1000"

proxy.haproxy.envFrom.secretRef.name

Name of a Secret with environment variables for HAProxy.

Value type Example
string haproxy-env-secret

proxy.haproxy.readinessProbes.timeoutSeconds

Number of seconds after which the readiness probe times out.

Value type Example
int 3

proxy.haproxy.readinessProbes.periodSeconds

How often (in seconds) to perform the readiness probe .

Value type Example
int 5

proxy.haproxy.readinessProbes.successThreshold

Minimum consecutive successes for the readiness probe to be considered successful after having failed.

Value type Example
int 3

proxy.haproxy.readinessProbes.failureThreshold

When the readiness probe fails, Kubernetes will try this number of times before marking the Pod Unready.

Value type Example
int 1

proxy.haproxy.livenessProbes.timeoutSeconds

Number of seconds after which the liveness probe times out.

Value type Example
int 3

proxy.haproxy.livenessProbes.periodSeconds

How often (in seconds) to perform the liveness probe .

Value type Example
int 5

proxy.haproxy.livenessProbes.successThreshold

Minimum consecutive successes for the liveness probe to be considered successful after having failed.

Value type Example
int 3

proxy.haproxy.readinessProbes.failureThreshold

When the liveness probe fails, Kubernetes will try this number of times before marking the Pod Unready.

Value type Example
int 1

proxy.haproxy.configuration

The custom HAProxy configuration file contents.

Value type Example
string

proxy.haproxy.antiAffinityTopologyKey

The Operator topology key node anti-affinity constraint.

Value type Example
string kubernetes.io/hostname

proxy.haproxy.affinity.advanced

If available it makes a topologyKey node affinity constraint to be ignored.

Value type Example
subdoc

proxy.haproxy.topologySpreadConstraints.labelSelector.matchLabels

The Label selector for the Kubernetes Pod Topology Spread Constraints .

Value type Example
label app.kubernetes.io/name: percona-server

proxy.haproxy.topologySpreadConstraints.maxSkew

The degree to which Pods may be unevenly distributed under the Kubernetes Pod Topology Spread Constraints .

Value type Example
int 1

proxy.haproxy.topologySpreadConstraints.topologyKey

The key of node labels for the Kubernetes Pod Topology Spread Constraints .

Value type Example
string kubernetes.io/hostname

proxy.haproxy.topologySpreadConstraints.whenUnsatisfiable

What to do with a Pod if it doesn’t satisfy the Kubernetes Pod Topology Spread Constraints .

Value type Example
string DoNotSchedule

proxy.haproxy.expose.type

The Kubernetes Service Type used for HAProxy exposure.

Value type Example
string ClusterIP

proxy.haproxy.expose.annotations

The Kubernetes annotations for HAProxy.

Value type Example
string service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp

proxy.haproxy.expose.externalTrafficPolicy

Specifies whether Service for HAProxy should route external traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

proxy.haproxy.expose.internalTrafficPolicy

Specifies whether Service for HAProxy should route internal traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

proxy.haproxy.expose.labels

Labels are key-value pairs attached to objects for HAProxy.

Value type Example
label rack: rack-22

proxy.haproxy.expose.loadBalancerIP

The static IP-address for the load balancer.

Value type Example
string 127.0.0.1

proxy.haproxy.expose.loadBalancerSourceRanges

The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations) |

Value type Example
string 10.0.0.0/8

Router subsection

The proxy.router subsection in the deploy/cr.yaml file contains configuration options for the MySQL Router , which can act as a proxy for Group replication.

proxy.router.enabled

Enables or disables MySQL Router.

Value type Example
boolean false

proxy.router.size

The number of the Router Pods to provide routing to MySQL Servers.

Value type Example
int 3

proxy.router.image

Router Docker image to use.

Value type Example
string perconalab/percona-server-mysql-operator:0.8.0-router

proxy.router.imagePullPolicy

The policy used to update images .

Value type Example
string Always

proxy.router.initImage

An alternative init image for MySQL Router Pods.

Value type Example
string perconalab/percona-server-mysql-operator:0.8.0

proxy.router.resources.requests.memory

The Kubernetes memory requests for MySQL Router container.

Value type Example
string 256M

proxy.router.resources.limits.memory

Kubernetes memory limits for MySQL Router container.

Value type Example
string 256M

proxy.router.affinity.antiAffinityTopologyKey

The Operator topology key node anti-affinity constraint.

Value type Example
string kubernetes.io/hostname

proxy.router.affinity.advanced

In cases where the Pods require complex tuning the advanced option turns off the topologyKey effect. This setting allows the standard Kubernetes affinity constraints of any complexity to be used.

Value type Example
subdoc

proxy.router.topologySpreadConstraints.labelSelector.matchLabels

The Label selector for the Kubernetes Pod Topology Spread Constraints .

Value type Example
label app.kubernetes.io/name: percona-server

proxy.router.topologySpreadConstraints.maxSkew

The degree to which Pods may be unevenly distributed under the Kubernetes Pod Topology Spread Constraints .

Value type Example
int 1

proxy.router.topologySpreadConstraints.topologyKey

The key of node labels for the Kubernetes Pod Topology Spread Constraints .

Value type Example
string kubernetes.io/hostname

proxy.router.topologySpreadConstraints.whenUnsatisfiable

What to do with a Pod if it doesn’t satisfy the Kubernetes Pod Topology Spread Constraints .

Value type Example
string DoNotSchedule

proxy.router.configuration

Custom configuration options to be passed to MySQL Router.

Value type Example
string
|
[default]
logging_folder=/tmp/router/log
[logger]
level=DEBUG

proxy.router.expose.type

The Kubernetes Service Type used for MySQL Router instances exposure.

Value type Example
string ClusterIP

proxy.router.expose.annotations

The Kubernetes annotations for MySQL Router.

Value type Example
string service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp

proxy.router.expose.externalTrafficPolicy

Specifies whether Service for MySQL Router should route external traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

proxy.router.expose.internalTrafficPolicy

Specifies whether Service for MySQL Router should route internal traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

proxy.router.expose.labels

Labels are key-value pairs attached to objects for MySQL Router.

Value type Example
label rack: rack-22

proxy.router.expose.loadBalancerIP

The static IP-address for the load balancer.

Value type Example
string 127.0.0.1

proxy.router.expose.loadBalancerSourceRanges

The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations) |

Value type Example
string 10.0.0.0/8

Orchestrator section

The orchestrator section in the deploy/cr.yaml file contains configuration options for the Orchestrator - a replication topology manager, used if asynchronous replication is turned on.

orchestrator.enabled

Enables or disables the Orchestrator.

Value type Example
boolean true

orchestrator.size

The number of the Orchestrator Pods to provide load balancing.

Value type Example
int 3

orchestrator.image

Orchestrator Docker image to use.

Value type Example
string perconalab/percona-server-mysql-operator:0.8.0-orchestrator

orchestrator.imagePullPolicy

The policy used to update images .

Value type Example
string Always

orchestrator.serviceAccountName

The Kubernetes Service Account for the Orchestrator Pods.

Value type Example
string ercona-server-mysql-operator-orchestrator

orchestrator.initImage

An alternative init image for Orchestrator Pods.

Value type Example
string perconalab/percona-server-mysql-operator:0.8.0

orchestrator.affinity.antiAffinityTopologyKey

The Operator topology key node anti-affinity constraint.

Value type Example
string kubernetes.io/hostname

orchestrator.affinity.advanced

In cases where the Pods require complex tuning the advanced option turns off the topologyKey effect. This setting allows the standard Kubernetes affinity constraints of any complexity to be used.

Value type Example
subdoc

orchestrator.topologySpreadConstraints.labelSelector.matchLabels

The Label selector for the Kubernetes Pod Topology Spread Constraints .

Value type Example
label app.kubernetes.io/name: percona-server

orchestrator.topologySpreadConstraints.maxSkew

The degree to which Pods may be unevenly distributed under the Kubernetes Pod Topology Spread Constraints .

Value type Example
int 1

orchestrator.topologySpreadConstraints.topologyKey

The key of node labels for the Kubernetes Pod Topology Spread Constraints .

Value type Example
string kubernetes.io/hostname

orchestrator.topologySpreadConstraints.whenUnsatisfiable

What to do with a Pod if it doesn’t satisfy the Kubernetes Pod Topology Spread Constraints .

Value type Example
string DoNotSchedule

orchestrator.expose.type

The Kubernetes Service Type used for Orchestrator instances exposure.

Value type Example
string ClusterIP

orchestrator.expose.annotations

The Kubernetes annotations for the Orchestrator.

Value type Example
string service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp

orchestrator.expose.externalTrafficPolicy

Specifies whether Service for the Orchestrator should route external traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

orchestrator.expose.internalTrafficPolicy

Specifies whether Service for the Orchestrator should route internal traffic to cluster-wide (Cluster) or node-local (Local) endpoints; it can influence the load balancing effectiveness.

Value type Example
string Cluster

orchestrator.expose.labels

Labels are key-value pairs attached to objects for the Orchestrator.

Value type Example
label rack: rack-22

orchestrator.expose.loadBalancerSourceRanges

The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations).

Value type Example
string 10.0.0.0/8

orchestrator.resources.requests.memory

The Kubernetes memory requests for an Orchestrator container.

Value type Example
string 128M

orchestrator.resources.limits.memory

Kubernetes memory limits for an Orchestrator container.

Value type Example
string 256M

orchestrator.volumeSpec.persistentVolumeClaim.resources.requests.storage

The Kubernetes PersistentVolumeClaim size for the Orchestrator |

Value type Example
string 1Gi

PMM section

The pmm section in the deploy/cr.yaml file contains configuration options for Percona Monitoring and Management.

pmm.enabled

Enables or disables monitoring Percona Server for MySQL with PMM.

Value type Example
boolean false

pmm.image

PMM client Docker image to use.

Value type Example
string percona/pmm-client:2.42.0

pmm.imagePullPolicy

The policy used to update images .

Value type Example
string Always

pmm.resources.requests.memory

The Kubernetes memory requests for a PMM container.

Value type Example
string 150M

pmm.resources.requests.cpu

Kubernetes CPU requests for a PMM container.

Value type Example
string 300m

pmm.resources.limits.memory

Kubernetes memory limits for a PMM container.

Value type Example
string 256M

pmm.resources.limits.cpu

Kubernetes CPU limits for a PMM container.

Value type Example
string 400m

pmm.serverHost

Address of the PMM Server to collect data from the cluster.

Value type Example
string monitoring-service

pmm.serverUser

The PMM Serve_User. The PMM Server password should be configured using Secrets.

Value type Example
string admin

Backup section

The backup section in the deploy/cr.yaml file contains the following configuration options for the regular Percona XtraDB Cluster backups.

backup.enabled

Enables or disables making backups.

Value type Example
boolean true

backup.image

The Percona XtraBackup Docker image to use for the backup.

Value type Example
string percona/percona-server-mysql-operator:0.8.0-backup

backup.imagePullPolicy

The policy used to update images .

| Value | string | | Example | Always |

backup.initImage

An alternative init image for Percona XtraBackup Pods.

Value type Example
string perconalab/percona-server-mysql-operator:0.8.0

backup.containerSecurityContext

A custom Kubernetes Security Context for the xtrabackup container to be used instead of the default one.

Value type Example
subdoc privileged: true

backup.backoffLimit

The number of retries to make a backup (by default, 6 retries are made).

Value type Example
int 6

backup.storages.STORAGE-NAME.type

The cloud storage type used for backups. Only s3 and azure types are supported.

Value type Example
string s3

backup.storages.STORAGE-NAME.verifyTLS

Enable or disable verification of the storage server TLS certificate. Disabling it may be useful e.g. to skip TLS verification for private S3-compatible storage with a self-issued certificate.

Value type Example
boolean true

backup.storages.STORAGE-NAME.nodeSelector

Kubernetes nodeSelector .

Value type Example
label disktype: ssd

backup.storages.STORAGE-NAME.resources.requests.memory

The Kubernetes memory requests for a Percona XtraBackup container.

Value type Example
string 1G

backup.storages.STORAGE-NAME.resources.requests.cpu

Kubernetes CPU requests for a Percona XtraBackup container.

Value type Example
string 600m

backup.storages.STORAGE-NAME.affinity.nodeAffinity

The Operator node affinity constraint.

Value type Example
subdoc

backup.storages.STORAGE-NAME.topologySpreadConstraints.labelSelector.matchLabels

The Label selector for the Kubernetes Pod Topology Spread Constraints .

Value type Example
label app.kubernetes.io/name: percona-server

backup.storages.STORAGE-NAME.topologySpreadConstraints.maxSkew

The degree to which Pods may be unevenly distributed under the Kubernetes Pod Topology Spread Constraints .

Value type Example
int 1

backup.storages.STORAGE-NAME.topologySpreadConstraints.topologyKey

The key of node labels for the Kubernetes Pod Topology Spread Constraints .

Value type Example
string kubernetes.io/hostname

backup.storages.STORAGE-NAME.topologySpreadConstraints.whenUnsatisfiable

What to do with a Pod if it doesn’t satisfy the Kubernetes Pod Topology Spread Constraints .

Value type Example
string DoNotSchedule

backup.storages.STORAGE-NAME.tolerations

Kubernetes Pod tolerations .

Value type Example
subdoc

backup.storages.STORAGE-NAME.schedulerName

The Kubernetes Scheduler .

Value type Example
string mycustom-scheduler

backup.storages.STORAGE-NAME.priorityClassName

The Kubernetes Pod priority class .

Value type Example
string high-priority

backup.storages.STORAGE-NAME.containerSecurityContext

A custom Kubernetes Security Context for a Container to be used instead of the default one.

Value type Example
subdoc privileged: true

backup.storages.STORAGE-NAME.podSecurityContext

A custom Kubernetes Security Context for a Pod to be used instead of the default one.

Value type Example
subdoc
fsGroup: 1001
supplementalGroups: [1001, 1002, 1003]

backup.storages.STORAGE-NAME.annotations

The Kubernetes annotations .

Value type Example
label testName: scheduled-backup

backup.storages.STORAGE-NAME.labels

Labels are key-value pairs attached to objects .

Value type Example
label backupWorker: 'True'

backup.storages.STORAGE-NAME.s3.bucket

The Amazon S3 bucket name for backups.

Value type Example
string

backup.storages.STORAGE-NAME.s3.region

The AWS region to use. Please note this option is mandatory for Amazon and all S3-compatible storages.

Value type Example
string us-west-2

backup.storages.STORAGE-NAME.s3.prefix

The path (sub-folder) to the backups inside the bucket .

Value type Example
string ""

backup.storages.STORAGE-NAME.s3.credentialsSecret

The Kubernetes secret for backups. It should contain AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY keys.

Value type Example
string my-cluster-name-backup-s3

backup.storages.STORAGE-NAME.s3.endpointUrl

The endpoint URL of the S3-compatible storage to be used (not needed for the original Amazon S3 cloud) |

Value type Example
string

Percona Toolkit section

The toolkit section in the deploy/cr.yaml file contains configuration options for Percona Toolkit .

toolkit.image

Percona Toolkit client Docker image to use.

Value type Example
string percona/pmm-client:2.42.0

toolkit.imagePullPolicy

The policy used to update images .

Value type Example
string Always

toolkit.resources.requests.memory

The Kubernetes memory requests for a Percona Toolkit container.

Value type Example
string 150M

toolkit.resources.requests.cpu

Kubernetes CPU requests for a Percona Toolkit container.

Value type Example
string 100m

toolkit.resources.limits.memory

Kubernetes memory limits for a Percona Toolkit container.

Value type Example
string 256M

toolkit.resources.limits.cpu

Kubernetes CPU limits for a Percona Toolkit container |

Value type Example
string 400m

PerconaServerMySQLRestore Custom Resource options

Percona Server for MySQL Restore options are managed by the Operator via the PerconaServerMySQLRestore Custom Resource and can be configured via the deploy/backup/restore.yaml configuration file. This Custom Resource contains the following options:

Key Value type Description Required
metadata.name string The name of the restore true
spec.clusterName string MySQL Cluster name (the name of your running cluster) true
spec.backupName string The name of the backup which should be restored false
spec.backupSource subdoc Defines configuration for different restore sources false

backupSource section

Key Value type Description Required
destination string Path to the backup false
storageName string The storage name from CR spec.backup.storages false
s3 subdoc Define configuration for s3 compatible storages false
azure subdoc Define configuration for azure blob storage false

backupSource.s3 subsection

Key Value type Description Required
bucket string The bucket with a backup true
credentialsSecret string The Secret name for the backup true
endpointUrl string A valid endpoint URL false
region string The region corresponding to the S3 bucket false

backupSource.azure subsection

Key Value type Description Required
credentialsSecret string The Secret name for the azure blob storage true
container string The container name of the azure blob storage true
endpointUrl string A valid endpoint URL false
storageClass string The storage class name of the azure storage false

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services. Join K8S Squad to benefit from early access to features and “ask me anything” sessions with the Experts.


Last update: 2024-08-08