taskmanager.yaml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. template:
  30. metadata:
  31. labels:
  32. app.kubernetes.io/name: {{ include "flink.name" . }}
  33. app.kubernetes.io/instance: {{ .Release.Name }}
  34. component: taskmanager
  35. annotations:
  36. {{- range $key, $value := .Values.taskmanager.podAnnotations }}
  37. {{ $key | quote }}: {{ $value | quote }}
  38. {{- end }}
  39. spec:
  40. {{- with .Values.imagePullSecrets }}
  41. imagePullSecrets:
  42. {{- toYaml . | nindent 8 }}
  43. {{- end }}
  44. serviceAccount: {{ include "taskmanager.serviceAccount" . }}
  45. initContainers:
  46. {{- range $ct, $params := .Values.taskmanager.initContainers }}
  47. - name: {{ $ct }}
  48. image: {{ $params.image }}
  49. command:
  50. {{- range $params.command }}
  51. - {{ . }}
  52. {{- end }}
  53. {{- end }}
  54. containers:
  55. - name: taskmanager
  56. image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  57. imagePullPolicy: {{ .Values.image.pullPolicy }}
  58. workingDir: {{ .Values.flink.workDir }}
  59. command:
  60. - "/bin/bash"
  61. - "-c"
  62. - {{ include "taskmanager.command" . | quote }}
  63. env:
  64. - name: JVM_ARGS
  65. value: {{ tpl .Values.taskmanager.jvmArgs . | quote }}
  66. {{- if .Values.extraEnvs }}
  67. {{- toYaml .Values.extraEnvs | nindent 12 }}
  68. {{- end }}
  69. {{- if .Values.jobmanager.extraEnvs }}
  70. {{- toYaml .Values.taskmanager.extraEnvs | nindent 12 }}
  71. {{- end }}
  72. ports:
  73. {{- range $name, $port := .Values.taskmanager.ports }}
  74. - containerPort: {{ $port }}
  75. name: {{ $name }}
  76. {{- end }}
  77. {{- if .Values.flink.monitoring.enabled }}
  78. - containerPort: {{ .Values.flink.monitoring.port }}
  79. name: metrics
  80. {{- end }}
  81. livenessProbe:
  82. tcpSocket:
  83. port: {{ .Values.taskmanager.ports.rpc }}
  84. initialDelaySeconds: {{ .Values.taskmanager.livenessProbe.initialDelaySeconds }}
  85. periodSeconds: {{ .Values.taskmanager.livenessProbe.periodSeconds }}
  86. volumeMounts:
  87. - name: flink-config-volume
  88. mountPath: {{ .Values.flink.workDir }}/conf
  89. {{- if and .Values.taskmanager.persistent.enabled .Values.taskmanager.statefulset }}
  90. - name: taskmanager-data
  91. mountPath: {{ .Values.taskmanager.persistent.mountPath }}
  92. {{- end }}
  93. resources:
  94. {{- toYaml .Values.taskmanager.resources | nindent 12 }}
  95. volumes:
  96. - name: flink-config-volume
  97. configMap:
  98. name: {{ include "flink.fullname" . }}-config
  99. items:
  100. - key: flink-conf-taskmanager.yaml
  101. path: flink-conf.yaml
  102. - key: log4j.properties
  103. path: log4j.properties
  104. - key: security.properties
  105. path: security.properties
  106. {{- if .Values.jobmanager.highAvailability.enabled }}
  107. - key: masters
  108. path: masters
  109. {{- end }}
  110. {{- with .Values.taskmanager.nodeSelector }}
  111. nodeSelector:
  112. {{- toYaml . | nindent 8 }}
  113. {{- end }}
  114. {{- with .Values.taskmanager.affinity }}
  115. affinity:
  116. {{- toYaml . | nindent 8 }}
  117. {{- end }}
  118. {{- with .Values.taskmanager.tolerations }}
  119. tolerations:
  120. {{- toYaml . | nindent 8 }}
  121. {{- end }}
  122. {{- if and .Values.taskmanager.persistent.enabled .Values.taskmanager.statefulset }}
  123. volumeClaimTemplates:
  124. - metadata:
  125. name: taskmanager-data
  126. annotations:
  127. volume.alpha.kubernetes.io/storage-class: {{ .Values.taskmanager.persistent.storageClass }}
  128. labels:
  129. {{ include "flink.labels" . | indent 10 }}
  130. spec:
  131. accessModes:
  132. - ReadWriteOnce
  133. resources:
  134. requests:
  135. storage: {{ .Values.taskmanager.persistent.size }}
  136. {{- end }}