jobmanager-statefulset.yaml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. apiVersion: apps/v1
  2. kind: StatefulSet
  3. metadata:
  4. name: {{ include "flink.fullname" . }}-jobmanager
  5. labels:
  6. {{ include "flink.labels" . | indent 4 }}
  7. component: jobmanager
  8. annotations:
  9. {{- range $key, $value := .Values.jobmanager.annotations }}
  10. {{ $key | quote }}: {{ $value | quote }}
  11. {{- end }}
  12. spec:
  13. replicas: {{ .Values.jobmanager.replicaCount }}
  14. podManagementPolicy: {{ .Values.jobmanager.podManagementPolicy }}
  15. selector:
  16. matchLabels:
  17. app.kubernetes.io/name: {{ include "flink.name" . }}
  18. app.kubernetes.io/instance: {{ .Release.Name }}
  19. component: jobmanager
  20. serviceName: {{ include "flink.fullname" . }}-jobmanager-headless
  21. template:
  22. metadata:
  23. labels:
  24. app.kubernetes.io/name: {{ include "flink.name" . }}
  25. app.kubernetes.io/instance: {{ .Release.Name }}
  26. component: jobmanager
  27. spec:
  28. {{- with .Values.imagePullSecrets }}
  29. imagePullSecrets:
  30. {{- toYaml . | nindent 8 }}
  31. {{- end }}
  32. serviceAccount: {{ include "jobmanager.serviceAccount" . }}
  33. containers:
  34. - name: jobmanager
  35. image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  36. imagePullPolicy: {{ .Values.image.pullPolicy }}
  37. workingDir: {{ .Values.flink.workDir }}
  38. command:
  39. - "/bin/bash"
  40. - "-c"
  41. - {{ include "jobmanager.command" . | quote }}
  42. env:
  43. {{- if .Values.extraEnvs }}
  44. {{- toYaml .Values.extraEnvs | nindent 12 }}
  45. {{- end }}
  46. {{- if .Values.jobmanager.extraEnvs }}
  47. {{- toYaml .Values.jobmanager.extraEnvs | nindent 12 }}
  48. {{- end }}
  49. ports:
  50. {{- range $name, $port := .Values.jobmanager.ports }}
  51. - containerPort: {{ $port }}
  52. name: {{ $name }}
  53. {{- end }}
  54. {{- if .Values.flink.monitoring.enabled }}
  55. - containerPort: {{ .Values.flink.monitoring.port }}
  56. name: metrics
  57. {{- end }}
  58. {{- if .Values.jobmanager.highAvailability.enabled }}
  59. - containerPort: {{ .Values.jobmanager.highAvailability.syncPort }}
  60. name: ha
  61. {{- end }}
  62. readinessProbe:
  63. tcpSocket:
  64. {{- if .Values.jobmanager.highAvailability.enabled }}
  65. port: {{ .Values.jobmanager.highAvailability.syncPort }}
  66. {{- else }}
  67. port: {{ .Values.jobmanager.ports.rpc }}
  68. {{- end }}
  69. periodSeconds: {{ .Values.jobmanager.readinessProbe.periodSeconds }}
  70. initialDelaySeconds: {{ .Values.jobmanager.readinessProbe.initialDelaySeconds }}
  71. livenessProbe:
  72. tcpSocket:
  73. port: {{ .Values.jobmanager.ports.blob }}
  74. initialDelaySeconds: {{ .Values.jobmanager.livenessProbe.initialDelaySeconds }}
  75. periodSeconds: {{ .Values.jobmanager.livenessProbe.periodSeconds }}
  76. volumeMounts:
  77. - name: flink-config-volume
  78. mountPath: {{ .Values.flink.workDir }}/conf/flink-conf.yaml.tpl
  79. subPath: flink-conf.yaml.tpl
  80. - name: flink-config-volume
  81. mountPath: {{ .Values.flink.workDir }}/conf/log4j.properties
  82. subPath: log4j.properties
  83. {{- if .Values.jobmanager.highAvailability.enabled }}
  84. - name: flink-config-volume
  85. mountPath: {{ .Values.flink.workDir }}/conf/masters
  86. subPath: masters
  87. {{- end }}
  88. {{- if .Values.jobmanager.persistent.enabled }}
  89. - name: jobmanager-data
  90. mountPath: {{ .Values.jobmanager.persistent.mountPath }}
  91. {{- end }}
  92. resources:
  93. {{- toYaml .Values.jobmanager.resources | nindent 12 }}
  94. volumes:
  95. - name: flink-config-volume
  96. configMap:
  97. name: {{ include "flink.fullname" . }}-config
  98. items:
  99. - key: flink-conf.yaml
  100. path: flink-conf.yaml.tpl
  101. - key: log4j.properties
  102. path: log4j.properties
  103. {{- if .Values.jobmanager.highAvailability.enabled }}
  104. - key: masters
  105. path: masters
  106. {{- end }}
  107. {{- with .Values.jobmanager.nodeSelector }}
  108. nodeSelector:
  109. {{- toYaml . | nindent 8 }}
  110. {{- end }}
  111. {{- with .Values.jobmanager.affinity }}
  112. affinity:
  113. {{- toYaml . | nindent 8 }}
  114. {{- end }}
  115. {{- with .Values.jobmanager.tolerations }}
  116. tolerations:
  117. {{- toYaml . | nindent 8 }}
  118. {{- end }}
  119. {{- if .Values.jobmanager.persistent.enabled }}
  120. volumeClaimTemplates:
  121. - metadata:
  122. name: jobmanager-data
  123. annotations:
  124. volume.alpha.kubernetes.io/storage-class: {{ .Values.jobmanager.persistent.storageClass }}
  125. labels:
  126. {{ include "flink.labels" . | indent 10 }}
  127. spec:
  128. accessModes:
  129. - ReadWriteOnce
  130. resources:
  131. requests:
  132. storage: {{ .Values.jobmanager.persistent.size }}
  133. {{- end }}