diff --git a/addons-cluster/polardbx/templates/_helpers.tpl b/addons-cluster/polardbx/templates/_helpers.tpl
index d23cd372e..1a431ac1c 100644
--- a/addons-cluster/polardbx/templates/_helpers.tpl
+++ b/addons-cluster/polardbx/templates/_helpers.tpl
@@ -1,53 +1,23 @@
{{/*
Expand the name of the chart.
*/}}
-{{- define "polardbx.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
-{{- end }}
{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
+Define the cluster name.
+We truncate at 15 chars because KubeBlocks will concatenate the names of other resources with cluster name
*/}}
-{{- define "polardbx.fullname" -}}
-{{- if .Values.fullnameOverride }}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- $name := default .Chart.Name .Values.nameOverride }}
-{{- if contains $name .Release.Name }}
-{{- .Release.Name | trunc 63 | trimSuffix "-" }}
-{{- else }}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
-{{- end }}
+{{- define "polardbx-cluster.name" -}}
+{{- $name := default .Release.Name .Values.clusterName }}
+{{- if not (regexMatch "^[a-z]([-a-z0-9]*[a-z0-9])?$" $name) }}
+{{ fail (printf "Release name %q is invalid. It must match the regex %q." $name "^[a-z]([-a-z0-9]*[a-z0-9])?$") }}
{{- end }}
+{{- if gt (len $name) 16 }}
+{{ fail (printf "Release name %q is invalid, must be no more than 6 characters" $name) }}
{{- end }}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "polardbx.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- if gt (add (len $name) (len .Release.Namespace)) 18 }}
+{{ fail (printf "Combined length of release name %q and namespace %q must be no more than 18 characters" $name .Release.Namespace) }}
{{- end }}
-
-{{/*
-Common labels
-*/}}
-{{- define "polardbx.labels" -}}
-helm.sh/chart: {{ include "polardbx.chart" . }}
-{{ include "polardbx.selectorLabels" . }}
-{{- if .Chart.AppVersion }}
-app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
-{{- end }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end }}
-
-{{/*
-Selector labels
-*/}}
-{{- define "polardbx.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "polardbx.name" . }}
-app.kubernetes.io/instance: {{ .Release.Name }}
+{{- $name }}
{{- end }}
{{/*
diff --git a/addons-cluster/polardbx/templates/cluster.yaml b/addons-cluster/polardbx/templates/cluster.yaml
index 2772aae8a..6f4f5b48c 100644
--- a/addons-cluster/polardbx/templates/cluster.yaml
+++ b/addons-cluster/polardbx/templates/cluster.yaml
@@ -1,10 +1,10 @@
apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
- name: {{ include "polardbx.name" . }}
+ name: {{ include "polardbx-cluster.name" . }}
namespace: {{ .Release.Namespace }}
labels:
- {{ include "polardbx.labels" . | nindent 4 }}
+ {{ include "kblib.clusterLabels" . | nindent 4 }}
spec:
terminationPolicy: {{ .Values.extra.terminationPolicy }}
componentSpecs:
@@ -28,6 +28,7 @@ spec:
volumeClaimTemplates:
- name: data
spec:
+ storageClassName: {{ .Values.gms.persistence.data.storageClass | quote }}
accessModes:
- ReadWriteOnce
resources:
@@ -56,6 +57,7 @@ spec:
volumeClaimTemplates:
- name: data
spec:
+ storageClassName: {{ .persistence.data.storageClass | quote }}
accessModes:
- ReadWriteOnce
resources:
diff --git a/addons-cluster/polardbx/values.yaml b/addons-cluster/polardbx/values.yaml
index d3557ee41..37962b3a5 100644
--- a/addons-cluster/polardbx/values.yaml
+++ b/addons-cluster/polardbx/values.yaml
@@ -1,5 +1,5 @@
## cluster settings for polardbx cluster
-nameOverride: pxc
+clusterName: pxc
gms:
## @param gms.replicas data replicas of gms instance
diff --git a/addons/polardbx/dashboards/polardbx-overview.json b/addons/polardbx/dashboards/polardbx-overview.json
index fac3adf80..2ffdcd37e 100644
--- a/addons/polardbx/dashboards/polardbx-overview.json
+++ b/addons/polardbx/dashboards/polardbx-overview.json
@@ -843,7 +843,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"gms\"})\nor\nsum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (polardbx_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\nor \nsum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"dn\"})\nor \nsum by (app_kubernetes_io_instance, pod, app_kubernetes_io_component, apps_kubeblocks_io_component_name) (polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\n",
+ "expr": "sum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=\"gms\"})\nor\nsum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (polardbx_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\nor \nsum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (mysql_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=~\"dn-.*\"})\nor \nsum by (app_kubernetes_io_instance, pod, apps_kubeblocks_io_component_name, apps_kubeblocks_io_component_name) (polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\"})\n",
"format": "table",
"hide": false,
"instant": true,
@@ -881,7 +881,7 @@
"indexByName": {
"Time": 2,
"Value": 5,
- "app_kubernetes_io_component": 1,
+ "apps_kubeblocks_io_component_name": 1,
"app_kubernetes_io_instance": 0,
"apps_kubeblocks_io_component_name": 3,
"pod": 4
@@ -895,7 +895,7 @@
"Value #G": "MEM %",
"Value #H": "Network (Recv)",
"Value #I": "Network (Sent)",
- "app_kubernetes_io_component": "role",
+ "apps_kubeblocks_io_component_name": "role",
"app_kubernetes_io_instance": "instance",
"apps_kubeblocks_io_component_name": "component_name",
"node": "Host",
@@ -1029,7 +1029,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "qps (physical)",
"queryType": "randomWalk",
@@ -1126,7 +1126,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "connections",
"queryType": "randomWalk",
@@ -1139,7 +1139,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})",
"hide": false,
"interval": "",
"legendFormat": "threads",
@@ -1236,7 +1236,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "buffer pool size",
"queryType": "randomWalk",
@@ -1333,7 +1333,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}) by (xstore_name)",
+ "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}) by (xstore_name)",
"interval": "",
"legendFormat": "{{ xstore_name }}",
"queryType": "randomWalk",
@@ -1431,7 +1431,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "dirty",
"queryType": "randomWalk",
@@ -1444,7 +1444,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[10m]))",
+ "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[10m]))",
"hide": false,
"interval": "",
"legendFormat": "flush",
@@ -1542,7 +1542,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "current wait",
"queryType": "randomWalk",
@@ -1639,7 +1639,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "reads",
"queryType": "randomWalk",
@@ -1652,7 +1652,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "writes",
@@ -1750,7 +1750,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "log writes",
"queryType": "randomWalk",
@@ -1763,7 +1763,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "data reads",
@@ -1776,7 +1776,7 @@
"uid": "${datasource}"
},
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "data fsyncs",
@@ -1788,7 +1788,7 @@
"uid": "${datasource}"
},
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "log fsyncs",
@@ -1884,7 +1884,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "data written/s",
"queryType": "randomWalk",
@@ -1897,7 +1897,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "data read/s",
@@ -1910,7 +1910,7 @@
"uid": "${datasource}"
},
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "log writtern/s",
@@ -2006,7 +2006,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "received/s",
"queryType": "randomWalk",
@@ -2019,7 +2019,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"gms\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=\"gms\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "sent/s",
@@ -3084,7 +3084,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_queries{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "qps (physical)",
"queryType": "randomWalk",
@@ -3180,7 +3180,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_threads_connected{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "connections",
"queryType": "randomWalk",
@@ -3193,7 +3193,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_threads_running{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})",
"hide": false,
"interval": "",
"legendFormat": "threads",
@@ -3289,7 +3289,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "buffer pool size",
"queryType": "randomWalk",
@@ -3385,7 +3385,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}) by (xstore_name)",
+ "expr": "sum(mysql_global_status_innodb_buffer_pool_bytes_data{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}) by (xstore_name)",
"interval": "",
"legendFormat": "{{ xstore_name }}",
"queryType": "randomWalk",
@@ -3482,7 +3482,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_buffer_pool_dirty_pages{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "dirty",
"queryType": "randomWalk",
@@ -3495,7 +3495,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[10m]))",
+ "expr": "sum(rate(mysql_global_status_buffer_pool_page_changes_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[10m]))",
"hide": false,
"interval": "",
"legendFormat": "flush",
@@ -3592,7 +3592,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"})",
+ "expr": "sum(mysql_global_status_innodb_row_lock_current_waits{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"})",
"interval": "",
"legendFormat": "current wait",
"queryType": "randomWalk",
@@ -3688,7 +3688,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_read_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "reads",
"queryType": "randomWalk",
@@ -3701,7 +3701,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_buffer_pool_write_requests{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "writes",
@@ -3798,7 +3798,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_log_writes{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "log writes",
"queryType": "randomWalk",
@@ -3811,7 +3811,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_reads{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "data reads",
@@ -3824,7 +3824,7 @@
"uid": "${datasource}"
},
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "data fsyncs",
@@ -3836,7 +3836,7 @@
"uid": "${datasource}"
},
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_os_log_fsyncs{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "log fsyncs",
@@ -3932,7 +3932,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_written{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "data written/s",
"queryType": "randomWalk",
@@ -3945,7 +3945,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_data_read{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "data read/s",
@@ -3958,7 +3958,7 @@
"uid": "${datasource}"
},
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", polardbx_role=\"dn\", xstore_role=\"leader\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_innodb_os_log_written{polardbx_name=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", kubeblocks_io_role=\"leader\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "log writtern/s",
@@ -4054,7 +4054,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_bytes_received{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"interval": "",
"legendFormat": "received/s",
"queryType": "randomWalk",
@@ -4067,7 +4067,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\"}[1m]))",
+ "expr": "sum(rate(mysql_global_status_bytes_sent{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\"}[1m]))",
"hide": false,
"interval": "",
"legendFormat": "sent/s",
@@ -4164,7 +4164,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_commands_total{polapp_kubernetes_io_instanceardbx_name=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\", command=~\"xa_.*\"}[1m])) by (command)",
+ "expr": "sum(rate(mysql_global_status_commands_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\", command=~\"xa_.*\"}[1m])) by (command)",
"interval": "",
"legendFormat": "{{ command }}",
"queryType": "randomWalk",
@@ -4261,7 +4261,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "sum(rate(mysql_global_status_commands_total{app_kubernetes_io_instance=\"$polardbx\", app_kubernetes_io_component=\"dn\", namespace=\"$namespace\", command=~\"begin|commit|rollback\"}[1m])) by (command)",
+ "expr": "sum(rate(mysql_global_status_commands_total{app_kubernetes_io_instance=\"$polardbx\", apps_kubeblocks_io_component_name=~\"dn-.*\", namespace=\"$namespace\", command=~\"begin|commit|rollback\"}[1m])) by (command)",
"interval": "",
"legendFormat": "{{ command }}",
"queryType": "randomWalk",
@@ -4387,7 +4387,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "polardbx_cdc_dumper_delay_in_millisecond{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"cdc\"}",
+ "expr": "polardbx_cdc_dumper_delay_in_millisecond{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=\"cdc\"}",
"interval": "",
"legendFormat": "{{ pod }}",
"queryType": "randomWalk",
@@ -4487,7 +4487,7 @@
},
"editorMode": "code",
"exemplar": true,
- "expr": "polardbx_cdc_dumper_jvm_heap_usage{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", app_kubernetes_io_component=\"cdc\"}",
+ "expr": "polardbx_cdc_dumper_jvm_heap_usage{namespace=\"$namespace\"}\n* on(namespace,pod)\ngroup_left() polardbx_cdc_up{app_kubernetes_io_instance=\"$polardbx\", namespace=\"$namespace\", apps_kubeblocks_io_component_name=\"cdc\"}",
"interval": "",
"legendFormat": "{{ pod }}",
"queryType": "randomWalk",
diff --git a/addons/polardbx/scripts/metadb-setup.tpl b/addons/polardbx/scripts/metadb-setup.tpl
index 9f72c7f2e..dee829aba 100644
--- a/addons/polardbx/scripts/metadb-setup.tpl
+++ b/addons/polardbx/scripts/metadb-setup.tpl
@@ -6,7 +6,8 @@ until mysql -h$GMS_SVC_NAME -P$GMS_SVC_PORT -u$metaDbUser -p$metaDbNonEncPasswd
done
function generate_dn_init_sql() {
- echo "$DN_HEADLESS_SVC_NAME" | tr ',' '\n' | while IFS= read -r item
+ echo $DN_POD_FQDN_LIST
+ echo "$DN_POD_FQDN_LIST" | tr ',' '\n' | while IFS= read -r item
do
DN_HOSTNAME=$item
DN_NAME=$(echo "$DN_HOSTNAME" | cut -d'.' -f2 | sed s/-headless//)
diff --git a/addons/polardbx/templates/cmpd-cdc.yaml b/addons/polardbx/templates/cmpd-cdc.yaml
index 7bc955598..988645c6a 100644
--- a/addons/polardbx/templates/cmpd-cdc.yaml
+++ b/addons/polardbx/templates/cmpd-cdc.yaml
@@ -124,7 +124,7 @@ spec:
- name: metaDbNonEncPasswd
value: $(SERVICE_PASSWORD)
- name: dnPasswordKey
- value: "$(metaDbNonEncPasswd)$(metaDbNonEncPasswd)"
+ value: "$(metaDbNonEncPasswd)"
- name: cpu_cores
valueFrom:
resourceFieldRef:
diff --git a/addons/polardbx/templates/cmpd-cn.yaml b/addons/polardbx/templates/cmpd-cn.yaml
index 684a358cb..f33206077 100644
--- a/addons/polardbx/templates/cmpd-cn.yaml
+++ b/addons/polardbx/templates/cmpd-cn.yaml
@@ -59,13 +59,12 @@ spec:
port:
name: mysql
option: Required
- - name: DN_HEADLESS_SVC_NAME
+ - name: DN_POD_FQDN_LIST
valueFrom:
- serviceVarRef:
+ componentVarRef:
compDef: polardbx-dn
optional: false
- name: headless
- host: Required
+ podFQDNs: Required
- name: DN_SVC_PORT
valueFrom:
serviceVarRef:
@@ -94,7 +93,7 @@ spec:
- name: metaDbNonEncPasswd
value: $(SERVICE_PASSWORD)
- name: dnPasswordKey
- value: "$(metaDbNonEncPasswd)$(metaDbNonEncPasswd)"
+ value: "$(metaDbNonEncPasswd)"
- name: switchCloud
value: aliyun
- name: metaDbConn
@@ -150,7 +149,7 @@ spec:
- name: metaDbConn
value: "mysql -h$(GMS_SVC_NAME) -P3306 -u$(metaDbUser) -p$(metaDbPasswd) -D$(metaDbName)"
- name: dnPasswordKey
- value: "$(metaDbNonEncPasswd)$(metaDbNonEncPasswd)"
+ value: "$(metaDbNonEncPasswd)"
- name: metaDbXprotoPort
value: "0"
- name: storageDbXprotoPort
diff --git a/addons/polardbx/templates/cmpd-dn.yaml b/addons/polardbx/templates/cmpd-dn.yaml
index 002ca5ffe..405376fca 100644
--- a/addons/polardbx/templates/cmpd-dn.yaml
+++ b/addons/polardbx/templates/cmpd-dn.yaml
@@ -81,7 +81,8 @@ spec:
- sh
- -c
- |
- mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | xargs echo -n
+ role=$(mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | tr '[:upper:]' '[:lower:]' | xargs echo -n)
+ echo -n "$role"
timeoutSeconds: {{ .Values.roleProbe.timeoutSeconds }}
periodSeconds: {{ .Values.roleProbe.periodSeconds }}
failureThreshold: {{ .Values.roleProbe.failureThreshold }}
diff --git a/addons/polardbx/templates/cmpd-gms.yaml b/addons/polardbx/templates/cmpd-gms.yaml
index c96d8369b..0a793c46f 100644
--- a/addons/polardbx/templates/cmpd-gms.yaml
+++ b/addons/polardbx/templates/cmpd-gms.yaml
@@ -31,8 +31,8 @@ spec:
- name: polardbx_root
initAccount: true
passwordGenerationPolicy:
- length: 10
- numDigits: 5
+ length: 16
+ numDigits: 0
numSymbols: 0
letterCase: MixedCases
updateStrategy: Serial
@@ -77,7 +77,8 @@ spec:
- sh
- -c
- |
- mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | xargs echo -n
+ role=$(mysql -h127.0.0.1 -P3306 -uroot -N -B -e "select role from information_schema.alisql_cluster_local" | tr '[:upper:]' '[:lower:]' | xargs echo -n)
+ echo -n "$role"
timeoutSeconds: {{ .Values.roleProbe.timeoutSeconds }}
periodSeconds: {{ .Values.roleProbe.periodSeconds }}
failureThreshold: {{ .Values.roleProbe.failureThreshold }}
diff --git a/examples/polardbx/README.md b/examples/polardbx/README.md
index 7089be360..e3bdc48b4 100644
--- a/examples/polardbx/README.md
+++ b/examples/polardbx/README.md
@@ -8,7 +8,7 @@ PolarDB-X is a cloud native distributed SQL Database designed for high concurren
| Horizontal
scaling | Vertical
scaling | Expand
volume | Restart | Stop/Start | Configure | Expose | Switchover |
|------------------------|-----------------------|-------------------|-----------|------------|-----------|--------|------------|
-| Yes (cn) | Yes | Yes | Yes | Yes | No | Yes | No |
+| Yes (cn, cdc) | Yes | Yes | Yes | Yes | No | Yes | No |
### Versions
@@ -28,7 +28,19 @@ PolarDB-X is a cloud native distributed SQL Database designed for high concurren
### [Create](cluster.yaml)
-Create a polardbx cluster
+> [!IMPORTANT]
+> Make sure the `clusterName` and `namespace` are short such that the length of following string is less than 64 characters
+>
+> - ``-gms-``.``-gms-headless.``.svc.cluster.local:11306
+>
+> This is a constraint of the PolarDB-X database. The column `IP_PORT` defined in table `information_schema.ALISQL_CLUSTER_GLOBAL` is of type `VARCHAR(64)`.
+> You may login to the database and run the following SQL to check the definition of the table:
+>
+> ```sql
+> show create table information_schema.ALISQL_CLUSTER_GLOBAL;
+> ```
+
+Create a polardbx cluster with four components: cn, dn, cdc, and gms.
```bash
kubectl apply -f examples/polardbx/cluster.yaml
@@ -40,11 +52,25 @@ As PolarDB-X is a distributed database with multiple components. You may prefer
kubectl apply -f examples/polardbx/cluster-with-schedule-policy.yaml
```
+To connect to the database, you can use the following command to get the connection information:
+
+```bash
+kubectl port-forward svc/pxc-cn 3306:3306
+mysql -h127.0.0.1 -u$USER_NAME -p$PASSWORD
+```
+
+Credentials can be found in the secret `pxc-gms-account-polardbx-root` in the namespace where the cluster is deployed.
+
+```bash
+kubectl get secret pxc-gms-account-polardbx-root -o jsonpath="{.data.password}" | base64 --decode
+kubectl get secret pxc-gms-account-polardbx-root -o jsonpath="{.data.username}" | base64 --decode
+```
+
### Horizontal scaling
#### [Scale-out](scale-out.yaml)
-Horizontal scaling out polardbx cluster by adding ONE more cn replica:
+Horizontal scaling out polardbx cluster by adding ONE more `cn` replica:
```bash
kubectl apply -f examples/polardbx/scale-out.yaml
@@ -52,12 +78,23 @@ kubectl apply -f examples/polardbx/scale-out.yaml
#### [Scale-in](scale-in.yaml)
-Horizontal scaling in polardbx cluster by deleting ONE cn replica:
+Horizontal scaling in polardbx cluster by deleting ONE `cn` replica:
```bash
kubectl apply -f examples/polardbx/scale-in.yaml
```
+### [Vertical scaling](verticalscale.yaml)
+
+Vertical scaling involves increasing or decreasing resources to an existing database cluster.
+Resources that can be scaled include:, CPU cores/processing power and Memory (RAM).
+
+To vertical scaling up or down specified component, you can apply the following yaml file:
+
+```bash
+kubectl apply -f examples/polardbx/verticalscale.yaml
+```
+
### [Expand volume](volumeexpand.yaml)
Volume expansion is the ability to increase the size of a Persistent Volume Claim (PVC) after it's created. It is introduced in Kubernetes v1.11 and goes GA in Kubernetes v1.24. It allows Kubernetes users to simply edit their PersistentVolumeClaim objects without requiring any downtime at all if possible.
@@ -103,12 +140,33 @@ Start the stopped cluster
kubectl apply -f examples/polardbx/start.yaml
```
+### Observability
+
+There are various ways to monitor the cluster. Here we use Prometheus and Grafana to demonstrate how to monitor the cluster.
+
+#### Installing the Prometheus Operator
+
+You may skip this step if you have already installed the Prometheus Operator.
+Or you can follow the steps in [How to install the Prometheus Operator](../docs/install-prometheus.md) to install the Prometheus Operator.
+
+#### Create PodMonitor
+
+Apply the `PodMonitor` file to monitor the cluster:
+
+```bash
+kubectl apply -f examples/polardbx/pod-monitor.yaml
+```
+
+##### Access the Grafana Dashboard
+
+Login to the Grafana dashboard and import the dashboard [PolarDB-X Dashboard Overview](https://github.com/apecloud/kubeblocks-addons/blob/main/addons/polardbx/dashboards/polardbx-overview.json) to monitor the cluster.
+
### Delete
If you want to delete the cluster and all its resource, you can modify the termination policy and then delete the cluster
```bash
-kubectl patch cluster polardbx-cluster -p '{"spec":{"terminationPolicy":"WipeOut"}}' --type="merge"
+kubectl patch cluster pxc -p '{"spec":{"terminationPolicy":"WipeOut"}}' --type="merge"
-kubectl delete cluster polardbx-cluster
+kubectl delete cluster pxc
```
diff --git a/examples/polardbx/cluster-with-schedule-policy.yaml b/examples/polardbx/cluster-with-schedule-policy.yaml
index e06de0378..259aa0c00 100644
--- a/examples/polardbx/cluster-with-schedule-policy.yaml
+++ b/examples/polardbx/cluster-with-schedule-policy.yaml
@@ -1,7 +1,7 @@
apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
- name: polardbx-cluster-with-sp
+ name: pxc
namespace: default
spec:
# Specifies the behavior when a Cluster is deleted.
@@ -24,14 +24,14 @@ spec:
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/instance: polardbx-cluster
+ app.kubernetes.io/instance: pxc
apps.kubeblocks.io/component-name: gms
topologyKey: kubernetes.io/hostname
weight: 100
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
- app.kubernetes.io/instance: polardbx-cluster
+ app.kubernetes.io/instance: pxc
apps.kubeblocks.io/component-name: gms
topologyKey: kubernetes.io/hostname
replicas: 1
@@ -71,7 +71,7 @@ spec:
- name: cn
componentDef: polardbx-cn
# this ia an simple example of schedulingPolicy
- # pods cannot be scheduled to the node with any POD from the same cluster `polardbx-cluster`
+ # pods cannot be scheduled to the node with any POD from the same cluster `pxc`
schedulingPolicy:
affinity:
podAntiAffinity:
@@ -79,13 +79,13 @@ spec:
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/instance: polardbx-cluster
+ app.kubernetes.io/instance: pxc
topologyKey: kubernetes.io/hostname
weight: 100
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
- app.kubernetes.io/instance: polardbx-cluster
+ app.kubernetes.io/instance: pxc
topologyKey: kubernetes.io/hostname
replicas: 1
resources:
@@ -106,14 +106,14 @@ spec:
- podAffinityTerm:
labelSelector:
matchLabels:
- app.kubernetes.io/instance: polardbx-cluster
+ app.kubernetes.io/instance: pxc
apps.kubeblocks.io/component-name: dn
topologyKey: kubernetes.io/hostname
weight: 100
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
- app.kubernetes.io/instance: polardbx-cluster
+ app.kubernetes.io/instance: pxc
apps.kubeblocks.io/component-name: dn
topologyKey: kubernetes.io/hostname
replicas: 1
diff --git a/examples/polardbx/cluster.yaml b/examples/polardbx/cluster.yaml
index 6f070cef5..75e0e28e7 100644
--- a/examples/polardbx/cluster.yaml
+++ b/examples/polardbx/cluster.yaml
@@ -1,79 +1,63 @@
apiVersion: apps.kubeblocks.io/v1
kind: Cluster
metadata:
- name: polardbx-cluster
+ name: pxc
namespace: default
spec:
- # Specifies the behavior when a Cluster is deleted.
- # - `DoNotTerminate`: Prevents deletion of the Cluster. This policy ensures that all resources remain intact.
- # - `Delete`: Extends the `Halt` policy by also removing PVCs, leading to a thorough cleanup while removing all persistent data.
- # - `WipeOut`: An aggressive policy that deletes all Cluster resources, including volume snapshots and backups in external storage. This results in complete data removal and should be used cautiously, primarily in non-production environments to avoid irreversible data loss.
terminationPolicy: Delete
- # Specifies a list of ClusterComponentSpec objects used to define the individual components that make up a Cluster. This field allows for detailed configuration of each component within the Cluster.
- # Note: `shardingSpecs` and `componentSpecs` cannot both be empty; at least one must be defined to configure a cluster.
- # ClusterComponentSpec defines the specifications for a Component in a Cluster.
componentSpecs:
- name: gms
componentDef: polardbx-gms
replicas: 1
resources:
limits:
- cpu: "0.5"
- memory: 1Gi
+ cpu: "1"
+ memory: "1Gi"
requests:
- cpu: "0.5"
- memory: 1Gi
+ cpu: "1"
+ memory: "1Gi"
volumeClaimTemplates:
- name: data
spec:
+ storageClassName: ""
accessModes:
- ReadWriteOnce
- # The name of the StorageClass required by the claim.
- # If not specified, the StorageClass annotated with
- # `storageclass.kubernetes.io/is-default-class=true` will be used by default
- storageClassName: ""
resources:
requests:
storage: 20Gi
- - name: dn
+ - name: dn-0
componentDef: polardbx-dn
replicas: 1
resources:
limits:
- cpu: "0.5"
- memory: 1Gi
+ cpu: "1"
+ memory: "1Gi"
requests:
- cpu: "0.5"
- memory: 1Gi
+ cpu: "1"
+ memory: "1Gi"
volumeClaimTemplates:
- name: data
spec:
+ storageClassName: ""
accessModes:
- ReadWriteOnce
- # The name of the StorageClass required by the claim.
- # If not specified, the StorageClass annotated with
- # `storageclass.kubernetes.io/is-default-class=true` will be used by default
- storageClassName: ""
resources:
requests:
storage: 20Gi
- name: cn
componentDef: polardbx-cn
- replicas: 1
+ replicas: 2
resources:
limits:
- cpu: "0.5"
- memory: 1Gi
+ cpu: "1"
+ memory: "1Gi"
requests:
- cpu: "0.5"
- memory: 1Gi
+ cpu: "1"
+ memory: "1Gi"
- name: cdc
componentDef: polardbx-cdc
replicas: 1
resources:
limits:
- cpu: "0.5"
- memory: 1Gi
- requests:
- cpu: "0.5"
- memory: 1Gi
+ cpu: "1"
+ memory: "1Gi"
\ No newline at end of file
diff --git a/examples/polardbx/pod-monitor.yaml b/examples/polardbx/pod-monitor.yaml
new file mode 100644
index 000000000..a0c2c054e
--- /dev/null
+++ b/examples/polardbx/pod-monitor.yaml
@@ -0,0 +1,29 @@
+
+apiVersion: monitoring.coreos.com/v1
+kind: PodMonitor
+metadata:
+ name: pxc-pod-monitor
+ namespace: monitoring # Note: this is namespace for prometheus operator
+ labels: # this is labels set in `prometheus.spec.podMonitorSelector`
+ release: prometheus
+spec:
+ jobLabel: app.kubernetes.io/managed-by
+ # defines the labels which are transferred from the
+ # associated Kubernetes `Pod` object onto the ingested metrics
+ # set the lables w.r.t you own needs
+ podTargetLabels:
+ - app.kubernetes.io/instance
+ - app.kubernetes.io/managed-by
+ - apps.kubeblocks.io/component-name
+ - apps.kubeblocks.io/pod-name
+ - kubeblocks.io/role
+ podMetricsEndpoints:
+ - path: /metrics
+ port: metrics
+ scheme: http
+ namespaceSelector:
+ matchNames:
+ - default
+ selector:
+ matchLabels:
+ app.kubernetes.io/instance: pxc
\ No newline at end of file
diff --git a/examples/polardbx/restart.yaml b/examples/polardbx/restart.yaml
index 36e345164..c2a131ad3 100644
--- a/examples/polardbx/restart.yaml
+++ b/examples/polardbx/restart.yaml
@@ -5,7 +5,7 @@ metadata:
namespace: default
spec:
# Specifies the name of the Cluster resource that this operation is targeting.
- clusterName: polardbx-cluster
+ clusterName: pxc
type: Restart
# Lists Components to be restarted. ComponentOps specifies the Component to be operated on.
restart:
diff --git a/examples/polardbx/scale-in.yaml b/examples/polardbx/scale-in.yaml
index cd79276c1..09f7e275f 100644
--- a/examples/polardbx/scale-in.yaml
+++ b/examples/polardbx/scale-in.yaml
@@ -5,7 +5,7 @@ metadata:
namespace: default
spec:
# Specifies the name of the Cluster resource that this operation is targeting.
- clusterName: polardbx-cluster
+ clusterName: pxc
type: HorizontalScaling
# Lists HorizontalScaling objects, each specifying scaling requirements for a Component, including desired total replica counts, configurations for new instances, modifications for existing instances, and instance downscaling options
horizontalScaling:
diff --git a/examples/polardbx/scale-out.yaml b/examples/polardbx/scale-out.yaml
index fb61180a5..86d17399e 100644
--- a/examples/polardbx/scale-out.yaml
+++ b/examples/polardbx/scale-out.yaml
@@ -5,7 +5,7 @@ metadata:
namespace: default
spec:
# Specifies the name of the Cluster resource that this operation is targeting.
- clusterName: polardbx-cluster
+ clusterName: pxc
type: HorizontalScaling
# Lists HorizontalScaling objects, each specifying scaling requirements for a Component, including desired total replica counts, configurations for new instances, modifications for existing instances, and instance downscaling options
horizontalScaling:
diff --git a/examples/polardbx/start.yaml b/examples/polardbx/start.yaml
index 92ee1cabf..029d6fefb 100644
--- a/examples/polardbx/start.yaml
+++ b/examples/polardbx/start.yaml
@@ -5,5 +5,5 @@ metadata:
namespace: default
spec:
# Specifies the name of the Cluster resource that this operation is targeting.
- clusterName: polardbx-cluster
+ clusterName: pxc
type: Start
diff --git a/examples/polardbx/stop.yaml b/examples/polardbx/stop.yaml
index 5d4f9dd21..37ecec821 100644
--- a/examples/polardbx/stop.yaml
+++ b/examples/polardbx/stop.yaml
@@ -5,5 +5,5 @@ metadata:
namespace: default
spec:
# Specifies the name of the Cluster resource that this operation is targeting.
- clusterName: polardbx-cluster
+ clusterName: pxc
type: Stop
diff --git a/examples/polardbx/verticalscale.yaml b/examples/polardbx/verticalscale.yaml
index c4e091244..316f7c61b 100644
--- a/examples/polardbx/verticalscale.yaml
+++ b/examples/polardbx/verticalscale.yaml
@@ -5,7 +5,7 @@ metadata:
namespace: default
spec:
# Specifies the name of the Cluster resource that this operation is targeting.
- clusterName: polardbx-cluster
+ clusterName: pxc
type: VerticalScaling
# Lists VerticalScaling objects, each specifying a component and its desired compute resources for vertical scaling.
verticalScaling:
diff --git a/examples/polardbx/volumeexpand.yaml b/examples/polardbx/volumeexpand.yaml
index 630c41dab..4825c439a 100644
--- a/examples/polardbx/volumeexpand.yaml
+++ b/examples/polardbx/volumeexpand.yaml
@@ -5,7 +5,7 @@ metadata:
namespace: default
spec:
# Specifies the name of the Cluster resource that this operation is targeting.
- clusterName: polardbx-cluster
+ clusterName: pxc
type: VolumeExpansion
# Lists VolumeExpansion objects, each specifying a component and its corresponding volumeClaimTemplates that requires storage expansion.
volumeExpansion: