mysql.yaml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. {{- if .Values.cluster.mysql.statefulset.enabled }}
  2. {{ $mysql := .Values.cluster.mysql }}
  3. {{ $statefulset := $mysql.statefulset }}
  4. {{ $image := $statefulset.image }}
  5. {{ $storageClass := $statefulset.persistence.storageClass }}
  6. ---
  7. apiVersion: v1
  8. kind: Service
  9. metadata:
  10. name: {{ template "cloudpods.cluster.mysql.host" . }}
  11. labels:
  12. app: {{ template "cloudpods.name" . }}-mysql
  13. chart: {{ template "cloudpods.chart" . }}
  14. release: {{ .Release.Name }}
  15. heritage: {{ .Release.Service }}
  16. spec:
  17. type: ClusterIP
  18. ports:
  19. - name: mysql
  20. port: {{ $mysql.port }}
  21. protocol: TCP
  22. targetPort: {{ $mysql.port }}
  23. selector:
  24. app: {{ template "cloudpods.name" . }}-mysql
  25. release: {{ .Release.Name }}
  26. ---
  27. apiVersion: {{ template "statefulset.apiVersion" . }}
  28. kind: StatefulSet
  29. metadata:
  30. name: {{ template "cloudpods.mysql.fullname" . }}
  31. labels:
  32. app: {{ template "cloudpods.name" . }}-mysql
  33. chart: {{ template "cloudpods.chart" . }}
  34. release: {{ .Release.Name }}
  35. heritage: {{ .Release.Service }}
  36. spec:
  37. updateStrategy:
  38. type: RollingUpdate
  39. podManagementPolicy: "Parallel"
  40. serviceName: {{ template "cloudpods.cluster.mysql.host" . }}
  41. replicas: 1
  42. selector:
  43. matchLabels:
  44. app: {{ template "cloudpods.name" . }}-mysql
  45. release: {{ .Release.Name }}
  46. template:
  47. metadata:
  48. name: {{ template "cloudpods.mysql.fullname" . }}
  49. labels:
  50. app: {{ template "cloudpods.name" . }}-mysql
  51. release: {{ .Release.Name }}
  52. spec:
  53. {{- with .Values.operator.tolerations }}
  54. tolerations:
  55. {{- toYaml . | nindent 8 }}
  56. {{- end }}
  57. containers:
  58. - name: {{ .Chart.Name }}-mysql
  59. image: {{ $image.repository }}:{{ $image.tag }}
  60. imagePullPolicy: {{ $image.pullPolicy }}
  61. env:
  62. - name: MYSQL_ROOT_PASSWORD
  63. value: {{ $mysql.password | quote }}
  64. - name: MYSQL_TCP_PORT
  65. value: {{ $mysql.port | quote }}
  66. - name: MYSQL_ROOT_HOST
  67. value: "%"
  68. - name: MARIADB_AUTO_UPGRADE
  69. value: "true"
  70. - name: MARIADB_DISABLE_UPGRADE_BACKUP
  71. value: "true"
  72. ports:
  73. - containerPort: {{ int $mysql.port }}
  74. name: mysql
  75. volumeMounts:
  76. - name: mysql-persistent-storage
  77. mountPath: /var/lib/mysql
  78. volumeClaimTemplates:
  79. - metadata:
  80. name: mysql-persistent-storage
  81. spec:
  82. accessModes: [ {{ $statefulset.persistence.accessMode | quote }} ]
  83. {{- if $storageClass }}
  84. storageClassName: {{ $storageClass }}
  85. {{- else }}
  86. storageClassName: {{ template "cloudpods.cluster.storageClass" . }}
  87. {{- end }}
  88. resources:
  89. requests:
  90. storage: {{ $statefulset.persistence.size }}
  91. {{- end }}