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 }}