statefulset-taskmanager.yaml 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. apiVersion: apps/v1
  2. kind: StatefulSet
  3. metadata:
  4. name: {{ include "flink.fullname" . }}-taskmanager
  5. labels:
  6. {{ include "flink.labels" . | indent 4 }}
  7. component: taskmanager
  8. annotations:
  9. "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
  10. spec:
  11. replicas: {{ .Values.taskmanager.replicaCount }}
  12. podManagementPolicy: Parallel
  13. selector:
  14. matchLabels:
  15. app.kubernetes.io/name: {{ include "flink.name" . }}
  16. app.kubernetes.io/instance: {{ .Release.Name }}
  17. component: taskmanager
  18. template:
  19. metadata:
  20. labels:
  21. app.kubernetes.io/name: {{ include "flink.name" . }}
  22. app.kubernetes.io/instance: {{ .Release.Name }}
  23. component: taskmanager
  24. spec:
  25. {{- with .Values.imagePullSecrets }}
  26. imagePullSecrets:
  27. {{- toYaml . | nindent 8 }}
  28. {{- end }}
  29. containers:
  30. - name: taskmanager
  31. image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
  32. imagePullPolicy: {{ .Values.image.pullPolicy }}
  33. workingDir: {{ .Values.flink.workDir }}
  34. command:
  35. {{- range .Values.taskmanager.command }}
  36. - {{ . | quote }}
  37. {{- end }}
  38. env:
  39. # Redis access
  40. - name: REDIS_HOST
  41. value: {{ .Release.Namespace }}-redis-master
  42. - name: REDIS_PORT
  43. value: "6379"
  44. - name: REDIS_PASSWORD
  45. valueFrom:
  46. secretKeyRef:
  47. name: {{ .Release.Namespace }}-redis
  48. key: redis-password
  49. #
  50. {{- range $key, $value := .Values.taskmanager.extraEnvs }}
  51. - name: {{ $key }}
  52. value: {{ $value }}
  53. {{- end }}
  54. {{- range $key, $value := .Values.extraEnvs }}
  55. - name: {{ $key }}
  56. value: {{ $value }}
  57. {{- end }}
  58. ports:
  59. {{- range $name, $port := .Values.taskmanager.ports }}
  60. - containerPort: {{ $port }}
  61. name: {{ $name }}
  62. {{- end }}
  63. livenessProbe:
  64. tcpSocket:
  65. port: {{ .Values.taskmanager.ports.rpc }}
  66. initialDelaySeconds: 30
  67. periodSeconds: 60
  68. volumeMounts:
  69. - name: flink-config-volume
  70. mountPath: {{ .Values.flink.workDir }}/conf
  71. resources:
  72. {{- toYaml .Values.taskmanager.resources | nindent 12 }}
  73. volumes:
  74. - name: flink-config-volume
  75. configMap:
  76. name: {{ include "flink.fullname" . }}-config
  77. items:
  78. - key: flink-conf.yaml
  79. path: flink-conf.yaml
  80. - key: log4j.properties
  81. path: log4j.properties
  82. {{- with .Values.nodeSelector }}
  83. nodeSelector:
  84. {{- toYaml . | nindent 8 }}
  85. {{- end }}
  86. {{- with .Values.affinity }}
  87. affinity:
  88. {{- toYaml . | nindent 8 }}
  89. {{- end }}
  90. {{- with .Values.tolerations }}
  91. tolerations:
  92. {{- toYaml . | nindent 8 }}
  93. {{- end }}