jobmanager.yaml 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. apiVersion: apps/v1
  2. {{- if .Values.jobmanager.statefulset }}
  3. kind: StatefulSet
  4. {{- else }}
  5. kind: Deployment
  6. {{- end }}
  7. metadata:
  8. name: {{ include "flink.fullname" . }}-jobmanager
  9. labels:
  10. {{ include "flink.labels" . | indent 4 }}
  11. component: jobmanager
  12. annotations:
  13. {{- range $key, $value := .Values.jobmanager.annotations }}
  14. {{ $key | quote }}: {{ $value | quote }}
  15. {{- end }}
  16. spec:
  17. replicas: {{ .Values.jobmanager.replicaCount }}
  18. {{- if .Values.jobmanager.statefulset }}
  19. podManagementPolicy: {{ .Values.jobmanager.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: jobmanager
  29. {{- if .Values.jobmanager.statefulset }}
  30. serviceName: {{ include "flink.fullname" . }}-jobmanager-headless
  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: jobmanager
  38. spec:
  39. {{- with .Values.imagePullSecrets }}
  40. imagePullSecrets:
  41. {{- toYaml . | nindent 8 }}
  42. {{- end }}
  43. serviceAccount: {{ include "jobmanager.serviceAccount" . }}
  44. initContainers:
  45. {{- range $ct, $params := .Values.jobmanager.initContainers }}
  46. - name: {{ $ct }}
  47. image: {{ $params.image }}
  48. command:
  49. {{- range $params.command }}
  50. - {{ . }}
  51. {{- end }}
  52. {{- end }}
  53. containers:
  54. - name: jobmanager
  55. image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  56. imagePullPolicy: {{ .Values.image.pullPolicy }}
  57. workingDir: {{ .Values.flink.workDir }}
  58. command:
  59. - "/bin/bash"
  60. - "-c"
  61. - {{ include "jobmanager.command" . | quote }}
  62. env:
  63. - name: JVM_ARGS
  64. value: {{ tpl .Values.jobmanager.jvmArgs . | quote }}
  65. {{- if .Values.extraEnvs }}
  66. {{- toYaml .Values.extraEnvs | nindent 12 }}
  67. {{- end }}
  68. {{- if .Values.jobmanager.extraEnvs }}
  69. {{- toYaml .Values.jobmanager.extraEnvs | nindent 12 }}
  70. {{- end }}
  71. ports:
  72. {{- range $name, $port := .Values.jobmanager.ports }}
  73. - containerPort: {{ $port }}
  74. name: {{ $name }}
  75. {{- end }}
  76. {{- if .Values.flink.monitoring.enabled }}
  77. - containerPort: {{ .Values.flink.monitoring.port }}
  78. name: metrics
  79. {{- end }}
  80. {{- if .Values.jobmanager.highAvailability.enabled }}
  81. - containerPort: {{ .Values.jobmanager.highAvailability.syncPort }}
  82. name: ha
  83. {{- end }}
  84. readinessProbe:
  85. tcpSocket:
  86. {{- if .Values.jobmanager.highAvailability.enabled }}
  87. port: {{ .Values.jobmanager.highAvailability.syncPort }}
  88. {{- else }}
  89. port: {{ .Values.jobmanager.ports.rpc }}
  90. {{- end }}
  91. periodSeconds: {{ .Values.jobmanager.readinessProbe.periodSeconds }}
  92. initialDelaySeconds: {{ .Values.jobmanager.readinessProbe.initialDelaySeconds }}
  93. livenessProbe:
  94. tcpSocket:
  95. port: {{ .Values.jobmanager.ports.blob }}
  96. initialDelaySeconds: {{ .Values.jobmanager.livenessProbe.initialDelaySeconds }}
  97. periodSeconds: {{ .Values.jobmanager.livenessProbe.periodSeconds }}
  98. volumeMounts:
  99. - name: flink-config-volume
  100. mountPath: {{ .Values.flink.workDir }}/conf/flink-conf.yaml.tpl
  101. subPath: flink-conf.yaml.tpl
  102. - name: flink-config-volume
  103. mountPath: {{ .Values.flink.workDir }}/conf/log4j.properties
  104. subPath: log4j.properties
  105. - name: flink-config-volume
  106. mountPath: {{ .Values.flink.workDir }}/conf/security.properties
  107. subPath: security.properties
  108. {{- if .Values.jobmanager.highAvailability.enabled }}
  109. - name: flink-config-volume
  110. mountPath: {{ .Values.flink.workDir }}/conf/masters
  111. subPath: masters
  112. {{- end }}
  113. {{- if and .Values.jobmanager.persistent.enabled .Values.jobmanager.statefulset }}
  114. - name: jobmanager-data
  115. mountPath: {{ .Values.jobmanager.persistent.mountPath }}
  116. {{- end }}
  117. resources:
  118. {{- toYaml .Values.jobmanager.resources | nindent 12 }}
  119. volumes:
  120. - name: flink-config-volume
  121. configMap:
  122. name: {{ include "flink.fullname" . }}-config
  123. items:
  124. - key: flink-conf.yaml
  125. path: flink-conf.yaml.tpl
  126. - key: log4j.properties
  127. path: log4j.properties
  128. - key: security.properties
  129. path: security.properties
  130. {{- if .Values.jobmanager.highAvailability.enabled }}
  131. - key: masters
  132. path: masters
  133. {{- end }}
  134. {{- with .Values.jobmanager.nodeSelector }}
  135. nodeSelector:
  136. {{- toYaml . | nindent 8 }}
  137. {{- end }}
  138. {{- with .Values.jobmanager.affinity }}
  139. affinity:
  140. {{- toYaml . | nindent 8 }}
  141. {{- end }}
  142. {{- with .Values.jobmanager.tolerations }}
  143. tolerations:
  144. {{- toYaml . | nindent 8 }}
  145. {{- end }}
  146. {{- if and .Values.jobmanager.persistent.enabled .Values.jobmanager.statefulset }}
  147. volumeClaimTemplates:
  148. - metadata:
  149. name: jobmanager-data
  150. annotations:
  151. volume.alpha.kubernetes.io/storage-class: {{ .Values.jobmanager.persistent.storageClass }}
  152. labels:
  153. {{ include "flink.labels" . | indent 10 }}
  154. spec:
  155. accessModes:
  156. - ReadWriteOnce
  157. resources:
  158. requests:
  159. storage: {{ .Values.jobmanager.persistent.size }}
  160. {{- end }}