_helpers.tpl 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. {{/* vim: set filetype=mustache: */}}
  2. {{/*
  3. Expand the name of the chart.
  4. */}}
  5. {{- define "flink.name" -}}
  6. {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
  7. {{- end -}}
  8. {{/*
  9. Create a default fully qualified app name.
  10. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
  11. If release name contains chart name it will be used as a full name.
  12. */}}
  13. {{- define "flink.fullname" -}}
  14. {{- if .Values.fullnameOverride -}}
  15. {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
  16. {{- else -}}
  17. {{- $name := default .Chart.Name .Values.nameOverride -}}
  18. {{- if contains $name .Release.Name -}}
  19. {{- .Release.Name | trunc 63 | trimSuffix "-" -}}
  20. {{- else -}}
  21. {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
  22. {{- end -}}
  23. {{- end -}}
  24. {{- end -}}
  25. {{/*
  26. Create chart name and version as used by the chart label.
  27. */}}
  28. {{- define "flink.chart" -}}
  29. {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
  30. {{- end -}}
  31. {{/*
  32. Common labels
  33. */}}
  34. {{- define "flink.labels" -}}
  35. app.kubernetes.io/name: {{ include "flink.name" . }}
  36. helm.sh/chart: {{ include "flink.chart" . }}
  37. app.kubernetes.io/instance: {{ .Release.Name }}
  38. {{- if .Chart.AppVersion }}
  39. app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
  40. {{- end }}
  41. app.kubernetes.io/managed-by: {{ .Release.Service }}
  42. {{- end -}}
  43. {{/*
  44. Check if specific namespace is passed if false
  45. then .Release.Namespace will be used
  46. */}}
  47. {{- define "serviceMonitor.namespace" -}}
  48. {{- if .Values.prometheus.serviceMonitor.namespace -}}
  49. {{ .Values.prometheus.serviceMonitor.namespace }}
  50. {{- else -}}
  51. {{ .Release.Namespace }}
  52. {{- end -}}
  53. {{- end -}}
  54. {{/*
  55. ServiceAccount for Jobmanager
  56. */}}
  57. {{- define "jobmanager.serviceAccount" -}}
  58. {{ default "jobmanager" .Values.jobmanager.serviceAccount.name }}
  59. {{- end -}}
  60. {{/*
  61. ServiceAccount for Taskmanager
  62. */}}
  63. {{- define "taskmanager.serviceAccount" -}}
  64. {{ default "taskmanager" .Values.taskmanager.serviceAccount.name }}
  65. {{- end -}}
  66. {{/*
  67. Generate command for Jobmanager
  68. */}}
  69. {{- define "jobmanager.command" -}}
  70. {{ $cmd := .Values.jobmanager.command }}
  71. {{- if .Values.jobmanager.highAvailability.enabled }}
  72. {{ $cmd = (tpl .Values.jobmanager.highAvailability.command .) }}
  73. {{- end }}
  74. {{- if .Values.jobmanager.additionalCommand -}}
  75. {{ printf "%s && %s" .Values.jobmanager.additionalCommand $cmd }}
  76. {{- else }}
  77. {{ $cmd }}
  78. {{- end -}}
  79. {{- end -}}
  80. {{/*
  81. Generate command for Taskmanager
  82. */}}
  83. {{- define "taskmanager.command" -}}
  84. {{ $cmd := .Values.taskmanager.command }}
  85. {{- if .Values.taskmanager.additionalCommand -}}
  86. {{ printf "%s && %s" .Values.taskmanager.additionalCommand $cmd }}
  87. {{- else }}
  88. {{ $cmd }}
  89. {{- end -}}
  90. {{- end -}}
  91. {{/*
  92. Generate Flink Configuration.
  93. We do it here to support HA mode where we cannot
  94. provide jobmanager.rpc.address to Taskmanagers
  95. */}}
  96. {{- define "flink.configuration" -}}
  97. taskmanager.numberOfTaskSlots: {{ .Values.taskmanager.numberOfTaskSlots }}
  98. blob.server.port: {{ .Values.jobmanager.ports.blob }}
  99. taskmanager.rpc.port: {{ .Values.taskmanager.ports.rpc }}
  100. jobmanager.heap.size: {{ .Values.jobmanager.heapSize }}
  101. taskmanager.heap.size: {{ .Values.taskmanager.heapSize }}
  102. {{- .Values.flink.params | nindent 4 }}
  103. {{- if .Values.flink.monitoring.enabled }}
  104. metrics.reporters: prom
  105. metrics.reporter.prom.class: org.apache.flink.metrics.prometheus.PrometheusReporter
  106. metrics.reporter.prom.port: {{ .Values.flink.monitoring.port }}
  107. {{- if .Values.flink.monitoring.system.enabled }}
  108. metrics.system-resource: true
  109. metrics.system-resource-probing-interval: {{ .Values.flink.monitoring.system.probingInterval }}
  110. {{- end }}
  111. {{- if .Values.flink.monitoring.latency.enabled }}
  112. metrics.latency.interval: {{ .Values.flink.monitoring.latency.probingInterval }}
  113. {{- end }}
  114. {{- if .Values.flink.monitoring.rocksdb.enabled }}
  115. state.backend.rocksdb.metrics.cur-size-active-mem-table: true
  116. state.backend.rocksdb.metrics.cur-size-all-mem-tables: true
  117. state.backend.rocksdb.metrics.estimate-live-data-size: true
  118. state.backend.rocksdb.metrics.size-all-mem-tables: true
  119. state.backend.rocksdb.metrics.estimate-num-keys: true
  120. {{- end }}
  121. {{- end }}
  122. {{- if .Values.flink.state.backend }}
  123. state.backend: {{ .Values.flink.state.backend }}
  124. {{- .Values.flink.state.params | nindent 4 }}
  125. {{- if eq .Values.flink.state.backend "rocksdb" }}
  126. {{- .Values.flink.state.rocksdb | nindent 4 }}
  127. {{- end }}
  128. {{- end }}
  129. {{- if .Values.jobmanager.highAvailability.enabled }}
  130. high-availability: zookeeper
  131. high-availability.zookeeper.quorum: {{ .Values.jobmanager.highAvailability.zookeeperConnect }}
  132. high-availability.zookeeper.path.root: /flink
  133. high-availability.cluster-id: /flink
  134. high-availability.storageDir: {{ .Values.jobmanager.highAvailability.storageDir }}
  135. high-availability.jobmanager.port: {{ .Values.jobmanager.highAvailability.syncPort }}
  136. {{- else }}
  137. jobmanager.rpc.address: {{ include "flink.fullname" . }}-jobmanager
  138. jobmanager.rpc.port: {{ .Values.jobmanager.ports.rpc }}
  139. {{- end }}
  140. {{- end -}}