Database cluster Templates¶
Do not use for mission-critical workloads
DBaaS feature is deprecated. We encourage you to use Percona Everest instead. Check our Migration guide.
Database clusters can be created from templates using PMM. Database cluster Template allows operators to customize Database Clusters based on their requirements, environments, or infrastructure.
Examples
-
Data clusters: Different load patterns, such as simple reads, heavy writes, 50%/50% read/write, and the number of connections.
-
Infrastructure - Different parameters and tuning for the resulting cluster: such as network configuration (load balancing, exposure), storage classes/types, etc.
-
Environment: Combination of database cluster and infrastructure that will affect the database cluster configuration.
Customize PXC DB configuration¶
The following example shows how DBaaS users can create PXC DB clusters from a template that sets a custom MySQL configuration. The default MySQL configuration is the following:
[mysqld]
wsrep_provider_options="gcache.size=600M"
Note
PXC DB configuration can be customized based on your needs. This can be accomplished by creating a template and changing that field.
Create Custom Resource Definition (CRD) template¶
To create a template, do the following:
-
Identify the field(s) of interest by reading the PXC operator documentation and the PXC CRD. In this case, you have to change the
spec.pxc.configuration
field. -
Create a template CRD
pxctpl-crd-pxc-configuration.yaml
with just those small subset of fields.apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.8.0 creationTimestamp: null name: pxctemplatepxcconfiguration.dbaas.percona.com labels: dbaas.percona.com/template: "yes" dbaas.percona.com/engine: "pxc" spec: group: dbaas.percona.com names: kind: PXCTemplatePXCConfiguration listKind: PXCTemplatePXCConfigurationList plural: pxctemplatepxcconfiguration singular: pxctemplatepxcconfiguration scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: properties: apiVersion: type: string kind: type: string metadata: type: object spec: properties: pxc: properties: configuration: type: string type: object type: object status: type: object type: object served: true storage: true
-
Run the following command.
kubectl apply -f pxctpl-crd-upgrade-options.yaml
For more information, see DatabaseCluster templates.
Add read permissions for dbaas-operator¶
In order for the dbaas-operator to apply the template it needs access to the template CRs:
DBAAS_OPERATOR_MANAGER_ROLE=$(kubectl get clusterroles | grep dbaas-operator | grep -v metrics | grep -v proxy | cut -f 1 -d ' '); kubectl get clusterroles/"$DBAAS_OPERATOR_MANAGER_ROLE" -o yaml > dbaas-operator-manager-role.yaml
cat <<EOF >>dbaas-operator-manager-role.yaml
- apiGroups:
- dbaas.percona.com
resources:
- pxctemplatepxcconfiguration
verbs:
- get
- list
EOF
Run the following command:
kubectl apply -f dbaas-operator-manager-role.yaml
Create PXCTemplatePXCConfiguration Template CR¶
-
Create a corresponding CR
pxctpl-pxc-config-max-connection-789.yaml
with the required values.2. Run the following command:apiVersion: dbaas.percona.com/v1 kind: PXCTemplatePXCConfiguration metadata: name: pxc-config-max-connections-789 labels: dbaas.percona.com/template: "yes" dbaas.percona.com/engine: "pxc" spec: pxc: configuration: | [mysqld] max_connections = 789
kubectl apply -f pxctpl-pxc-config-max-connection-789.yaml
Create a DB cluster from template¶
To create a DB cluster from a template, do the following:
-
From the main menu navigate to DBaaS → Create DB Cluster.
-
On the Advanced Settings panel, select the template from the Templates drop-down.
-
Click
Create
.
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.