values.yaml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312
  1. # Default values for flink.
  2. # This is a YAML-formatted file.
  3. # Declare variables to be passed into your templates.
  4. nameOverride: ""
  5. fullnameOverride: ""
  6. image:
  7. repository: flink
  8. tag: 1.10.1-scala_2.12
  9. pullPolicy: IfNotPresent
  10. imagePullSecrets: []
  11. # For general configuration
  12. flink:
  13. # logging
  14. logging:
  15. log4j_properties: |+
  16. log4j.rootLogger=INFO, file
  17. log4j.logger.akka=WARN
  18. log4j.logger.org.apache.kafka=WARN
  19. log4j.logger.org.apache.kafka.clients.producer.ProducerConfig=WARN
  20. log4j.logger.org.apache.kafka.clients.consumer.ConsumerConfig=WARN
  21. log4j.logger.org.apache.hadoop=INFO
  22. log4j.logger.org.apache.zookeeper=INFO
  23. log4j.appender.file=org.apache.log4j.FileAppender
  24. log4j.appender.file.file=${log.file}
  25. log4j.appender.file.layout=org.apache.log4j.PatternLayout
  26. log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
  27. log4j.logger.org.apache.flink.shaded.akka.org.jboss.netty.channel.DefaultChannelPipeline=ERROR, file
  28. # monitoring is exporting metrics in Prometheus format
  29. monitoring:
  30. enabled: true
  31. # port for metrics
  32. port: 9999
  33. # latency monitoring
  34. latency:
  35. enabled: false
  36. probingInterval: 1000
  37. # system is additional system metrics
  38. system:
  39. enabled: true
  40. probingInterval: 5000
  41. rocksdb:
  42. enabled: false
  43. workDir: /opt/flink
  44. # In case of issue - Metaspace OOM increase this param according to your memory limits
  45. # params: |+
  46. # taskmanager.memory.jvm-metaspace.size: 256mb
  47. params: ""
  48. state:
  49. # backend for state. Available options: filesystem, rocksdb, memory; empty - for default(memory)
  50. backend:
  51. # These values are default excludes file pathes
  52. # https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/checkpointing.html#related-config-options
  53. params: |+
  54. state.checkpoints.dir: file:///flink_state/checkpoints
  55. state.savepoints.dir: file:///flink_state/savepoints
  56. state.backend.async: true
  57. state.backend.fs.memory-threshold: 1024
  58. state.backend.fs.write-buffer-size: 4096
  59. state.backend.incremental: false
  60. state.backend.local-recovery: false
  61. state.checkpoints.num-retained: 1
  62. taskmanager.state.local.root-dirs: file:///flink_state/local-recovery
  63. # https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/state_backends.html#rocksdb-state-backend-config-options
  64. # * state.backend.rocksdb.localdir doesn't have a prefix - file://
  65. rocksdb: |+
  66. state.backend.rocksdb.checkpoint.transfer.thread.num: 1
  67. state.backend.rocksdb.localdir: /flink_state/rocksdb
  68. state.backend.rocksdb.options-factory: org.apache.flink.contrib.streaming.state.DefaultConfigurableOptionsFactory
  69. state.backend.rocksdb.predefined-options: DEFAULT
  70. state.backend.rocksdb.timer-service.factory: HEAP
  71. state.backend.rocksdb.ttl.compaction.filter.enabled: false
  72. # extraEnvs passes envs to both Jobmanagers and Taskmanager
  73. # for example
  74. # extraEnvs:
  75. # - name: KAFKA_BOOTSTRAP_SERVERS
  76. # value: dest-kafka-bootstrap:9092
  77. #
  78. extraEnvs: []
  79. jobmanager:
  80. # Statefulset option will create Jobmanager as a StatefulSet
  81. statefulset: false
  82. # Init containers
  83. initContainers: {}
  84. # Example
  85. # test:
  86. # image: busybox:1.28
  87. # command:
  88. # - /bin/sh
  89. # - -c
  90. # - "echo test"
  91. # highAvailability configuration based on zookeeper
  92. highAvailability:
  93. # enabled also will enable zookeeper Dependency
  94. enabled: false
  95. zookeeperConnect: "{{ .Release.Name }}-zookeeper:{{ .Values.zookeeper.env.ZOO_PORT }}"
  96. zookeeperRootPath: /flink
  97. clusterId: /flink
  98. # storageDir for Jobmanagers. DFS expected.
  99. # Docs - Storage directory (required): JobManager metadata is persisted in the file system storageDir and only a pointer to this state is stored in ZooKeeper
  100. storageDir:
  101. # syncPort is a rpc port in HA configuration
  102. syncPort: 6150
  103. # command for HA configuration
  104. # this trick with sed required because taskmanagers read jobmanager.rpc.address from Zookeeper.
  105. # For configuration with one jobmanager (it's enough stable because Kubernetes will restart Jobmanager on falures)
  106. # 'sed' can be changed to use flink service name, e.g. {{ include "flink.name" . }}-jobmanager
  107. command: >-
  108. sed 's/REPLACE_HOSTNAME/'${FLINK_POD_IP}'/'
  109. $FLINK_HOME/conf/flink-conf.yaml.tpl > $FLINK_HOME/conf/flink-conf.yaml &&
  110. $FLINK_HOME/bin/jobmanager.sh start;
  111. while :;
  112. do
  113. if [[ -f $(find log -name '*jobmanager*.log' -print -quit) ]];
  114. then tail -f -n +1 log/*jobmanager*.log;
  115. fi;
  116. done
  117. # Additional param for JVM to support security.properties override
  118. # check configMap for more information
  119. jvmArgs: "-Djava.security.properties={{ .Values.flink.workDir }}/conf/security.properties"
  120. # extraEnvs passes envs to Jobmanagers
  121. extraEnvs: []
  122. ports:
  123. rpc: 6123
  124. # blob port uses for Liveness probe
  125. blob: 6124
  126. ui: 8081
  127. replicaCount: 1
  128. # heapSize params for Jobmanager
  129. # keep in mind that Flink can use offheap memory
  130. # e.g. in case of checkpoint usage
  131. heapSize: 1g
  132. resources: {}
  133. # Example
  134. # limits:
  135. # cpu: 3800m
  136. # memory: 8000Mi
  137. additionalCommand: >-
  138. cp /opt/flink/opt/flink-metrics-prometheus-*.jar
  139. /opt/flink/opt/flink-s3-fs-presto-*.jar
  140. /opt/flink/lib/ &&
  141. wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar
  142. -O /opt/flink/lib/oshi-core-3.4.0.jar &&
  143. wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar
  144. -O /opt/flink/lib/jna-5.4.0.jar &&
  145. wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar
  146. -O /opt/flink/lib/jna-platform-5.4.0.jar
  147. command: >-
  148. cp $FLINK_HOME/conf/flink-conf.yaml.tpl $FLINK_HOME/conf/flink-conf.yaml &&
  149. $FLINK_HOME/bin/jobmanager.sh start;
  150. while :;
  151. do
  152. if [[ -f $(find log -name '*jobmanager*.log' -print -quit) ]];
  153. then tail -f -n +1 log/*jobmanager*.log;
  154. fi;
  155. done
  156. service:
  157. type: ClusterIP
  158. annotations: {}
  159. # rest is additional service which exposes only HTTP port
  160. # can be using for cases of using exposeController
  161. rest:
  162. enabled: true
  163. annotations: {}
  164. headless:
  165. annotations: {}
  166. nodeSelector: {}
  167. affinity: {}
  168. tolerations: {}
  169. persistent:
  170. enabled: false
  171. storageClass:
  172. size: 8Gi
  173. mountPath: "/flink_state"
  174. podManagementPolicy: Parallel
  175. annotations: {}
  176. # Example
  177. # "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
  178. serviceAccount:
  179. # Specifies whether a ServiceAccount should be created
  180. create: true
  181. # The name of the ServiceAccount to use.
  182. # If not set and create is true, a name is generated using the fullname template
  183. name:
  184. #livenessProbe will conduct checks for rpc port as tcpSocket probe
  185. livenessProbe:
  186. initialDelaySeconds: 10
  187. periodSeconds: 15
  188. readinessProbe:
  189. periodSeconds: 10
  190. initialDelaySeconds: 20
  191. podAnnotations: {}
  192. taskmanager:
  193. # Statefulset option will create Taskmanager as a StatefulSet
  194. # A necessary option for Persistent
  195. statefulset: true
  196. # Additional param for JVM to support security.properties override
  197. # check configMap for more information
  198. jvmArgs: "-Djava.security.properties={{ .Values.flink.workDir }}/conf/security.properties"
  199. # extraEnvs passes envs to Taskmanagers
  200. extraEnvs: []
  201. ports:
  202. rpc: 6122
  203. replicaCount: 4
  204. numberOfTaskSlots: 1
  205. memoryProcessSize: 1g
  206. memoryFlinkSize:
  207. resources: {}
  208. # Example
  209. # limits:
  210. # cpu: 3800m
  211. # memory: 8000Mi
  212. additionalCommand: >-
  213. cp /opt/flink/opt/flink-metrics-prometheus-*.jar
  214. /opt/flink/opt/flink-s3-fs-presto-*.jar
  215. /opt/flink/lib/ &&
  216. wget https://repo1.maven.org/maven2/com/github/oshi/oshi-core/3.4.0/oshi-core-3.4.0.jar
  217. -O /opt/flink/lib/oshi-core-3.4.0.jar &&
  218. wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar
  219. -O /opt/flink/lib/jna-5.4.0.jar &&
  220. wget https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar
  221. -O /opt/flink/lib/jna-platform-5.4.0.jar
  222. command: >-
  223. $FLINK_HOME/bin/taskmanager.sh start;
  224. while :;
  225. do
  226. if [[ -f $(find log -name '*taskmanager*.log' -print -quit) ]];
  227. then tail -f -n +1 log/*taskmanager*.log;
  228. fi;
  229. done
  230. service:
  231. type: ClusterIP
  232. nodeSelector: {}
  233. affinity: {}
  234. tolerations: {}
  235. persistent:
  236. enabled: false
  237. storageClass:
  238. size: 8Gi
  239. mountPath: "/flink_state"
  240. podManagementPolicy: Parallel
  241. annotations:
  242. "cluster-autoscaler.kubernetes.io/safe-to-evict": "false"
  243. serviceAccount:
  244. # Specifies whether a ServiceAccount should be created
  245. create: true
  246. # The name of the ServiceAccount to use.
  247. # If not set and create is true, a name is generated using the fullname template
  248. name:
  249. #livenessProbe will conduct checks for rpc port as tcpSocket probe
  250. livenessProbe:
  251. initialDelaySeconds: 30
  252. periodSeconds: 60
  253. podAnnotations: {}
  254. ingress:
  255. enabled: false
  256. annotations: {}
  257. path: /
  258. hosts: []
  259. tls: []
  260. prometheus:
  261. # serviceMonitor provides service discovery for prometheus operatored installations
  262. serviceMonitor:
  263. enabled: false
  264. namespace:
  265. interval: 5s
  266. selector:
  267. # According to default selector for prometheus operator
  268. prometheus: kube-prometheus
  269. zookeeper:
  270. enabled: false
  271. replicaCount: 3
  272. env:
  273. ZK_HEAP_SIZE: "1G"
  274. ZOO_PORT: 2181
  275. resources:
  276. limits:
  277. cpu: 400m
  278. memory: 1256Mi
  279. persistence:
  280. enabled: true
  281. secrets:
  282. # Plain predefined secrets example
  283. # kubernetesSecrets:
  284. # - name: kerberos
  285. # mountPath: /kerberos
  286. bitnamiSealedSecrets:
  287. enabled: false
  288. # The encrypted raw file sealed secrets generated for example with
  289. # kubeseal --raw --from-file=... --controller-name sealed-secrets --scope namespace-wide
  290. sealedSecretFiles: {}
  291. # file1: encypted_file1
  292. # file2: encypted_file2
  293. sealedSecretFilesPath: /etc/sealed
  294. sealedSecretFilesAnnotations:
  295. sealedsecrets.bitnami.com/namespace-wide: true
  296. # The encrypted raw env sealed secrets generated for example with
  297. # echo -n password | kubeseal --raw --from-file=/dev/stdin --controller-name sealed-secrets --scope namespace-wide
  298. sealedSecretEnvs: {}
  299. # env1: encypted_env1
  300. # env2: encypted_env2
  301. sealedSecretEnvsAnnotations:
  302. sealedsecrets.bitnami.com/namespace-wide: true