fluentd.j2 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. apiVersion: extensions/v1beta1
  2. kind: "DaemonSet"
  3. metadata:
  4. name: "{{ daemonset_name }}"
  5. labels:
  6. provider: openshift
  7. component: "{{ daemonset_component }}"
  8. logging-infra: "{{ daemonset_component }}"
  9. annotations:
  10. prometheus.io/scrape: "true"
  11. prometheus.io/port: "24231"
  12. prometheus.io/scheme: "http"
  13. spec:
  14. selector:
  15. matchLabels:
  16. provider: openshift
  17. component: "{{ daemonset_component }}"
  18. updateStrategy:
  19. type: RollingUpdate
  20. rollingUpdate:
  21. minReadySeconds: 600
  22. template:
  23. metadata:
  24. name: "{{ daemonset_container_name }}"
  25. labels:
  26. logging-infra: "{{ daemonset_component }}"
  27. provider: openshift
  28. component: "{{ daemonset_component }}"
  29. annotations:
  30. scheduler.alpha.kubernetes.io/critical-pod: ''
  31. spec:
  32. priorityClassName: system-cluster-critical
  33. serviceAccountName: "{{ daemonset_serviceAccount }}"
  34. nodeSelector:
  35. {{ fluentd_nodeselector_key }}: "{{ fluentd_nodeselector_value }}"
  36. containers:
  37. - name: "{{ daemonset_container_name }}"
  38. image: "{{ openshift_logging_fluentd_image }}"
  39. imagePullPolicy: IfNotPresent
  40. securityContext:
  41. privileged: true
  42. {% if (fluentd_memory_limit is defined and fluentd_memory_limit is not none) or (fluentd_cpu_limit is defined and fluentd_cpu_limit is not none) or (fluentd_cpu_request is defined and fluentd_cpu_request is not none) %}
  43. resources:
  44. {% if (fluentd_memory_limit is defined and fluentd_memory_limit is not none) or (fluentd_cpu_limit is defined and fluentd_cpu_limit is not none) %}
  45. limits:
  46. {% if fluentd_cpu_limit is not none %}
  47. cpu: "{{fluentd_cpu_limit}}"
  48. {% endif %}
  49. {% if fluentd_memory_limit is not none %}
  50. memory: "{{fluentd_memory_limit}}"
  51. {% endif %}
  52. {% endif %}
  53. {% if (fluentd_memory_limit is defined and fluentd_memory_limit is not none) or (fluentd_cpu_request is defined and fluentd_cpu_request is not none) %}
  54. requests:
  55. {% if fluentd_cpu_request is not none %}
  56. cpu: "{{fluentd_cpu_request}}"
  57. {% endif %}
  58. {% if fluentd_memory_limit is not none %}
  59. memory: "{{fluentd_memory_limit}}"
  60. {% endif %}
  61. {% endif %}
  62. {% endif %}
  63. volumeMounts:
  64. - name: runlogjournal
  65. mountPath: /run/log/journal
  66. - name: varlog
  67. mountPath: /var/log
  68. - name: varlibdockercontainers
  69. mountPath: /var/lib/docker
  70. readOnly: true
  71. - name: config
  72. mountPath: /etc/fluent/configs.d/user
  73. readOnly: true
  74. - name: certs
  75. mountPath: /etc/fluent/keys
  76. readOnly: true
  77. - name: dockerhostname
  78. mountPath: /etc/docker-hostname
  79. readOnly: true
  80. - name: localtime
  81. mountPath: /etc/localtime
  82. readOnly: true
  83. - name: dockercfg
  84. mountPath: /etc/sysconfig/docker
  85. readOnly: true
  86. - name: dockerdaemoncfg
  87. mountPath: /etc/docker
  88. readOnly: true
  89. - name: filebufferstorage
  90. mountPath: /var/lib/fluentd
  91. {% if openshift_logging_mux_client_mode is defined and
  92. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  93. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  94. - name: muxcerts
  95. mountPath: /etc/fluent/muxkeys
  96. readOnly: true
  97. {% endif %}
  98. env:
  99. - name: "K8S_HOST_URL"
  100. value: "{{ openshift_logging_fluentd_master_url }}"
  101. - name: "ES_HOST"
  102. value: "{{ app_host }}"
  103. - name: "ES_PORT"
  104. value: "{{ app_port }}"
  105. - name: "ES_CLIENT_CERT"
  106. value: "{{ openshift_logging_fluentd_app_client_cert }}"
  107. - name: "ES_CLIENT_KEY"
  108. value: "{{ openshift_logging_fluentd_app_client_key }}"
  109. - name: "ES_CA"
  110. value: "{{ openshift_logging_fluentd_app_ca }}"
  111. - name: "OPS_HOST"
  112. value: "{{ ops_host }}"
  113. - name: "OPS_PORT"
  114. value: "{{ ops_port }}"
  115. - name: "OPS_CLIENT_CERT"
  116. value: "{{ openshift_logging_fluentd_ops_client_cert }}"
  117. - name: "OPS_CLIENT_KEY"
  118. value: "{{ openshift_logging_fluentd_ops_client_key }}"
  119. - name: "OPS_CA"
  120. value: "{{ openshift_logging_fluentd_ops_ca }}"
  121. - name: "JOURNAL_SOURCE"
  122. value: "{{ openshift_logging_fluentd_journal_source | default('') }}"
  123. - name: "JOURNAL_READ_FROM_HEAD"
  124. value: "{{ openshift_logging_fluentd_journal_read_from_head | lower }}"
  125. - name: "BUFFER_QUEUE_LIMIT"
  126. value: "{{ openshift_logging_fluentd_buffer_queue_limit }}"
  127. - name: "BUFFER_SIZE_LIMIT"
  128. value: "{{ openshift_logging_fluentd_buffer_size_limit }}"
  129. - name: "FLUENTD_CPU_LIMIT"
  130. valueFrom:
  131. resourceFieldRef:
  132. containerName: "{{ daemonset_container_name }}"
  133. resource: limits.cpu
  134. - name: "FLUENTD_MEMORY_LIMIT"
  135. valueFrom:
  136. resourceFieldRef:
  137. containerName: "{{ daemonset_container_name }}"
  138. resource: limits.memory
  139. - name: "FILE_BUFFER_LIMIT"
  140. value: "{{ openshift_logging_fluentd_file_buffer_limit | default('256Mi') }}"
  141. {% if openshift_logging_mux_client_mode is defined and
  142. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  143. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  144. - name: "MUX_CLIENT_MODE"
  145. value: "{{ openshift_logging_mux_client_mode }}"
  146. {% endif %}
  147. {% if openshift_logging_install_eventrouter is defined and openshift_logging_install_eventrouter %}
  148. - name: "TRANSFORM_EVENTS"
  149. value: "true"
  150. {% endif %}
  151. {% if openshift_logging_fluentd_remote_syslog is defined and openshift_logging_fluentd_remote_syslog %}
  152. - name: USE_REMOTE_SYSLOG
  153. value: "true"
  154. {% endif %}
  155. {% if openshift_logging_fluentd_remote_syslog_host is defined %}
  156. - name: REMOTE_SYSLOG_HOST
  157. value: "{{ openshift_logging_fluentd_remote_syslog_host }}"
  158. {% endif %}
  159. {% if openshift_logging_fluentd_remote_syslog_port is defined %}
  160. - name: REMOTE_SYSLOG_PORT
  161. value: "{{ openshift_logging_fluentd_remote_syslog_port }}"
  162. {% endif %}
  163. {% if openshift_logging_fluentd_remote_syslog_severity is defined %}
  164. - name: REMOTE_SYSLOG_SEVERITY
  165. value: "{{ openshift_logging_fluentd_remote_syslog_severity }}"
  166. {% endif %}
  167. {% if openshift_logging_fluentd_remote_syslog_facility is defined %}
  168. - name: REMOTE_SYSLOG_FACILITY
  169. value: "{{ openshift_logging_fluentd_remote_syslog_facility }}"
  170. {% endif %}
  171. {% if openshift_logging_fluentd_remote_syslog_remove_tag_prefix is defined %}
  172. - name: REMOTE_SYSLOG_REMOVE_TAG_PREFIX
  173. value: "{{ openshift_logging_fluentd_remote_syslog_remove_tag_prefix }}"
  174. {% endif %}
  175. {% if openshift_logging_fluentd_remote_syslog_tag_key is defined %}
  176. - name: REMOTE_SYSLOG_TAG_KEY
  177. value: "{{ openshift_logging_fluentd_remote_syslog_tag_key }}"
  178. {% endif %}
  179. {% if openshift_logging_fluentd_remote_syslog_use_record is defined %}
  180. - name: REMOTE_SYSLOG_USE_RECORD
  181. value: "{{ openshift_logging_fluentd_remote_syslog_use_record }}"
  182. {% endif %}
  183. {% if openshift_logging_fluentd_remote_syslog_payload_key is defined %}
  184. - name: REMOTE_SYSLOG_PAYLOAD_KEY
  185. value: "{{ openshift_logging_fluentd_remote_syslog_payload_key }}"
  186. {% endif %}
  187. {% if audit_container_engine %}
  188. - name: "AUDIT_CONTAINER_ENGINE"
  189. value: "{{ audit_container_engine | lower }}"
  190. {% endif %}
  191. {% if audit_container_engine %}
  192. - name: "NODE_NAME"
  193. valueFrom:
  194. fieldRef:
  195. fieldPath: spec.nodeName
  196. {% endif %}
  197. {% if audit_log_file != '' %}
  198. - name: AUDIT_FILE
  199. value: "{{ audit_log_file }}"
  200. {% endif %}
  201. {% if audit_pos_log_file != '' %}
  202. - name: AUDIT_POS_FILE
  203. value: "{{ audit_pos_log_file }}"
  204. {% endif %}
  205. volumes:
  206. - name: runlogjournal
  207. hostPath:
  208. path: /run/log/journal
  209. - name: varlog
  210. hostPath:
  211. path: /var/log
  212. - name: varlibdockercontainers
  213. hostPath:
  214. path: /var/lib/docker
  215. - name: config
  216. configMap:
  217. name: logging-fluentd
  218. - name: certs
  219. secret:
  220. secretName: logging-fluentd
  221. - name: dockerhostname
  222. hostPath:
  223. path: /etc/hostname
  224. - name: localtime
  225. hostPath:
  226. path: /etc/localtime
  227. - name: dockercfg
  228. hostPath:
  229. path: /etc/sysconfig/docker
  230. - name: dockerdaemoncfg
  231. hostPath:
  232. path: /etc/docker
  233. {% if openshift_logging_mux_client_mode is defined and
  234. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  235. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  236. - name: muxcerts
  237. secret:
  238. secretName: logging-mux
  239. {% endif %}
  240. - name: filebufferstorage
  241. hostPath:
  242. path: "/var/lib/fluentd"