github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/apecloud-mysql/templates/_helpers.tpl (about) 1 {{/* 2 Expand the name of the chart. 3 */}} 4 {{- define "apecloud-mysql.name" -}} 5 {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} 6 {{- end }} 7 8 {{/* 9 Create a default fully qualified app name. 10 We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). 11 If release name contains chart name it will be used as a full name. 12 */}} 13 {{- define "apecloud-mysql.fullname" -}} 14 {{- if .Values.fullnameOverride }} 15 {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} 16 {{- else }} 17 {{- $name := default .Chart.Name .Values.nameOverride }} 18 {{- if contains $name .Release.Name }} 19 {{- .Release.Name | trunc 63 | trimSuffix "-" }} 20 {{- else }} 21 {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} 22 {{- end }} 23 {{- end }} 24 {{- end }} 25 26 {{/* 27 Create chart name and version as used by the chart label. 28 */}} 29 {{- define "apecloud-mysql.chart" -}} 30 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 31 {{- end }} 32 33 {{/* 34 Common labels 35 */}} 36 {{- define "apecloud-mysql.labels" -}} 37 helm.sh/chart: {{ include "apecloud-mysql.chart" . }} 38 {{ include "apecloud-mysql.selectorLabels" . }} 39 {{- if .Chart.AppVersion }} 40 app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 41 {{- end }} 42 app.kubernetes.io/managed-by: {{ .Release.Service }} 43 {{- end }} 44 45 {{/* 46 Selector labels 47 */}} 48 {{- define "apecloud-mysql.selectorLabels" -}} 49 app.kubernetes.io/name: {{ include "apecloud-mysql.name" . }} 50 app.kubernetes.io/instance: {{ .Release.Name }} 51 {{- end }} 52 53 {{/* 54 Create the name of the service account to use 55 */}} 56 {{- define "apecloud-mysql.serviceAccountName" -}} 57 {{- if .Values.serviceAccount.create }} 58 {{- default (include "apecloud-mysql.fullname" .) .Values.serviceAccount.name }} 59 {{- else }} 60 {{- default "default" .Values.serviceAccount.name }} 61 {{- end }} 62 {{- end }} 63 64 {{/* 65 Agamotto config 66 */}} 67 {{- define "agamotto.config" -}} 68 extensions: 69 memory_ballast: 70 size_mib: 32 71 72 receivers: 73 apecloudmysql: 74 endpoint: ${env:ENDPOINT} 75 username: ${env:MYSQL_USER} 76 password: ${env:MYSQL_PASSWORD} 77 allow_native_passwords: true 78 database: 79 collection_interval: 15s 80 transport: tcp 81 {{- if .Values.logCollector.enabled }} 82 filelog/error: 83 include: [/data/mysql/log/mysqld-error.log] 84 include_file_name: false 85 start_at: beginning 86 filelog/slow: 87 include: [/data/mysql/log/mysqld-slowquery.log] 88 include_file_name: false 89 start_at: beginning 90 {{- end }} 91 92 processors: 93 memory_limiter: 94 limit_mib: 128 95 spike_limit_mib: 32 96 check_interval: 10s 97 98 exporters: 99 prometheus: 100 endpoint: 0.0.0.0:{{ .Values.metrics.service.port }} 101 send_timestamps: false 102 metric_expiration: 20s 103 enable_open_metrics: false 104 resource_to_telemetry_conversion: 105 enabled: true 106 {{- if .Values.logCollector.enabled }} 107 apecloudfile/error: 108 path: /var/log/kubeblocks/${env:KB_NAMESPACE}_${env:DB_TYPE}_${env:KB_CLUSTER_NAME}/${env:KB_POD_NAME}/error.log 109 format: raw 110 rotation: 111 max_megabytes: 10 112 max_days: 3 113 max_backups: 1 114 localtime: true 115 apecloudfile/slow: 116 path: /var/log/kubeblocks/${env:KB_NAMESPACE}_${env:DB_TYPE}_${env:KB_CLUSTER_NAME}/${env:KB_POD_NAME}/slow.log 117 format: raw 118 rotation: 119 max_megabytes: 10 120 max_days: 3 121 max_backups: 1 122 localtime: true 123 {{- end }} 124 125 service: 126 telemetry: 127 logs: 128 level: info 129 extensions: [ memory_ballast ] 130 pipelines: 131 metrics: 132 receivers: [ apecloudmysql ] 133 processors: [ memory_limiter ] 134 exporters: [ prometheus ] 135 {{- if .Values.logCollector.enabled }} 136 logs/error: 137 receivers: [filelog/error] 138 exporters: [apecloudfile/error] 139 logs/slow: 140 receivers: [filelog/slow] 141 exporters: [apecloudfile/slow] 142 {{- end }} 143 {{- end }} 144 145 {{/* 146 Agamotto config for proxy 147 */}} 148 {{- define "proxy-monitor.config" -}} 149 receivers: 150 prometheus: 151 config: 152 scrape_configs: 153 - job_name: 'agamotto' 154 scrape_interval: 15s 155 static_configs: 156 - targets: ['127.0.0.1:15100'] 157 service: 158 pipelines: 159 metrics: 160 receivers: [ apecloudmysql, prometheus ] 161 {{- end }} 162 163 164 {{/* 165 Generate scripts configmap 166 */}} 167 {{- define "apecloud-mysql.extend.scripts" -}} 168 {{- range $path, $_ := $.Files.Glob "scripts/**" }} 169 {{ $path | base }}: |- 170 {{- $.Files.Get $path | nindent 2 }} 171 {{- end }} 172 {{- end }} 173 174 {{/* 175 Backup Tool image 176 */}} 177 {{- define "apecloud-mysql.bakcupToolImage" -}} 178 {{ .Values.backupTool.image.registry }}/{{ .Values.backupTool.image.repository}}:{{ .Values.backupTool.image.tag }} 179 {{- end }}