values.yaml 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880
  1. # Default values for deepflow-server.
  2. # This is a YAML-formatted file.
  3. # Declare variables to be passed into your templates.
  4. global:
  5. image:
  6. ## ghcr Image repository address: ghcr.io/deepflowys/deepflow-ce
  7. ## Dockerhub Image repository address: deepflowce
  8. ## AliyunYun Image repository address: registry.cn-beijing.aliyuncs.com/deepflow-ce
  9. repository: deepflowce
  10. pullPolicy: Always
  11. imagePullSecrets: []
  12. hostNetwork: false
  13. dnsPolicy: ClusterFirst
  14. password:
  15. mysql: deepflow
  16. #grafana: deepflow
  17. podManagementPolicy: "OrderedReady"
  18. replicas: 1 ## replicas for deepflow-server and clickhouse
  19. podAntiAffinityLabelSelector: []
  20. podAntiAffinityTermLabelSelector: []
  21. podAffinityLabelSelector: []
  22. podAffinityTermLabelSelector: []
  23. nodeAffinityLabelSelector: []
  24. nodeAffinityTermLabelSelector: []
  25. timezone: "Asia/Shanghai"
  26. nodePort:
  27. #clickhouse: 30900
  28. deepflowServerIngester: 30033
  29. deepflowServerGrpc: 30035
  30. # deepflowServerSslGrpc: 30135
  31. deepflowServerhealthCheck: 30417
  32. ntpServer: ntp.aliyun.com
  33. ## Whether to enable allInone local storage, if enabled, the local /opt directory is used to store data by default, ignoring the node affinity check, and is not responsible for any data persistence
  34. allInOneLocalStorage: false
  35. storageClass: "openebs-hostpath"
  36. externalClickHouse:
  37. enabled: false ## Enable external ClickHouse
  38. type: ep
  39. ## External ClickHouse clusterName,The default value is 'default', query method: 'select cluster,host_address,port from system.clusters;'
  40. clusterName: default
  41. ## External ClickHouse storage policy name,The default value is 'default', query method: 'select policy_name from system.storage_policies;'
  42. storagePolicy: default
  43. username: default ## External ClickHouse username
  44. password: password ## External ClickHouse Password
  45. ## External ClickHouse IP address and port list, DeepFlow writes IP and port information to an svc endpoint, deepflow-server obtains ClickHouse's IP:Port through get&wath&list endpoint.
  46. ## deepflow-server needs to access the real IP address of ClickHouse, the port is connected using tcp-port, usually 9000, and query IP:Port through 'select host_address,port from system.clusters;'.
  47. hosts: []
  48. # - ip: 10.1.2.3
  49. # port: 9000
  50. # - ip: 10.1.2.4
  51. # port: 9000
  52. # - ip: 10.1.2.5
  53. # port: 9000
  54. externalMySQL:
  55. enabled: false ## Enable external MySQL
  56. ip: 10.1.2.3 ## External Mysql IP address, Need to allow deepflow-server and clickhouse access
  57. port: 3306 ## External Mysql port
  58. username: ## External Mysql username
  59. password: ## External Mysql password
  60. image:
  61. server:
  62. repository: "{{ .Values.global.image.repository }}/deepflow-server"
  63. tag: v6.2.5
  64. pullPolicy: "{{ .Values.global.image.pullPolicy }}"
  65. app:
  66. repository: "{{ .Values.global.image.repository }}/deepflow-app"
  67. tag: v6.2.5
  68. pullPolicy: "{{ .Values.global.image.pullPolicy }}"
  69. imagePullSecrets: []
  70. nameOverride: ""
  71. fullnameOverride: ""
  72. timezone: "{{ .Values.global.timezone }}"
  73. podAnnotations: {}
  74. podSecurityContext: {}
  75. # fsGroup: 2000
  76. securityContext: {}
  77. # capabilities:
  78. # drop:
  79. # - ALL
  80. # readOnlyRootFilesystem: true
  81. # runAsNonRoot: true
  82. # runAsUser: 1000
  83. server:
  84. ## Pod Labels
  85. podLabels: {}
  86. replicas: "{{ .Values.global.replicas }}"
  87. hostNetwork: "{{ .Values.global.hostNetwork }}"
  88. dnsPolicy: "{{ .Values.global.dnsPolicy }}"
  89. podManagementPolicy: "{{ .Values.global.podManagementPolicy }}"
  90. featureFlag: []
  91. readinessProbe:
  92. httpGet:
  93. path: /v1/health/
  94. port: server
  95. failureThreshold: 10
  96. initialDelaySeconds: 15
  97. periodSeconds: 10
  98. successThreshold: 1
  99. livenessProbe:
  100. failureThreshold: 6
  101. initialDelaySeconds: 15
  102. periodSeconds: 20
  103. successThreshold: 1
  104. httpGet:
  105. path: /v1/health/
  106. port: server
  107. timeoutSeconds: 1
  108. service:
  109. ## Configuration for deepflow-server service
  110. ##
  111. annotations: {}
  112. labels: {}
  113. clusterIP: ""
  114. ## Port for deepflow-server Service to listen on
  115. ##
  116. ports:
  117. - name: querier
  118. port: 20416
  119. targetPort: 20416
  120. nodePort:
  121. protocol: TCP
  122. - name: health-check
  123. port: 20417
  124. targetPort: 20417
  125. nodePort: "{{ .Values.global.nodePort.deepflowServerhealthCheck }}"
  126. protocol: TCP
  127. - name: grpc
  128. port: 20035
  129. targetPort: 20035
  130. nodePort:
  131. protocol: TCP
  132. - name: grpc-30035
  133. port: 30035
  134. targetPort: 20035
  135. nodePort: "{{ .Values.global.nodePort.deepflowServerGrpc }}"
  136. protocol: TCP
  137. - name: ssl-grpc
  138. port: 20135
  139. targetPort: 20135
  140. nodePort: # "{{ .Values.global.nodePort.deepflowServerSslGrpc }}"
  141. protocol: TCP
  142. - name: ingester
  143. port: 20033
  144. targetPort: 20033
  145. nodePort:
  146. protocol: TCP
  147. - name: ingester-30033
  148. port: 30033
  149. targetPort: 20033
  150. nodePort: "{{ .Values.global.nodePort.deepflowServerIngester }}"
  151. protocol: TCP
  152. ## Additional ports to open for server service
  153. additionalPorts: []
  154. externalIPs: []
  155. loadBalancerIP: ""
  156. loadBalancerSourceRanges: []
  157. ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
  158. externalTrafficPolicy: Cluster
  159. ## Service type
  160. ##
  161. type: NodePort
  162. resources: {}
  163. # We usually recommend not to specify default resources and to leave this as a conscious
  164. # choice for the user. This also increases chances charts run on environments with little
  165. # resources, such as Minikube. If you do want to specify resources, uncomment the following
  166. # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  167. # limits:
  168. # cpu: 100m
  169. # memory: 128Mi
  170. # requests:
  171. # cpu: 100m
  172. # memory: 128Mi
  173. nodeSelector: {}
  174. podAntiAffinityLabelSelector: {}
  175. podAntiAffinityTermLabelSelector: []
  176. podAffinityLabelSelector: []
  177. podAffinityTermLabelSelector: []
  178. nodeAffinityLabelSelector: []
  179. nodeAffinityTermLabelSelector: []
  180. extraVolumeMounts: []
  181. # - name: extra-volume-0
  182. # mountPath: /mnt/volume0
  183. # readOnly: true
  184. # existingClaim: volume-claim
  185. # - name: extra-volume-1
  186. # mountPath: /mnt/volume1
  187. # readOnly: true
  188. # hostPath: /usr/shared/
  189. app:
  190. replicas: "1"
  191. ## Pod Labels
  192. podLabels: {}
  193. hostNetwork: "{{ .Values.global.hostNetwork }}"
  194. dnsPolicy: "{{ .Values.global.dnsPolicy }}"
  195. readinessProbe:
  196. tcpSocket:
  197. port: app
  198. failureThreshold: 3
  199. initialDelaySeconds: 15
  200. periodSeconds: 10
  201. successThreshold: 1
  202. livenessProbe:
  203. failureThreshold: 3
  204. initialDelaySeconds: 15
  205. periodSeconds: 20
  206. successThreshold: 1
  207. tcpSocket:
  208. port: app
  209. timeoutSeconds: 1
  210. service:
  211. ## Configuration for deepflow querier service
  212. ##
  213. annotations: {}
  214. labels: {}
  215. clusterIP: ""
  216. ## Port for deepflow querier service to listen on
  217. ##
  218. ports:
  219. - name: app
  220. port: 20418
  221. targetPort: 20418
  222. ## Port to expose on each node
  223. ## Only used if service.type is 'NodePort'
  224. ##
  225. nodePort:
  226. protocol: TCP
  227. ## Additional ports to open for deepflow querier service
  228. additionalPorts: []
  229. externalIPs: []
  230. loadBalancerIP: ""
  231. loadBalancerSourceRanges: []
  232. ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
  233. ##
  234. externalTrafficPolicy: Cluster
  235. ## Service type
  236. ##
  237. type: ClusterIP
  238. resources: {}
  239. nodeSelector: {}
  240. podAntiAffinityLabelSelector: []
  241. podAntiAffinityTermLabelSelector: []
  242. podAffinityLabelSelector: []
  243. podAffinityTermLabelSelector: []
  244. nodeAffinityLabelSelector: []
  245. nodeAffinityTermLabelSelector: []
  246. tolerations: []
  247. # - key: "key1"
  248. # operator: "Equal"
  249. # value: "value1"
  250. # effect: "NoSchedule"
  251. config:
  252. tridentTypeForUnkonwVtap: 0
  253. configmap:
  254. server.yaml:
  255. # logfile path
  256. log-file: /var/log/deepflow/server.log
  257. # loglevel: "debug/info/warn/error"
  258. log-level: info
  259. controller:
  260. # controller http listenport
  261. listen-port: 20417
  262. # grpc server port
  263. grpc-port: 20035
  264. # grpc max message lenth default 100M
  265. grpc-max-message-length: 104857600
  266. # kubeconfig
  267. kubeconfig:
  268. # election
  269. election-namespace: "{{ $.Release.Namespace }}"
  270. election-name: "{{ $.Release.Name }}-server"
  271. mysql:
  272. database: deepflow
  273. user-name: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.username}}{{ else }}root{{end}}"
  274. user-password: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.password}}{{ else }}{{ .Values.global.password.mysql }}{{end}}"
  275. #Please ignore this
  276. host: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.ip}}{{ else }}{{ $.Release.Name }}-mysql{{end}}"
  277. port: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.port}}{{ else }}30130{{end}}"
  278. timeout: 30
  279. clickhouse:
  280. database: flow_tag
  281. user-name: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.username }}{{ else }}default{{end}}"
  282. port: 9000
  283. host: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Release.Name }}-external-clickhouse{{ else }}{{ $.Release.Name }}-clickhouse{{end}}"
  284. user-password: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.password }}{{ else }}{{end}}"
  285. trisolaris:
  286. chrony:
  287. host: "{{ tpl .Values.global.ntpServer . }}"
  288. port: 123
  289. timeout: 1
  290. trident-type-for-unkonw-vtap: "{{ .Values.config.tridentTypeForUnkonwVtap }}"
  291. querier:
  292. # querier http listenport
  293. listen-port: 20416
  294. clickhouse:
  295. database: flow_tag
  296. user-name: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.username }}{{ else }}default{{end}}"
  297. port: 9000
  298. host: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Release.Name }}-external-clickhouse{{ else }}{{ $.Release.Name }}-clickhouse{{end}}"
  299. user-password: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.password }}{{ else }}{{end}}"
  300. timeout: 60
  301. ingester:
  302. #otlp-exporter:
  303. # enabled: false
  304. # addr: otel-collector-opentelemetry-collector.open-telemetry.svc.cluster.local:4317
  305. # queue-count: 2 # parallelism of sender
  306. # queue-size: 10000 # size of each exporter queue
  307. # l7-enabled: true
  308. # otel-enabled: true # unsurport now
  309. ckdb:
  310. # use internal or external ckdb
  311. external: "{{ $.Values.global.externalClickHouse.enabled }}"
  312. host: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Release.Name }}-external-clickhouse{{ else }}{{ $.Release.Name }}-clickhouse{{end}}"
  313. port: 9000
  314. # if `external` is 'true', default value is 'default', else 'df_cluster'
  315. cluster-name: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.clusterName}}{{end}}"
  316. # if `external` is 'true', default value 'default', else 'df_storage'
  317. storage-policy: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.storagePolicy}}{{end}}"
  318. ckdb-auth:
  319. username: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.username }}{{ else }}default{{end}}"
  320. # '#','@' special characters are not supported in passwords
  321. password: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.password }}{{ else }}{{end}}"
  322. es-syslog: false
  323. app.yaml:
  324. app:
  325. # logfile path
  326. log-file: /var/log/deepflow/app.log
  327. # loglevel: "debug/info/warn/error"
  328. log-level: info
  329. # app http listenport
  330. listen-port: 20418
  331. # http request/response timeout
  332. http_request_timeout: 600
  333. http_response_timeout: 600
  334. querier:
  335. host: '{{ include "deepflow.fullname" . }}-server'
  336. port: 20416
  337. timeout: 60
  338. controller:
  339. host: '{{ include "deepflow.fullname" . }}-server'
  340. port: 20417
  341. timeout: 60
  342. spec:
  343. l7_tracing_limit: 100
  344. clickhouse:
  345. enabled: true
  346. # Default values for clickhouse.
  347. # This is a YAML-formatted file.
  348. # Declare variables to be passed into your templates.
  349. replicas: "{{ .Values.global.replicas }}"
  350. hostNetwork: "{{ .Values.global.hostNetwork }}"
  351. dnsPolicy: "{{ .Values.global.dnsPolicy }}"
  352. podManagementPolicy: "{{ .Values.global.podManagementPolicy }}"
  353. image:
  354. ## ClickHouse Dockerhub Image repository: clickhouse/clickhouse-server
  355. repository: "{{ .Values.global.image.repository }}/clickhouse-server"
  356. pullPolicy: Always
  357. # Overrides the image tag whose default is the chart appVersion.
  358. tag: 22.8.6.71
  359. timezone: "{{ .Values.global.timezone }}"
  360. imagePullSecrets: []
  361. nameOverride: ""
  362. fullnameOverride: ""
  363. podAnnotations: {}
  364. podSecurityContext: {}
  365. # fsGroup: 2000
  366. securityContext: {}
  367. # capabilities:
  368. # drop:
  369. # - ALL
  370. # readOnlyRootFilesystem: true
  371. # runAsNonRoot: true
  372. # runAsUser: 1000
  373. storageConfig:
  374. ## persistentVolumeClaim/hostPath
  375. ## If you use hostPath, you must configure nodeAffinityLabelSelector, otherwise your data will be lost when Pod drifts, ignored allInOneLocalStorage=true
  376. ## 如果使用hostPath存储clickhouse数据,则必须配置nodeAffinityLabelSelector,避免pod漂移导致数据丢失,allInOneLocalStorage=true 时忽略
  377. type: persistentVolumeClaim
  378. generateType: "{{ if $.Values.global.allInOneLocalStorage }}hostPath{{ else }}{{$.Values.storageConfig.type}}{{end}}" #Please ignore this
  379. hostPath: /opt/deepflow-clickhouse
  380. persistence:
  381. - name: clickhouse-path
  382. accessModes:
  383. - ReadWriteOnce
  384. size: 20Gi
  385. annotations:
  386. storageClass: "{{ .Values.global.storageClass }}"
  387. # selector:
  388. # matchLabels:
  389. # app.kubernetes.io/name: clickhouse
  390. - name: clickhouse-storage-path
  391. accessModes:
  392. - ReadWriteOnce
  393. size: 30Gi
  394. annotations:
  395. storageClass: "{{ .Values.global.storageClass }}"
  396. # selector:
  397. # matchLabels:
  398. # app.kubernetes.io/name: clickhouse
  399. s3StorageEnabled: false
  400. clickhouse:
  401. interserverHttpPort: 9009
  402. maxConcurrentQueries: 2000
  403. ## 单次查询最大内存 (bytes)
  404. maxMemoryUsage: 10000000000
  405. maxQuerySize: 10737418240
  406. maxAstElements: 2000000
  407. maxExpandedAstElements: 2000000
  408. connectTimeout: 500
  409. backgroudPoolSize: 32
  410. service:
  411. ## Configuration for ClickHouse service
  412. ##
  413. annotations: {}
  414. labels: {}
  415. clusterIP: ""
  416. ## Port for ClickHouse Service to listen on
  417. ##
  418. ports:
  419. - name: http-monitor-port
  420. port: 8123
  421. targetPort: 8123
  422. nodePort:
  423. protocol: TCP
  424. - name: tcp-port
  425. port: 9000
  426. targetPort: 9000
  427. nodePort:
  428. protocol: TCP
  429. - name: interserver-http-port
  430. port: 9009
  431. targetPort: 9009
  432. nodePort:
  433. protocol: TCP
  434. ## Additional ports to open for server service
  435. additionalPorts: []
  436. externalIPs: []
  437. loadBalancerIP: ""
  438. loadBalancerSourceRanges: []
  439. ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
  440. externalTrafficPolicy: Cluster
  441. ## Service type
  442. ##
  443. type: ClusterIP
  444. resources: {}
  445. # We usually recommend not to specify default resources and to leave this as a conscious
  446. # choice for the user. This also increases chances charts run on environments with little
  447. # resources, such as Minikube. If you do want to specify resources, uncomment the following
  448. # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  449. # limits:
  450. # cpu: 100m
  451. # memory: 128Mi
  452. # requests:
  453. # cpu: 100m
  454. # memory: 128Mi
  455. nodeSelector: {}
  456. tolerations: []
  457. podAntiAffinityLabelSelector:
  458. - labelSelector:
  459. - key: app
  460. operator: In
  461. values: clickhouse
  462. topologyKey: "kubernetes.io/hostname"
  463. podAntiAffinityTermLabelSelector: []
  464. podAffinityLabelSelector:
  465. - labelSelector:
  466. - key: app #your label key
  467. operator: In # In、NotIn、Exists、 DoesNotExist
  468. values: deepflow #your label value, Multiple values separated by commas
  469. topologyKey: "kubernetes.io/hostname"
  470. podAffinityTermLabelSelector:
  471. - topologyKey: kubernetes.io/hostname
  472. weight: 10
  473. labelSelector:
  474. - key: app
  475. operator: In
  476. values: deepflow
  477. - key: component
  478. operator: In
  479. values: deepflow-server
  480. nodeAffinityLabelSelector:
  481. # If you use hostPath, you must configure nodeAffinityLabelSelector, otherwise your data will be lost when Pod drifts
  482. # 如果使用hostPath存储mysql数据,则必须配置nodeAffinityLabelSelector,避免pod漂移导致数据丢失
  483. - matchExpressions:
  484. - key: kubernetes.io/hostname
  485. operator: In
  486. values: cest-3
  487. nodeAffinityTermLabelSelector: []
  488. mysql:
  489. enabled: true
  490. hostNetwork: "false"
  491. dnsPolicy: ClusterFirst
  492. imagePullSecrets: []
  493. nameOverride: ""
  494. fullnameOverride: ""
  495. password: "{{ .Values.global.password.mysql }}"
  496. timezone: "{{ .Values.global.timezone }}"
  497. podAnnotations: {}
  498. image:
  499. ## MySQL Dockerhub Image repository: mysql
  500. repository: "{{ .Values.global.image.repository }}/mysql"
  501. pullPolicy: Always
  502. # Overrides the image tag whose default is the chart appVersion.
  503. tag: 8.0.31
  504. podSecurityContext: {}
  505. # fsGroup: 2000
  506. securityContext:
  507. ## If your mysql cannot start with hostPath, please open Privileged
  508. ## 如果你的mysql使用hostPath无法启动,请打开privileged
  509. # privileged: true
  510. # capabilities:
  511. # drop:
  512. # - ALL
  513. # readOnlyRootFilesystem: false
  514. # runAsNonRoot: false
  515. # runAsUser: 0
  516. storageConfig:
  517. ## persistentVolumeClaim/hostPath
  518. ## If you use hostPath, you must configure nodeAffinityLabelSelector, otherwise your data will be lost when Pod drifts
  519. ## 如果使用hostPath存储mysql数据,则必须配置nodeAffinityLabelSelector,避免pod漂移导致数据丢失
  520. type: persistentVolumeClaim
  521. generateType: "{{ if $.Values.global.allInOneLocalStorage }}hostPath{{ else }}{{$.Values.storageConfig.type}}{{end}}" #Please ignore this
  522. hostPath: /opt/deepflow-mysql
  523. hostPathChownContainerEnabled: true
  524. persistence:
  525. storageClass: "{{ .Values.global.storageClass }}"
  526. annotations:
  527. "helm.sh/resource-policy": keep
  528. # existingClaim: your-claim-pvc-name
  529. accessMode: ReadWriteOnce
  530. size: 30Gi
  531. service:
  532. ## Configuration for ClickHouse service
  533. ##
  534. annotations: {}
  535. labels: {}
  536. clusterIP: ""
  537. ## Port for ClickHouse Service to listen on
  538. ##
  539. ports:
  540. - name: tcp
  541. port: 30130
  542. targetPort: 30130
  543. nodePort:
  544. protocol: TCP
  545. ## Additional ports to open for server service
  546. additionalPorts: []
  547. externalIPs: []
  548. loadBalancerIP: ""
  549. loadBalancerSourceRanges: []
  550. ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
  551. externalTrafficPolicy: Cluster
  552. ## Service type
  553. ##
  554. type: ClusterIP
  555. resources: {}
  556. # We usually recommend not to specify default resources and to leave this as a conscious
  557. # choice for the user. This also increases chances charts run on environments with little
  558. # resources, such as Minikube. If you do want to specify resources, uncomment the following
  559. # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  560. # limits:
  561. # cpu: 100m
  562. # memory: 128Mi
  563. # requests:
  564. # cpu: 100m
  565. # memory: 128Mi
  566. nodeSelector: {}
  567. tolerations: []
  568. podAntiAffinityLabelSelector: []
  569. podAntiAffinityTermLabelSelector: []
  570. podAffinityLabelSelector: []
  571. podAffinityTermLabelSelector: []
  572. nodeAffinityLabelSelector:
  573. # If you use hostPath, you must configure nodeAffinityLabelSelector, otherwise your data will be lost when Pod drifts
  574. # 如果使用hostPath存储mysql数据,则必须配置nodeAffinityLabelSelector,避免pod漂移导致数据丢失
  575. - matchExpressions:
  576. - key: kubernetes.io/hostname
  577. operator: In
  578. values: cest-3
  579. nodeAffinityTermLbelSelector: []
  580. deepflow-agent:
  581. enabled: true
  582. image:
  583. repository: "{{ .Values.global.image.repository }}/deepflow-agent"
  584. pullPolicy: "{{ .Values.global.image.pullPolicy }}"
  585. # Overrides the image tag whose default is the chart appVersion.
  586. tag: v6.1.7
  587. imagePullSecrets: []
  588. nameOverride: ""
  589. agentFullnameOverride: "deepflow-agent"
  590. podAnnotations: {}
  591. nodeIPInjection: true
  592. podSecurityContext: {}
  593. # fsGroup: 2000
  594. hostNetwork: "true"
  595. ## Mount the netns hostPath directory read-only
  596. netns:
  597. mount: true
  598. extraVolumeMounts: []
  599. securityContext:
  600. # privileged: true
  601. capabilities:
  602. add:
  603. - SYS_ADMIN ## Permission required for collecting K8s information and eBPF data
  604. - SYS_RESOURCE ## Permissions required to collect eBPF data
  605. - SYS_PTRACE ## Permission required for collecting K8s information
  606. - NET_ADMIN ## Indicates the permission for collecting AF_PACKET traffic
  607. - NET_RAW ## Indicates the permission for collecting AF_PACKET traffic
  608. - IPC_LOCK ## optional MAP_LOCKED MAP_NORESERVE: Indicates the permission for collecting AF_PACKET traffic, It can significantly degrade performance when not available
  609. #- BPF ## Optionally, eBPF does not require SYS_ADMIN in kernel Linux 5.8+ and uses a combination of BPF and PERFMON instead
  610. #- PERFMON ## Optionally, eBPF does not require SYS_ADMIN in kernel Linux 5.8+ and uses a combination of BPF and PERFMON instead
  611. # readOnlyRootFilesystem: true
  612. # runAsNonRoot: true
  613. # runAsUser: 1000
  614. ## File read and write permissions required for collecting eBPF data (Optional. If you do not have the permission and the content does not meet expectations, the performance will be significantly reduced. You can set the content in advance.)
  615. ## sysctl -w net.core.bpf_jit_enable=1
  616. sysctlInitContainer:
  617. enabled: true
  618. service:
  619. ## Configuration for ClickHouse service
  620. ##
  621. annotations: {}
  622. labels: {}
  623. clusterIP: ""
  624. ## Port for ClickHouse Service to listen on
  625. ##
  626. ports:
  627. - name: receive
  628. port: 80
  629. targetPort: receive
  630. nodePort:
  631. protocol: TCP
  632. ## Additional ports to open for server service
  633. additionalPorts: []
  634. externalIPs: []
  635. loadBalancerIP: ""
  636. loadBalancerSourceRanges: []
  637. ## Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
  638. externalTrafficPolicy: Cluster
  639. ## Service type
  640. ##
  641. type: ClusterIP
  642. deepflowServerNodeIPS:
  643. - '{{ include "deepflow.fullname" . }}-server'
  644. kubernetesClusterId:
  645. agentGroupId:
  646. ## This command takes effect when agent-group-config external_agent_http_proxy_enabled=1 is configured using deepflow-ctl
  647. ## Set the port to the agent-group-config port
  648. externalAgentHttpProxyPort: 38086
  649. resources:
  650. limits:
  651. cpu: 1000m
  652. memory: 768Mi
  653. requests:
  654. cpu: 100m
  655. memory: 128Mi
  656. nodeSelector: {}
  657. tolerations: []
  658. podAntiAffinityLabelSelector: []
  659. podAntiAffinityTermLabelSelector: []
  660. podAffinityLabelSelector: []
  661. podAffinityTermLabelSelector: []
  662. nodeAffinityLabelSelector: []
  663. nodeAffinityTermLabelSelector: []
  664. grafana:
  665. enabled: true
  666. namespaceOverride: ""
  667. ## ForceDeployDatasources Create datasource configmap even if grafana deployment has been disabled
  668. ##
  669. forceDeployDatasources: false
  670. ## ForceDeployDashboard Create dashboard configmap even if grafana deployment has been disabled
  671. ##
  672. forceDeployDashboards: false
  673. ## Deploy default dashboards
  674. ##
  675. defaultDashboardsEnabled: true
  676. ## Timezone for the default dashboards
  677. ## Other options are: browser or a specific timezone, i.e. Europe/Luxembourg
  678. ##
  679. defaultDashboardsTimezone: utc
  680. adminPassword: deepflow
  681. image:
  682. ## Grafana aliyun Image repository: registry.cn-beijing.aliyuncs.com/deepflow-ce/grafana
  683. repository: grafana/grafana
  684. # Overrides the Grafana image tag whose default is the chart appVersion
  685. tag: ""
  686. sha: ""
  687. pullPolicy: Always
  688. service:
  689. enabled: true
  690. type: NodePort
  691. rbac:
  692. create: true
  693. ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true)
  694. # useExistingRole: name-of-some-(cluster)role
  695. pspEnabled: false
  696. namespaced: true
  697. grafana.ini:
  698. paths:
  699. plugins: /var/lib/grafana/plugins
  700. analytics:
  701. check_for_updates: true
  702. log:
  703. mode: console
  704. database:
  705. type: mysql
  706. host: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.ip}}{{ else }}{{ $.Release.Name }}-mysql{{end}}:{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.port}}{{ else }}30130{{end}}"
  707. name: grafana
  708. user: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.username}}{{ else }}root{{end}}"
  709. password: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.password}}{{ else }}{{ .Values.global.password.mysql }}{{end}}"
  710. plugins:
  711. allow_loading_unsigned_plugins: deepflow-querier-datasource,deepflow-apptracing-panel,deepflow-topo-panel
  712. extraInitContainers:
  713. - name: init-custom-plugins
  714. image: "{{ .Values.global.image.repository }}/deepflow-init-grafana:v6.1.7"
  715. imagePullPolicy: "{{ tpl .Values.global.image.pullPolicy . }}"
  716. volumeMounts:
  717. - name: custom-plugins
  718. mountPath: /var/lib/grafana/plugins
  719. - name: init-grafana-ds-dh
  720. image: "{{ .Values.global.image.repository }}/deepflow-init-grafana-ds-dh:latest"
  721. imagePullPolicy: "{{ tpl .Values.global.image.pullPolicy . }}"
  722. volumeMounts:
  723. - name: deepflow-dashboards
  724. mountPath: /tmp/dashboards
  725. - name: grafana-dashboards-config
  726. mountPath: /etc/grafana/provisioning/dashboards
  727. - name: grafana-datasources-config
  728. mountPath: /etc/grafana/provisioning/datasources
  729. extraEmptyDirMounts:
  730. - name: custom-plugins
  731. mountPath: /var/lib/grafana/plugins
  732. - name: deepflow-dashboards
  733. mountPath: /tmp/dashboards
  734. - name: grafana-dashboards-config
  735. mountPath: /etc/grafana/provisioning/dashboards
  736. - name: grafana-datasources-config
  737. mountPath: /etc/grafana/provisioning/datasources
  738. env:
  739. TZ: "Asia/Shanghai"
  740. DEEPFLOW_REQUEST_URL: 'http://{{ include "deepflow.fullname" . }}-server:20416'
  741. DEEPFLOW_TRACEURL: 'http://{{ include "deepflow.fullname" . }}-app:20418'
  742. MYSQL_URL: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.ip}}{{ else }}{{ $.Release.Name }}-mysql{{end}}:{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.port}}{{ else }}30130{{end}}"
  743. MYSQL_USER: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.username}}{{ else }}root{{end}}"
  744. MYSQL_PASSWORD: "{{ if $.Values.global.externalMySQL.enabled }}{{$.Values.global.externalMySQL.password}}{{ else }}{{ .Values.global.password.mysql }}{{end}}"
  745. CLICKHOUSE_SERVER: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Release.Name }}-external-clickhouse{{ else }}{{ $.Release.Name }}-clickhouse{{end}}"
  746. CLICKHOUSE_USER: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.username }}{{ else }}default{{end}}"
  747. CLICKHOUSE_PASSWORD: "{{ if $.Values.global.externalClickHouse.enabled }}{{ $.Values.global.externalClickHouse.password }}{{ else }}{{end}}"
  748. ingress:
  749. enabled: false
  750. # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
  751. # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
  752. # ingressClassName: nginx
  753. # Values can be templated
  754. annotations: {}
  755. # kubernetes.io/ingress.class: nginx
  756. # kubernetes.io/tls-acme: "true"
  757. labels: {}
  758. path: /
  759. # pathType is only for k8s >= 1.1=
  760. pathType: Prefix
  761. hosts:
  762. - chart-example.local
  763. ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
  764. extraPaths: []
  765. # - path: /*
  766. # backend:
  767. # serviceName: ssl-redirect
  768. # servicePort: use-annotation
  769. ## Or for k8s > 1.19
  770. # - path: /*
  771. # pathType: Prefix
  772. # backend:
  773. # service:
  774. # name: ssl-redirect
  775. # port:
  776. # name: use-annotation
  777. tls: []
  778. # - secretName: chart-example-tls
  779. # hosts:
  780. # - chart-example.local