taskmanager.yaml 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. apiVersion: apps/v1
  2. {{- if .Values.taskmanager.statefulset }}
  3. kind: StatefulSet
  4. {{- else }}
  5. kind: Deployment
  6. {{- end }}
  7. metadata:
  8. name: {{ include "flink.fullname" . }}-taskmanager
  9. labels:
  10. {{ include "flink.labels" . | indent 4 }}
  11. component: taskmanager
  12. annotations:
  13. {{- range $key, $value := .Values.taskmanager.annotations }}
  14. {{ $key | quote }}: {{ $value | quote }}
  15. {{- end }}
  16. spec:
  17. replicas: {{ .Values.taskmanager.replicaCount }}
  18. {{- if .Values.taskmanager.statefulset }}
  19. podManagementPolicy: {{ .Values.taskmanager.podManagementPolicy }}
  20. {{- else }}
  21. strategy:
  22. type: Recreate
  23. {{- end }}
  24. selector:
  25. matchLabels:
  26. app.kubernetes.io/name: {{ include "flink.name" . }}
  27. app.kubernetes.io/instance: {{ .Release.Name }}
  28. component: taskmanager
  29. {{- if .Values.taskmanager.statefulset }}
  30. serviceName: {{ include "flink.fullname" . }}-taskmanager
  31. {{- end }}
  32. template:
  33. metadata:
  34. labels:
  35. app.kubernetes.io/name: {{ include "flink.name" . }}
  36. app.kubernetes.io/instance: {{ .Release.Name }}
  37. component: taskmanager
  38. annotations:
  39. {{- range $key, $value := .Values.taskmanager.podAnnotations }}
  40. {{ $key | quote }}: {{ $value | quote }}
  41. {{- end }}
  42. spec:
  43. {{- with .Values.imagePullSecrets }}
  44. imagePullSecrets:
  45. {{- toYaml . | nindent 8 }}
  46. {{- end }}
  47. serviceAccountName: {{ include "taskmanager.serviceAccount" . }}
  48. securityContext:
  49. {{ toYaml .Values.securityContext | indent 8 }}
  50. initContainers:
  51. {{- range $ct, $params := .Values.taskmanager.initContainers }}
  52. - name: {{ $ct }}
  53. image: {{ $params.image }}
  54. command:
  55. {{- range $params.command }}
  56. - {{ . }}
  57. {{- end }}
  58. {{- end }}
  59. containers:
  60. - name: taskmanager
  61. image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  62. imagePullPolicy: {{ .Values.image.pullPolicy }}
  63. workingDir: {{ .Values.flink.workDir }}
  64. command:
  65. - "/bin/bash"
  66. - "-c"
  67. - {{ include "taskmanager.command" . | quote }}
  68. env:
  69. - name: JVM_ARGS
  70. value: {{ tpl .Values.taskmanager.jvmArgs . | quote }}
  71. {{- if .Values.extraEnvs }}
  72. {{- toYaml .Values.extraEnvs | nindent 12 }}
  73. {{- end }}
  74. {{- if .Values.jobmanager.extraEnvs }}
  75. {{- toYaml .Values.taskmanager.extraEnvs | nindent 12 }}
  76. {{- end }}
  77. envFrom:
  78. {{- if and .Values.secrets.bitnamiSealedSecrets.enabled .Values.secrets.bitnamiSealedSecrets.sealedSecretEnvs }}
  79. - secretRef:
  80. name: {{ .Release.Name }}-secretenvs
  81. {{- end }}
  82. ports:
  83. {{- range $name, $port := .Values.taskmanager.ports }}
  84. - containerPort: {{ $port }}
  85. name: {{ $name }}
  86. {{- end }}
  87. {{- if .Values.flink.monitoring.enabled }}
  88. - containerPort: {{ .Values.flink.monitoring.port }}
  89. name: metrics
  90. {{- end }}
  91. livenessProbe:
  92. tcpSocket:
  93. port: {{ .Values.taskmanager.ports.rpc }}
  94. initialDelaySeconds: {{ .Values.taskmanager.livenessProbe.initialDelaySeconds }}
  95. periodSeconds: {{ .Values.taskmanager.livenessProbe.periodSeconds }}
  96. volumeMounts:
  97. - name: flink-config-volume
  98. mountPath: {{ .Values.flink.workDir }}/conf
  99. {{- if and .Values.taskmanager.persistent.enabled .Values.taskmanager.statefulset }}
  100. - name: taskmanager-data
  101. mountPath: {{ .Values.taskmanager.persistent.mountPath }}
  102. {{- end }}
  103. {{- range $secret := .Values.secrets.kubernetesSecrets }}
  104. {{- if $secret.mountPath }}
  105. {{- if $secret.keys }}
  106. {{- range $key := $secret.keys }}
  107. - name: {{ include "flink.fullname" $ }}-{{ $secret.name }}
  108. mountPath: {{ $secret.mountPath }}/{{ $key }}
  109. subPath: {{ $key }}
  110. readOnly: true
  111. {{- end }}
  112. {{- else }}
  113. - name: {{ include "flink.fullname" $ }}-{{ $secret.name }}
  114. mountPath: {{ $secret.mountPath }}
  115. readOnly: true
  116. {{- end }}
  117. {{- end }}
  118. {{- end }}
  119. {{- if .Values.taskmanager.extraVolumeMounts -}}
  120. {{ toYaml .Values.taskmanager.extraVolumeMounts | nindent 12 }}
  121. {{- end }}
  122. {{- if and (and .Values.secrets.bitnamiSealedSecrets.enabled .Values.secrets.bitnamiSealedSecrets.sealedSecretFiles) .Values.secrets.bitnamiSealedSecrets.sealedSecretFilesPath }}
  123. - name: sealed-secret-files
  124. mountPath: {{ .Values.secrets.bitnamiSealedSecrets.sealedSecretFilesPath }}
  125. {{- end }}
  126. resources:
  127. {{- toYaml .Values.taskmanager.resources | nindent 12 }}
  128. volumes:
  129. - name: flink-config-volume
  130. configMap:
  131. name: {{ include "flink.fullname" . }}-config
  132. items:
  133. - key: flink-conf-taskmanager.yaml
  134. path: flink-conf.yaml
  135. - key: log4j.properties
  136. path: log4j.properties
  137. - key: log4j.properties
  138. path: log4j-console.properties
  139. - key: security.properties
  140. path: security.properties
  141. {{- if .Values.jobmanager.highAvailability.enabled }}
  142. - key: masters
  143. path: masters
  144. {{- end }}
  145. {{- range .Values.secrets.kubernetesSecrets }}
  146. - name: {{ include "flink.fullname" $ }}-{{ .name }}
  147. secret:
  148. secretName: {{ .name }}
  149. {{- end }}
  150. {{- if .Values.taskmanager.extraVolumes -}}
  151. {{ toYaml .Values.taskmanager.extraVolumes | nindent 8 }}
  152. {{- end }}
  153. {{- if and (and .Values.secrets.bitnamiSealedSecrets.enabled .Values.secrets.bitnamiSealedSecrets.sealedSecretFiles) .Values.secrets.bitnamiSealedSecrets.sealedSecretFilesPath }}
  154. - name: sealed-secret-files
  155. secret:
  156. secretName: {{ .Release.Name }}-secretfiles
  157. {{- end }}
  158. {{- with .Values.taskmanager.nodeSelector }}
  159. nodeSelector:
  160. {{- toYaml . | nindent 8 }}
  161. {{- end }}
  162. {{- with .Values.taskmanager.affinity }}
  163. affinity:
  164. {{- toYaml . | nindent 8 }}
  165. {{- end }}
  166. {{- with .Values.taskmanager.tolerations }}
  167. tolerations:
  168. {{- toYaml . | nindent 8 }}
  169. {{- end }}
  170. {{- if and .Values.taskmanager.persistent.enabled .Values.taskmanager.statefulset }}
  171. volumeClaimTemplates:
  172. - metadata:
  173. name: taskmanager-data
  174. labels:
  175. {{ include "flink.labels" . | indent 10 }}
  176. spec:
  177. accessModes:
  178. - ReadWriteOnce
  179. {{- if eq (kindIs "invalid" .Values.taskmanager.persistent.storageClass) false }}
  180. storageClassName: {{ .Values.taskmanager.persistent.storageClass | quote }}
  181. {{- end }}
  182. resources:
  183. requests:
  184. storage: {{ .Values.taskmanager.persistent.size }}
  185. {{- end }}