values.yaml 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245
  1. ## @section Global parameters
  2. ## Global Docker image parameters
  3. ## Please, note that this will override the image parameters, including dependencies, configured to use the global value
  4. ## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
  5. ##
  6. ## @param global.imageRegistry Global Docker image registry
  7. ## @param global.imagePullSecrets Global Docker registry secret names as an array
  8. ## @param global.storageClass Global StorageClass for Persistent Volume(s)
  9. ##
  10. global:
  11. imageRegistry: ""
  12. ## E.g.
  13. ## imagePullSecrets:
  14. ## - myRegistryKeySecretName
  15. ##
  16. imagePullSecrets: []
  17. storageClass: ""
  18. ## @section Common parameters
  19. ##
  20. ## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
  21. ##
  22. kubeVersion: ""
  23. ## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
  24. ##
  25. nameOverride: ""
  26. ## @param fullnameOverride String to fully override common.names.fullname template
  27. ##
  28. fullnameOverride: ""
  29. ## @param namespaceOverride String to fully override common.names.namespace
  30. ##
  31. namespaceOverride: ""
  32. ## @param clusterDomain Cluster domain
  33. ##
  34. clusterDomain: cluster.local
  35. ## @param commonAnnotations Common annotations to add to all MySQL resources (sub-charts are not considered). Evaluated as a template
  36. ##
  37. commonAnnotations: {}
  38. ## @param commonLabels Common labels to add to all MySQL resources (sub-charts are not considered). Evaluated as a template
  39. ##
  40. commonLabels: {}
  41. ## @param extraDeploy Array with extra yaml to deploy with the chart. Evaluated as a template
  42. ##
  43. extraDeploy: []
  44. ## @param serviceBindings.enabled Create secret for service binding (Experimental)
  45. ## Ref: https://servicebinding.io/service-provider/
  46. ##
  47. serviceBindings:
  48. enabled: false
  49. ## Enable diagnostic mode in the deployment
  50. ##
  51. diagnosticMode:
  52. ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
  53. ##
  54. enabled: false
  55. ## @param diagnosticMode.command Command to override all containers in the deployment
  56. ##
  57. command:
  58. - sleep
  59. ## @param diagnosticMode.args Args to override all containers in the deployment
  60. ##
  61. args:
  62. - infinity
  63. ## @section MySQL common parameters
  64. ##
  65. ## Bitnami MySQL image
  66. ## ref: https://hub.docker.com/r/bitnami/mysql/tags/
  67. ## @param image.registry MySQL image registry
  68. ## @param image.repository MySQL image repository
  69. ## @param image.tag MySQL image tag (immutable tags are recommended)
  70. ## @param image.digest MySQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  71. ## @param image.pullPolicy MySQL image pull policy
  72. ## @param image.pullSecrets Specify docker-registry secret names as an array
  73. ## @param image.debug Specify if debug logs should be enabled
  74. ##
  75. image:
  76. registry: docker.io
  77. repository: bitnami/mysql
  78. tag: 8.0.32-debian-11-r21
  79. digest: ""
  80. ## Specify a imagePullPolicy
  81. ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
  82. ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
  83. ##
  84. pullPolicy: IfNotPresent
  85. ## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
  86. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  87. ## Example:
  88. ## pullSecrets:
  89. ## - myRegistryKeySecretName
  90. ##
  91. pullSecrets: []
  92. ## Set to true if you would like to see extra information on logs
  93. ## It turns BASH and/or NAMI debugging in the image
  94. ##
  95. debug: false
  96. ## @param architecture MySQL architecture (`standalone` or `replication`)
  97. ##
  98. architecture: standalone
  99. ## MySQL Authentication parameters
  100. ##
  101. auth:
  102. ## @param auth.rootPassword Password for the `root` user. Ignored if existing secret is provided
  103. ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#setting-the-root-password-on-first-run
  104. ##
  105. rootPassword: ""
  106. ## @param auth.createDatabase Whether to create the .Values.auth.database or not
  107. ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#creating-a-database-on-first-run
  108. ##
  109. createDatabase: true
  110. ## @param auth.database Name for a custom database to create
  111. ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#creating-a-database-on-first-run
  112. ##
  113. database: "my_database"
  114. ## @param auth.username Name for a custom user to create
  115. ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#creating-a-database-user-on-first-run
  116. ##
  117. username: ""
  118. ## @param auth.password Password for the new user. Ignored if existing secret is provided
  119. ##
  120. password: ""
  121. ## @param auth.replicationUser MySQL replication user
  122. ## ref: https://github.com/bitnami/containers/tree/main/bitnami/mysql#setting-up-a-replication-cluster
  123. ##
  124. replicationUser: replicator
  125. ## @param auth.replicationPassword MySQL replication user password. Ignored if existing secret is provided
  126. ##
  127. replicationPassword: ""
  128. ## @param auth.existingSecret Use existing secret for password details. The secret has to contain the keys `mysql-root-password`, `mysql-replication-password` and `mysql-password`
  129. ## NOTE: When it's set the auth.rootPassword, auth.password, auth.replicationPassword are ignored.
  130. ##
  131. existingSecret: ""
  132. ## @param auth.usePasswordFiles Mount credentials as files instead of using an environment variable
  133. ##
  134. usePasswordFiles: false
  135. ## @param auth.customPasswordFiles Use custom password files when `auth.usePasswordFiles` is set to `true`. Define path for keys `root` and `user`, also define `replicator` if `architecture` is set to `replication`
  136. ## Example:
  137. ## customPasswordFiles:
  138. ## root: /vault/secrets/mysql-root
  139. ## user: /vault/secrets/mysql-user
  140. ## replicator: /vault/secrets/mysql-replicator
  141. ##
  142. customPasswordFiles: {}
  143. ## @param initdbScripts Dictionary of initdb scripts
  144. ## Specify dictionary of scripts to be run at first boot
  145. ## Example:
  146. ## initdbScripts:
  147. ## my_init_script.sh: |
  148. ## #!/bin/bash
  149. ## echo "Do something."
  150. ##
  151. initdbScripts: {}
  152. ## @param initdbScriptsConfigMap ConfigMap with the initdb scripts (Note: Overrides `initdbScripts`)
  153. ##
  154. initdbScriptsConfigMap: ""
  155. ## @section MySQL Primary parameters
  156. ##
  157. primary:
  158. ## @param primary.name Name of the primary database (eg primary, master, leader, ...)
  159. ##
  160. name: primary
  161. ## @param primary.command Override default container command on MySQL Primary container(s) (useful when using custom images)
  162. ##
  163. command: []
  164. ## @param primary.args Override default container args on MySQL Primary container(s) (useful when using custom images)
  165. ##
  166. args: []
  167. ## @param primary.lifecycleHooks for the MySQL Primary container(s) to automate configuration before or after startup
  168. ##
  169. lifecycleHooks: {}
  170. ## @param primary.hostAliases Deployment pod host aliases
  171. ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  172. ##
  173. hostAliases: []
  174. ## @param primary.configuration [string] Configure MySQL Primary with a custom my.cnf file
  175. ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file
  176. ##
  177. configuration: |-
  178. [mysqld]
  179. default_authentication_plugin=mysql_native_password
  180. skip-name-resolve
  181. explicit_defaults_for_timestamp
  182. basedir=/opt/bitnami/mysql
  183. plugin_dir=/opt/bitnami/mysql/lib/plugin
  184. port=3306
  185. socket=/opt/bitnami/mysql/tmp/mysql.sock
  186. datadir=/bitnami/mysql/data
  187. tmpdir=/opt/bitnami/mysql/tmp
  188. max_allowed_packet=16M
  189. bind-address=*
  190. pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
  191. log-error=/opt/bitnami/mysql/logs/mysqld.log
  192. character-set-server=UTF8
  193. collation-server=utf8_general_ci
  194. slow_query_log=0
  195. slow_query_log_file=/opt/bitnami/mysql/logs/mysqld.log
  196. long_query_time=10.0
  197. [client]
  198. port=3306
  199. socket=/opt/bitnami/mysql/tmp/mysql.sock
  200. default-character-set=UTF8
  201. plugin_dir=/opt/bitnami/mysql/lib/plugin
  202. [manager]
  203. port=3306
  204. socket=/opt/bitnami/mysql/tmp/mysql.sock
  205. pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
  206. ## @param primary.existingConfigmap Name of existing ConfigMap with MySQL Primary configuration.
  207. ## NOTE: When it's set the 'configuration' parameter is ignored
  208. ##
  209. existingConfigmap: ""
  210. ## @param primary.updateStrategy.type Update strategy type for the MySQL primary statefulset
  211. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
  212. ##
  213. updateStrategy:
  214. type: RollingUpdate
  215. ## @param primary.podAnnotations Additional pod annotations for MySQL primary pods
  216. ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  217. ##
  218. podAnnotations: {}
  219. ## @param primary.podAffinityPreset MySQL primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
  220. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  221. ##
  222. podAffinityPreset: ""
  223. ## @param primary.podAntiAffinityPreset MySQL primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
  224. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  225. ##
  226. podAntiAffinityPreset: soft
  227. ## MySQL Primary node affinity preset
  228. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  229. ##
  230. nodeAffinityPreset:
  231. ## @param primary.nodeAffinityPreset.type MySQL primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
  232. ##
  233. type: ""
  234. ## @param primary.nodeAffinityPreset.key MySQL primary node label key to match Ignored if `primary.affinity` is set.
  235. ## E.g.
  236. ## key: "kubernetes.io/e2e-az-name"
  237. ##
  238. key: ""
  239. ## @param primary.nodeAffinityPreset.values MySQL primary node label values to match. Ignored if `primary.affinity` is set.
  240. ## E.g.
  241. ## values:
  242. ## - e2e-az1
  243. ## - e2e-az2
  244. ##
  245. values: []
  246. ## @param primary.affinity Affinity for MySQL primary pods assignment
  247. ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  248. ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
  249. ##
  250. affinity: {}
  251. ## @param primary.nodeSelector Node labels for MySQL primary pods assignment
  252. ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  253. ##
  254. nodeSelector: {}
  255. ## @param primary.tolerations Tolerations for MySQL primary pods assignment
  256. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  257. ##
  258. tolerations: []
  259. ## @param primary.priorityClassName MySQL primary pods' priorityClassName
  260. ##
  261. priorityClassName: ""
  262. ## @param primary.runtimeClassName MySQL primary pods' runtimeClassName
  263. ##
  264. runtimeClassName: ""
  265. ## @param primary.schedulerName Name of the k8s scheduler (other than default)
  266. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  267. ##
  268. schedulerName: ""
  269. ## @param primary.terminationGracePeriodSeconds In seconds, time the given to the MySQL primary pod needs to terminate gracefully
  270. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
  271. ##
  272. terminationGracePeriodSeconds: ""
  273. ## @param primary.topologySpreadConstraints Topology Spread Constraints for pod assignment
  274. ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  275. ## The value is evaluated as a template
  276. ##
  277. topologySpreadConstraints: []
  278. ## @param primary.podManagementPolicy podManagementPolicy to manage scaling operation of MySQL primary pods
  279. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
  280. ##
  281. podManagementPolicy: ""
  282. ## MySQL primary Pod security context
  283. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  284. ## @param primary.podSecurityContext.enabled Enable security context for MySQL primary pods
  285. ## @param primary.podSecurityContext.fsGroup Group ID for the mounted volumes' filesystem
  286. ##
  287. podSecurityContext:
  288. enabled: true
  289. fsGroup: 1001
  290. ## MySQL primary container security context
  291. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  292. ## @param primary.containerSecurityContext.enabled MySQL primary container securityContext
  293. ## @param primary.containerSecurityContext.runAsUser User ID for the MySQL primary container
  294. ## @param primary.containerSecurityContext.runAsNonRoot Set MySQL primary container's Security Context runAsNonRoot
  295. ##
  296. containerSecurityContext:
  297. enabled: true
  298. runAsUser: 1001
  299. runAsNonRoot: true
  300. ## MySQL primary container's resource requests and limits
  301. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  302. ## We usually recommend not to specify default resources and to leave this as a conscious
  303. ## choice for the user. This also increases chances charts run on environments with little
  304. ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  305. ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  306. ## @param primary.resources.limits The resources limits for MySQL primary containers
  307. ## @param primary.resources.requests The requested resources for MySQL primary containers
  308. ##
  309. resources:
  310. ## Example:
  311. ## limits:
  312. ## cpu: 250m
  313. ## memory: 256Mi
  314. ##
  315. limits: {}
  316. ## Examples:
  317. ## requests:
  318. ## cpu: 250m
  319. ## memory: 256Mi
  320. ##
  321. requests: {}
  322. ## Configure extra options for liveness probe
  323. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  324. ## @param primary.livenessProbe.enabled Enable livenessProbe
  325. ## @param primary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  326. ## @param primary.livenessProbe.periodSeconds Period seconds for livenessProbe
  327. ## @param primary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  328. ## @param primary.livenessProbe.failureThreshold Failure threshold for livenessProbe
  329. ## @param primary.livenessProbe.successThreshold Success threshold for livenessProbe
  330. ##
  331. livenessProbe:
  332. enabled: true
  333. initialDelaySeconds: 5
  334. periodSeconds: 10
  335. timeoutSeconds: 1
  336. failureThreshold: 3
  337. successThreshold: 1
  338. ## Configure extra options for readiness probe
  339. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  340. ## @param primary.readinessProbe.enabled Enable readinessProbe
  341. ## @param primary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  342. ## @param primary.readinessProbe.periodSeconds Period seconds for readinessProbe
  343. ## @param primary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  344. ## @param primary.readinessProbe.failureThreshold Failure threshold for readinessProbe
  345. ## @param primary.readinessProbe.successThreshold Success threshold for readinessProbe
  346. ##
  347. readinessProbe:
  348. enabled: true
  349. initialDelaySeconds: 5
  350. periodSeconds: 10
  351. timeoutSeconds: 1
  352. failureThreshold: 3
  353. successThreshold: 1
  354. ## Configure extra options for startupProbe probe
  355. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  356. ## @param primary.startupProbe.enabled Enable startupProbe
  357. ## @param primary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
  358. ## @param primary.startupProbe.periodSeconds Period seconds for startupProbe
  359. ## @param primary.startupProbe.timeoutSeconds Timeout seconds for startupProbe
  360. ## @param primary.startupProbe.failureThreshold Failure threshold for startupProbe
  361. ## @param primary.startupProbe.successThreshold Success threshold for startupProbe
  362. ##
  363. startupProbe:
  364. enabled: true
  365. initialDelaySeconds: 15
  366. periodSeconds: 10
  367. timeoutSeconds: 1
  368. failureThreshold: 10
  369. successThreshold: 1
  370. ## @param primary.customLivenessProbe Override default liveness probe for MySQL primary containers
  371. ##
  372. customLivenessProbe: {}
  373. ## @param primary.customReadinessProbe Override default readiness probe for MySQL primary containers
  374. ##
  375. customReadinessProbe: {}
  376. ## @param primary.customStartupProbe Override default startup probe for MySQL primary containers
  377. ##
  378. customStartupProbe: {}
  379. ## @param primary.extraFlags MySQL primary additional command line flags
  380. ## Can be used to specify command line flags, for example:
  381. ## E.g.
  382. ## extraFlags: "--max-connect-errors=1000 --max_connections=155"
  383. ##
  384. extraFlags: ""
  385. ## @param primary.extraEnvVars Extra environment variables to be set on MySQL primary containers
  386. ## E.g.
  387. ## extraEnvVars:
  388. ## - name: TZ
  389. ## value: "Europe/Paris"
  390. ##
  391. extraEnvVars: []
  392. ## @param primary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for MySQL primary containers
  393. ##
  394. extraEnvVarsCM: ""
  395. ## @param primary.extraEnvVarsSecret Name of existing Secret containing extra env vars for MySQL primary containers
  396. ##
  397. extraEnvVarsSecret: ""
  398. ## @param primary.extraPorts Extra ports to expose
  399. ##
  400. extraPorts: []
  401. ## Enable persistence using Persistent Volume Claims
  402. ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
  403. ##
  404. persistence:
  405. ## @param primary.persistence.enabled Enable persistence on MySQL primary replicas using a `PersistentVolumeClaim`. If false, use emptyDir
  406. ##
  407. enabled: true
  408. ## @param primary.persistence.existingClaim Name of an existing `PersistentVolumeClaim` for MySQL primary replicas
  409. ## NOTE: When it's set the rest of persistence parameters are ignored
  410. ##
  411. existingClaim: ""
  412. ## @param primary.persistence.subPath The name of a volume's sub path to mount for persistence
  413. ##
  414. subPath: ""
  415. ## @param primary.persistence.storageClass MySQL primary persistent volume storage Class
  416. ## If defined, storageClassName: <storageClass>
  417. ## If set to "-", storageClassName: "", which disables dynamic provisioning
  418. ## If undefined (the default) or set to null, no storageClassName spec is
  419. ## set, choosing the default provisioner. (gp2 on AWS, standard on
  420. ## GKE, AWS & OpenStack)
  421. ##
  422. storageClass: ""
  423. ## @param primary.persistence.annotations MySQL primary persistent volume claim annotations
  424. ##
  425. annotations: {}
  426. ## @param primary.persistence.accessModes MySQL primary persistent volume access Modes
  427. ##
  428. accessModes:
  429. - ReadWriteOnce
  430. ## @param primary.persistence.size MySQL primary persistent volume size
  431. ##
  432. size: 8Gi
  433. ## @param primary.persistence.selector Selector to match an existing Persistent Volume
  434. ## selector:
  435. ## matchLabels:
  436. ## app: my-app
  437. ##
  438. selector: {}
  439. ## @param primary.extraVolumes Optionally specify extra list of additional volumes to the MySQL Primary pod(s)
  440. ##
  441. extraVolumes: []
  442. ## @param primary.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the MySQL Primary container(s)
  443. ##
  444. extraVolumeMounts: []
  445. ## @param primary.initContainers Add additional init containers for the MySQL Primary pod(s)
  446. ##
  447. initContainers: []
  448. ## @param primary.sidecars Add additional sidecar containers for the MySQL Primary pod(s)
  449. ##
  450. sidecars: []
  451. ## MySQL Primary Service parameters
  452. ##
  453. service:
  454. ## @param primary.service.type MySQL Primary K8s service type
  455. ##
  456. type: ClusterIP
  457. ## @param primary.service.ports.mysql MySQL Primary K8s service port
  458. ##
  459. ports:
  460. mysql: 3306
  461. ## @param primary.service.nodePorts.mysql MySQL Primary K8s service node port
  462. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  463. ##
  464. nodePorts:
  465. mysql: ""
  466. ## @param primary.service.clusterIP MySQL Primary K8s service clusterIP IP
  467. ## e.g:
  468. ## clusterIP: None
  469. ##
  470. clusterIP: ""
  471. ## @param primary.service.loadBalancerIP MySQL Primary loadBalancerIP if service type is `LoadBalancer`
  472. ## Set the LoadBalancer service type to internal only
  473. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  474. ##
  475. loadBalancerIP: ""
  476. ## @param primary.service.externalTrafficPolicy Enable client source IP preservation
  477. ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
  478. ##
  479. externalTrafficPolicy: Cluster
  480. ## @param primary.service.loadBalancerSourceRanges Addresses that are allowed when MySQL Primary service is LoadBalancer
  481. ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  482. ## E.g.
  483. ## loadBalancerSourceRanges:
  484. ## - 10.10.10.0/24
  485. ##
  486. loadBalancerSourceRanges: []
  487. ## @param primary.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
  488. ##
  489. extraPorts: []
  490. ## @param primary.service.annotations Additional custom annotations for MySQL primary service
  491. ##
  492. annotations: {}
  493. ## @param primary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
  494. ## If "ClientIP", consecutive client requests will be directed to the same Pod
  495. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  496. ##
  497. sessionAffinity: None
  498. ## @param primary.service.sessionAffinityConfig Additional settings for the sessionAffinity
  499. ## sessionAffinityConfig:
  500. ## clientIP:
  501. ## timeoutSeconds: 300
  502. ##
  503. sessionAffinityConfig: {}
  504. ## Headless service properties
  505. ##
  506. headless:
  507. ## @param primary.service.headless.annotations Additional custom annotations for headless MySQL primary service.
  508. ##
  509. annotations: {}
  510. ## MySQL primary Pod Disruption Budget configuration
  511. ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  512. ##
  513. pdb:
  514. ## @param primary.pdb.create Enable/disable a Pod Disruption Budget creation for MySQL primary pods
  515. ##
  516. create: false
  517. ## @param primary.pdb.minAvailable Minimum number/percentage of MySQL primary pods that should remain scheduled
  518. ##
  519. minAvailable: 1
  520. ## @param primary.pdb.maxUnavailable Maximum number/percentage of MySQL primary pods that may be made unavailable
  521. ##
  522. maxUnavailable: ""
  523. ## @param primary.podLabels MySQL Primary pod label. If labels are same as commonLabels , this will take precedence
  524. ##
  525. podLabels: {}
  526. ## @section MySQL Secondary parameters
  527. ##
  528. secondary:
  529. ## @param secondary.name Name of the secondary database (eg secondary, slave, ...)
  530. ##
  531. name: secondary
  532. ## @param secondary.replicaCount Number of MySQL secondary replicas
  533. ##
  534. replicaCount: 1
  535. ## @param secondary.hostAliases Deployment pod host aliases
  536. ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
  537. ##
  538. hostAliases: []
  539. ## @param secondary.command Override default container command on MySQL Secondary container(s) (useful when using custom images)
  540. ##
  541. command: []
  542. ## @param secondary.args Override default container args on MySQL Secondary container(s) (useful when using custom images)
  543. ##
  544. args: []
  545. ## @param secondary.lifecycleHooks for the MySQL Secondary container(s) to automate configuration before or after startup
  546. ##
  547. lifecycleHooks: {}
  548. ## @param secondary.configuration [string] Configure MySQL Secondary with a custom my.cnf file
  549. ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file
  550. ##
  551. configuration: |-
  552. [mysqld]
  553. default_authentication_plugin=mysql_native_password
  554. skip-name-resolve
  555. explicit_defaults_for_timestamp
  556. basedir=/opt/bitnami/mysql
  557. plugin_dir=/opt/bitnami/mysql/lib/plugin
  558. port=3306
  559. socket=/opt/bitnami/mysql/tmp/mysql.sock
  560. datadir=/bitnami/mysql/data
  561. tmpdir=/opt/bitnami/mysql/tmp
  562. max_allowed_packet=16M
  563. bind-address=*
  564. pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
  565. log-error=/opt/bitnami/mysql/logs/mysqld.log
  566. character-set-server=UTF8
  567. collation-server=utf8_general_ci
  568. slow_query_log=0
  569. slow_query_log_file=/opt/bitnami/mysql/logs/mysqld.log
  570. long_query_time=10.0
  571. [client]
  572. port=3306
  573. socket=/opt/bitnami/mysql/tmp/mysql.sock
  574. default-character-set=UTF8
  575. plugin_dir=/opt/bitnami/mysql/lib/plugin
  576. [manager]
  577. port=3306
  578. socket=/opt/bitnami/mysql/tmp/mysql.sock
  579. pid-file=/opt/bitnami/mysql/tmp/mysqld.pid
  580. ## @param secondary.existingConfigmap Name of existing ConfigMap with MySQL Secondary configuration.
  581. ## NOTE: When it's set the 'configuration' parameter is ignored
  582. ##
  583. existingConfigmap: ""
  584. ## @param secondary.updateStrategy.type Update strategy type for the MySQL secondary statefulset
  585. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
  586. ##
  587. updateStrategy:
  588. type: RollingUpdate
  589. ## @param secondary.podAnnotations Additional pod annotations for MySQL secondary pods
  590. ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
  591. ##
  592. podAnnotations: {}
  593. ## @param secondary.podAffinityPreset MySQL secondary pod affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard`
  594. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  595. ##
  596. podAffinityPreset: ""
  597. ## @param secondary.podAntiAffinityPreset MySQL secondary pod anti-affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard`
  598. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
  599. ## Allowed values: soft, hard
  600. ##
  601. podAntiAffinityPreset: soft
  602. ## MySQL Secondary node affinity preset
  603. ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
  604. ##
  605. nodeAffinityPreset:
  606. ## @param secondary.nodeAffinityPreset.type MySQL secondary node affinity preset type. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard`
  607. ##
  608. type: ""
  609. ## @param secondary.nodeAffinityPreset.key MySQL secondary node label key to match Ignored if `secondary.affinity` is set.
  610. ## E.g.
  611. ## key: "kubernetes.io/e2e-az-name"
  612. ##
  613. key: ""
  614. ## @param secondary.nodeAffinityPreset.values MySQL secondary node label values to match. Ignored if `secondary.affinity` is set.
  615. ## E.g.
  616. ## values:
  617. ## - e2e-az1
  618. ## - e2e-az2
  619. ##
  620. values: []
  621. ## @param secondary.affinity Affinity for MySQL secondary pods assignment
  622. ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
  623. ## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
  624. ##
  625. affinity: {}
  626. ## @param secondary.nodeSelector Node labels for MySQL secondary pods assignment
  627. ## ref: https://kubernetes.io/docs/user-guide/node-selection/
  628. ##
  629. nodeSelector: {}
  630. ## @param secondary.tolerations Tolerations for MySQL secondary pods assignment
  631. ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
  632. ##
  633. tolerations: []
  634. ## @param secondary.priorityClassName MySQL secondary pods' priorityClassName
  635. ##
  636. priorityClassName: ""
  637. ## @param secondary.runtimeClassName MySQL secondary pods' runtimeClassName
  638. ##
  639. runtimeClassName: ""
  640. ## @param secondary.schedulerName Name of the k8s scheduler (other than default)
  641. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
  642. ##
  643. schedulerName: ""
  644. ## @param secondary.terminationGracePeriodSeconds In seconds, time the given to the MySQL secondary pod needs to terminate gracefully
  645. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
  646. ##
  647. terminationGracePeriodSeconds: ""
  648. ## @param secondary.topologySpreadConstraints Topology Spread Constraints for pod assignment
  649. ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
  650. ## The value is evaluated as a template
  651. ##
  652. topologySpreadConstraints: []
  653. ## @param secondary.podManagementPolicy podManagementPolicy to manage scaling operation of MySQL secondary pods
  654. ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies
  655. ##
  656. podManagementPolicy: ""
  657. ## MySQL secondary Pod security context
  658. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
  659. ## @param secondary.podSecurityContext.enabled Enable security context for MySQL secondary pods
  660. ## @param secondary.podSecurityContext.fsGroup Group ID for the mounted volumes' filesystem
  661. ##
  662. podSecurityContext:
  663. enabled: true
  664. fsGroup: 1001
  665. ## MySQL secondary container security context
  666. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  667. ## @param secondary.containerSecurityContext.enabled MySQL secondary container securityContext
  668. ## @param secondary.containerSecurityContext.runAsUser User ID for the MySQL secondary container
  669. ## @param secondary.containerSecurityContext.runAsNonRoot Set MySQL secondary container's Security Context runAsNonRoot
  670. ##
  671. containerSecurityContext:
  672. enabled: true
  673. runAsUser: 1001
  674. runAsNonRoot: true
  675. ## MySQL secondary container's resource requests and limits
  676. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  677. ## We usually recommend not to specify default resources and to leave this as a conscious
  678. ## choice for the user. This also increases chances charts run on environments with little
  679. ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  680. ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  681. ## @param secondary.resources.limits The resources limits for MySQL secondary containers
  682. ## @param secondary.resources.requests The requested resources for MySQL secondary containers
  683. ##
  684. resources:
  685. ## Example:
  686. ## limits:
  687. ## cpu: 250m
  688. ## memory: 256Mi
  689. ##
  690. limits: {}
  691. ## Examples:
  692. ## requests:
  693. ## cpu: 250m
  694. ## memory: 256Mi
  695. ##
  696. requests: {}
  697. ## Configure extra options for liveness probe
  698. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  699. ## @param secondary.livenessProbe.enabled Enable livenessProbe
  700. ## @param secondary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  701. ## @param secondary.livenessProbe.periodSeconds Period seconds for livenessProbe
  702. ## @param secondary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  703. ## @param secondary.livenessProbe.failureThreshold Failure threshold for livenessProbe
  704. ## @param secondary.livenessProbe.successThreshold Success threshold for livenessProbe
  705. ##
  706. livenessProbe:
  707. enabled: true
  708. initialDelaySeconds: 5
  709. periodSeconds: 10
  710. timeoutSeconds: 1
  711. failureThreshold: 3
  712. successThreshold: 1
  713. ## Configure extra options for readiness probe
  714. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  715. ## @param secondary.readinessProbe.enabled Enable readinessProbe
  716. ## @param secondary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  717. ## @param secondary.readinessProbe.periodSeconds Period seconds for readinessProbe
  718. ## @param secondary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  719. ## @param secondary.readinessProbe.failureThreshold Failure threshold for readinessProbe
  720. ## @param secondary.readinessProbe.successThreshold Success threshold for readinessProbe
  721. ##
  722. readinessProbe:
  723. enabled: true
  724. initialDelaySeconds: 5
  725. periodSeconds: 10
  726. timeoutSeconds: 1
  727. failureThreshold: 3
  728. successThreshold: 1
  729. ## Configure extra options for startupProbe probe
  730. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
  731. ## @param secondary.startupProbe.enabled Enable startupProbe
  732. ## @param secondary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
  733. ## @param secondary.startupProbe.periodSeconds Period seconds for startupProbe
  734. ## @param secondary.startupProbe.timeoutSeconds Timeout seconds for startupProbe
  735. ## @param secondary.startupProbe.failureThreshold Failure threshold for startupProbe
  736. ## @param secondary.startupProbe.successThreshold Success threshold for startupProbe
  737. ##
  738. startupProbe:
  739. enabled: true
  740. initialDelaySeconds: 15
  741. periodSeconds: 10
  742. timeoutSeconds: 1
  743. failureThreshold: 15
  744. successThreshold: 1
  745. ## @param secondary.customLivenessProbe Override default liveness probe for MySQL secondary containers
  746. ##
  747. customLivenessProbe: {}
  748. ## @param secondary.customReadinessProbe Override default readiness probe for MySQL secondary containers
  749. ##
  750. customReadinessProbe: {}
  751. ## @param secondary.customStartupProbe Override default startup probe for MySQL secondary containers
  752. ##
  753. customStartupProbe: {}
  754. ## @param secondary.extraFlags MySQL secondary additional command line flags
  755. ## Can be used to specify command line flags, for example:
  756. ## E.g.
  757. ## extraFlags: "--max-connect-errors=1000 --max_connections=155"
  758. ##
  759. extraFlags: ""
  760. ## @param secondary.extraEnvVars An array to add extra environment variables on MySQL secondary containers
  761. ## E.g.
  762. ## extraEnvVars:
  763. ## - name: TZ
  764. ## value: "Europe/Paris"
  765. ##
  766. extraEnvVars: []
  767. ## @param secondary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for MySQL secondary containers
  768. ##
  769. extraEnvVarsCM: ""
  770. ## @param secondary.extraEnvVarsSecret Name of existing Secret containing extra env vars for MySQL secondary containers
  771. ##
  772. extraEnvVarsSecret: ""
  773. ## @param secondary.extraPorts Extra ports to expose
  774. ##
  775. extraPorts: []
  776. ## Enable persistence using Persistent Volume Claims
  777. ## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
  778. ##
  779. persistence:
  780. ## @param secondary.persistence.enabled Enable persistence on MySQL secondary replicas using a `PersistentVolumeClaim`
  781. ##
  782. enabled: true
  783. ## @param secondary.persistence.existingClaim Name of an existing `PersistentVolumeClaim` for MySQL secondary replicas
  784. ## NOTE: When it's set the rest of persistence parameters are ignored
  785. ##
  786. existingClaim: ""
  787. ## @param secondary.persistence.subPath The name of a volume's sub path to mount for persistence
  788. ##
  789. subPath: ""
  790. ## @param secondary.persistence.storageClass MySQL secondary persistent volume storage Class
  791. ## If defined, storageClassName: <storageClass>
  792. ## If set to "-", storageClassName: "", which disables dynamic provisioning
  793. ## If undefined (the default) or set to null, no storageClassName spec is
  794. ## set, choosing the default provisioner. (gp2 on AWS, standard on
  795. ## GKE, AWS & OpenStack)
  796. ##
  797. storageClass: ""
  798. ## @param secondary.persistence.annotations MySQL secondary persistent volume claim annotations
  799. ##
  800. annotations: {}
  801. ## @param secondary.persistence.accessModes MySQL secondary persistent volume access Modes
  802. ##
  803. accessModes:
  804. - ReadWriteOnce
  805. ## @param secondary.persistence.size MySQL secondary persistent volume size
  806. ##
  807. size: 8Gi
  808. ## @param secondary.persistence.selector Selector to match an existing Persistent Volume
  809. ## selector:
  810. ## matchLabels:
  811. ## app: my-app
  812. ##
  813. selector: {}
  814. ## @param secondary.extraVolumes Optionally specify extra list of additional volumes to the MySQL secondary pod(s)
  815. ##
  816. extraVolumes: []
  817. ## @param secondary.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the MySQL secondary container(s)
  818. ##
  819. extraVolumeMounts: []
  820. ## @param secondary.initContainers Add additional init containers for the MySQL secondary pod(s)
  821. ##
  822. initContainers: []
  823. ## @param secondary.sidecars Add additional sidecar containers for the MySQL secondary pod(s)
  824. ##
  825. sidecars: []
  826. ## MySQL Secondary Service parameters
  827. ##
  828. service:
  829. ## @param secondary.service.type MySQL secondary Kubernetes service type
  830. ##
  831. type: ClusterIP
  832. ## @param secondary.service.ports.mysql MySQL secondary Kubernetes service port
  833. ##
  834. ports:
  835. mysql: 3306
  836. ## @param secondary.service.nodePorts.mysql MySQL secondary Kubernetes service node port
  837. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
  838. ##
  839. nodePorts:
  840. mysql: ""
  841. ## @param secondary.service.clusterIP MySQL secondary Kubernetes service clusterIP IP
  842. ## e.g:
  843. ## clusterIP: None
  844. ##
  845. clusterIP: ""
  846. ## @param secondary.service.loadBalancerIP MySQL secondary loadBalancerIP if service type is `LoadBalancer`
  847. ## Set the LoadBalancer service type to internal only
  848. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
  849. ##
  850. loadBalancerIP: ""
  851. ## @param secondary.service.externalTrafficPolicy Enable client source IP preservation
  852. ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
  853. ##
  854. externalTrafficPolicy: Cluster
  855. ## @param secondary.service.loadBalancerSourceRanges Addresses that are allowed when MySQL secondary service is LoadBalancer
  856. ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
  857. ## E.g.
  858. ## loadBalancerSourceRanges:
  859. ## - 10.10.10.0/24
  860. ##
  861. loadBalancerSourceRanges: []
  862. ## @param secondary.service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
  863. ##
  864. extraPorts: []
  865. ## @param secondary.service.annotations Additional custom annotations for MySQL secondary service
  866. ##
  867. annotations: {}
  868. ## @param secondary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
  869. ## If "ClientIP", consecutive client requests will be directed to the same Pod
  870. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
  871. ##
  872. sessionAffinity: None
  873. ## @param secondary.service.sessionAffinityConfig Additional settings for the sessionAffinity
  874. ## sessionAffinityConfig:
  875. ## clientIP:
  876. ## timeoutSeconds: 300
  877. ##
  878. sessionAffinityConfig: {}
  879. ## Headless service properties
  880. ##
  881. headless:
  882. ## @param secondary.service.headless.annotations Additional custom annotations for headless MySQL secondary service.
  883. ##
  884. annotations: {}
  885. ## MySQL secondary Pod Disruption Budget configuration
  886. ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
  887. ##
  888. pdb:
  889. ## @param secondary.pdb.create Enable/disable a Pod Disruption Budget creation for MySQL secondary pods
  890. ##
  891. create: false
  892. ## @param secondary.pdb.minAvailable Minimum number/percentage of MySQL secondary pods that should remain scheduled
  893. ##
  894. minAvailable: 1
  895. ## @param secondary.pdb.maxUnavailable Maximum number/percentage of MySQL secondary pods that may be made unavailable
  896. ##
  897. maxUnavailable: ""
  898. ## @param secondary.podLabels Additional pod labels for MySQL secondary pods
  899. ##
  900. podLabels: {}
  901. ## @section RBAC parameters
  902. ##
  903. ## MySQL pods ServiceAccount
  904. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
  905. ##
  906. serviceAccount:
  907. ## @param serviceAccount.create Enable the creation of a ServiceAccount for MySQL pods
  908. ##
  909. create: true
  910. ## @param serviceAccount.name Name of the created ServiceAccount
  911. ## If not set and create is true, a name is generated using the mysql.fullname template
  912. ##
  913. name: ""
  914. ## @param serviceAccount.annotations Annotations for MySQL Service Account
  915. ##
  916. annotations: {}
  917. ## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
  918. ##
  919. automountServiceAccountToken: true
  920. ## Role Based Access
  921. ## ref: https://kubernetes.io/docs/admin/authorization/rbac/
  922. ##
  923. rbac:
  924. ## @param rbac.create Whether to create & use RBAC resources or not
  925. ##
  926. create: false
  927. ## @param rbac.rules Custom RBAC rules to set
  928. ## e.g:
  929. ## rules:
  930. ## - apiGroups:
  931. ## - ""
  932. ## resources:
  933. ## - pods
  934. ## verbs:
  935. ## - get
  936. ## - list
  937. ##
  938. rules: []
  939. ## @section Network Policy
  940. ##
  941. ## MySQL Nework Policy configuration
  942. ##
  943. networkPolicy:
  944. ## @param networkPolicy.enabled Enable creation of NetworkPolicy resources
  945. ##
  946. enabled: false
  947. ## @param networkPolicy.allowExternal The Policy model to apply.
  948. ## When set to false, only pods with the correct
  949. ## client label will have network access to the port MySQL is listening
  950. ## on. When true, MySQL will accept connections from any source
  951. ## (with the correct destination port).
  952. ##
  953. allowExternal: true
  954. ## @param networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which ingress traffic could be allowed to MySQL
  955. ## If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace
  956. ## and that match other criteria, the ones that have the good label, can reach the DB.
  957. ## But sometimes, we want the DB to be accessible to clients from other namespaces, in this case, we can use this
  958. ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added.
  959. ##
  960. ## Example:
  961. ## explicitNamespacesSelector:
  962. ## matchLabels:
  963. ## role: frontend
  964. ## matchExpressions:
  965. ## - {key: role, operator: In, values: [frontend]}
  966. ##
  967. explicitNamespacesSelector: {}
  968. ## @section Volume Permissions parameters
  969. ##
  970. ## Init containers parameters:
  971. ## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section.
  972. ##
  973. volumePermissions:
  974. ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup`
  975. ##
  976. enabled: false
  977. ## @param volumePermissions.image.registry Init container volume-permissions image registry
  978. ## @param volumePermissions.image.repository Init container volume-permissions image repository
  979. ## @param volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
  980. ## @param volumePermissions.image.digest Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  981. ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
  982. ## @param volumePermissions.image.pullSecrets Specify docker-registry secret names as an array
  983. ##
  984. image:
  985. registry: docker.io
  986. repository: bitnami/bitnami-shell
  987. tag: 11-debian-11-r102
  988. digest: ""
  989. pullPolicy: IfNotPresent
  990. ## Optionally specify an array of imagePullSecrets.
  991. ## Secrets must be manually created in the namespace.
  992. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  993. ## e.g:
  994. ## pullSecrets:
  995. ## - myRegistryKeySecretName
  996. ##
  997. pullSecrets: []
  998. ## @param volumePermissions.resources Init container volume-permissions resources
  999. ##
  1000. resources: {}
  1001. ## @section Metrics parameters
  1002. ##
  1003. ## Mysqld Prometheus exporter parameters
  1004. ##
  1005. metrics:
  1006. ## @param metrics.enabled Start a side-car prometheus exporter
  1007. ##
  1008. enabled: false
  1009. ## @param metrics.image.registry Exporter image registry
  1010. ## @param metrics.image.repository Exporter image repository
  1011. ## @param metrics.image.tag Exporter image tag (immutable tags are recommended)
  1012. ## @param metrics.image.digest Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
  1013. ## @param metrics.image.pullPolicy Exporter image pull policy
  1014. ## @param metrics.image.pullSecrets Specify docker-registry secret names as an array
  1015. ##
  1016. image:
  1017. registry: docker.io
  1018. repository: bitnami/mysqld-exporter
  1019. tag: 0.14.0-debian-11-r103
  1020. digest: ""
  1021. pullPolicy: IfNotPresent
  1022. ## Optionally specify an array of imagePullSecrets.
  1023. ## Secrets must be manually created in the namespace.
  1024. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
  1025. ## e.g:
  1026. ## pullSecrets:
  1027. ## - myRegistryKeySecretName
  1028. ##
  1029. pullSecrets: []
  1030. ## MySQL metrics container security context
  1031. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
  1032. ## @param metrics.containerSecurityContext.enabled MySQL metrics container securityContext
  1033. ## @param metrics.containerSecurityContext.runAsUser User ID for the MySQL metrics container
  1034. ## @param metrics.containerSecurityContext.runAsNonRoot Set MySQL metrics container's Security Context runAsNonRoot
  1035. ##
  1036. containerSecurityContext:
  1037. enabled: true
  1038. runAsUser: 1001
  1039. runAsNonRoot: true
  1040. ## MySQL Prometheus exporter service parameters
  1041. ## Mysqld Prometheus exporter liveness and readiness probes
  1042. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  1043. ## @param metrics.service.type Kubernetes service type for MySQL Prometheus Exporter
  1044. ## @param metrics.service.port MySQL Prometheus Exporter service port
  1045. ## @param metrics.service.annotations [object] Prometheus exporter service annotations
  1046. ##
  1047. service:
  1048. type: ClusterIP
  1049. port: 9104
  1050. annotations:
  1051. prometheus.io/scrape: "true"
  1052. prometheus.io/port: "{{ .Values.metrics.service.port }}"
  1053. ## @param metrics.extraArgs.primary Extra args to be passed to mysqld_exporter on Primary pods
  1054. ## @param metrics.extraArgs.secondary Extra args to be passed to mysqld_exporter on Secondary pods
  1055. ## ref: https://github.com/prometheus/mysqld_exporter/
  1056. ## E.g.
  1057. ## - --collect.auto_increment.columns
  1058. ## - --collect.binlog_size
  1059. ## - --collect.engine_innodb_status
  1060. ## - --collect.engine_tokudb_status
  1061. ## - --collect.global_status
  1062. ## - --collect.global_variables
  1063. ## - --collect.info_schema.clientstats
  1064. ## - --collect.info_schema.innodb_metrics
  1065. ## - --collect.info_schema.innodb_tablespaces
  1066. ## - --collect.info_schema.innodb_cmp
  1067. ## - --collect.info_schema.innodb_cmpmem
  1068. ## - --collect.info_schema.processlist
  1069. ## - --collect.info_schema.processlist.min_time
  1070. ## - --collect.info_schema.query_response_time
  1071. ## - --collect.info_schema.tables
  1072. ## - --collect.info_schema.tables.databases
  1073. ## - --collect.info_schema.tablestats
  1074. ## - --collect.info_schema.userstats
  1075. ## - --collect.perf_schema.eventsstatements
  1076. ## - --collect.perf_schema.eventsstatements.digest_text_limit
  1077. ## - --collect.perf_schema.eventsstatements.limit
  1078. ## - --collect.perf_schema.eventsstatements.timelimit
  1079. ## - --collect.perf_schema.eventswaits
  1080. ## - --collect.perf_schema.file_events
  1081. ## - --collect.perf_schema.file_instances
  1082. ## - --collect.perf_schema.indexiowaits
  1083. ## - --collect.perf_schema.tableiowaits
  1084. ## - --collect.perf_schema.tablelocks
  1085. ## - --collect.perf_schema.replication_group_member_stats
  1086. ## - --collect.slave_status
  1087. ## - --collect.slave_hosts
  1088. ## - --collect.heartbeat
  1089. ## - --collect.heartbeat.database
  1090. ## - --collect.heartbeat.table
  1091. ##
  1092. extraArgs:
  1093. primary: []
  1094. secondary: []
  1095. ## Mysqld Prometheus exporter resource requests and limits
  1096. ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
  1097. ## We usually recommend not to specify default resources and to leave this as a conscious
  1098. ## choice for the user. This also increases chances charts run on environments with little
  1099. ## resources, such as Minikube. If you do want to specify resources, uncomment the following
  1100. ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  1101. ## @param metrics.resources.limits The resources limits for MySQL prometheus exporter containers
  1102. ## @param metrics.resources.requests The requested resources for MySQL prometheus exporter containers
  1103. ##
  1104. resources:
  1105. ## Example:
  1106. ## limits:
  1107. ## cpu: 100m
  1108. ## memory: 256Mi
  1109. ##
  1110. limits: {}
  1111. ## Examples:
  1112. ## requests:
  1113. ## cpu: 100m
  1114. ## memory: 256Mi
  1115. ##
  1116. requests: {}
  1117. ## Mysqld Prometheus exporter liveness probe
  1118. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  1119. ## @param metrics.livenessProbe.enabled Enable livenessProbe
  1120. ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
  1121. ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
  1122. ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
  1123. ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
  1124. ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
  1125. ##
  1126. livenessProbe:
  1127. enabled: true
  1128. initialDelaySeconds: 120
  1129. periodSeconds: 10
  1130. timeoutSeconds: 1
  1131. successThreshold: 1
  1132. failureThreshold: 3
  1133. ## Mysqld Prometheus exporter readiness probe
  1134. ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
  1135. ## @param metrics.readinessProbe.enabled Enable readinessProbe
  1136. ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
  1137. ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
  1138. ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
  1139. ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
  1140. ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
  1141. ##
  1142. readinessProbe:
  1143. enabled: true
  1144. initialDelaySeconds: 30
  1145. periodSeconds: 10
  1146. timeoutSeconds: 1
  1147. successThreshold: 1
  1148. failureThreshold: 3
  1149. ## Prometheus Service Monitor
  1150. ## ref: https://github.com/coreos/prometheus-operator
  1151. ##
  1152. serviceMonitor:
  1153. ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using PrometheusOperator
  1154. ##
  1155. enabled: false
  1156. ## @param metrics.serviceMonitor.namespace Specify the namespace in which the serviceMonitor resource will be created
  1157. ##
  1158. namespace: ""
  1159. ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
  1160. ##
  1161. jobLabel: ""
  1162. ## @param metrics.serviceMonitor.interval Specify the interval at which metrics should be scraped
  1163. ##
  1164. interval: 30s
  1165. ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
  1166. ## e.g:
  1167. ## scrapeTimeout: 30s
  1168. ##
  1169. scrapeTimeout: ""
  1170. ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
  1171. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
  1172. ##
  1173. relabelings: []
  1174. ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
  1175. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
  1176. ##
  1177. metricRelabelings: []
  1178. ## @param metrics.serviceMonitor.selector ServiceMonitor selector labels
  1179. ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
  1180. ##
  1181. ## selector:
  1182. ## prometheus: my-prometheus
  1183. ##
  1184. selector: {}
  1185. ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
  1186. ##
  1187. honorLabels: false
  1188. ## @param metrics.serviceMonitor.labels Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with
  1189. ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
  1190. ##
  1191. labels: {}
  1192. ## @param metrics.serviceMonitor.annotations ServiceMonitor annotations
  1193. ##
  1194. annotations: {}
  1195. ## Prometheus Operator prometheusRule configuration
  1196. ##
  1197. prometheusRule:
  1198. ## @param metrics.prometheusRule.enabled Creates a Prometheus Operator prometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`)
  1199. ##
  1200. enabled: false
  1201. ## @param metrics.prometheusRule.namespace Namespace for the prometheusRule Resource (defaults to the Release Namespace)
  1202. ##
  1203. namespace: ""
  1204. ## @param metrics.prometheusRule.additionalLabels Additional labels that can be used so prometheusRule will be discovered by Prometheus
  1205. ##
  1206. additionalLabels: {}
  1207. ## @param metrics.prometheusRule.rules Prometheus Rule definitions
  1208. ## - alert: Mysql-Down
  1209. ## expr: absent(up{job="mysql"} == 1)
  1210. ## for: 5m
  1211. ## labels:
  1212. ## severity: warning
  1213. ## service: mariadb
  1214. ## annotations:
  1215. ## message: 'MariaDB instance {{`{{`}} $labels.instance {{`}}`}} is down'
  1216. ## summary: MariaDB instance is down
  1217. ##
  1218. rules: []