fluentd.j2 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  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: originnodecfg
  87. mountPath: /etc/origin/node
  88. readOnly: true
  89. - name: dockerdaemoncfg
  90. mountPath: /etc/docker
  91. readOnly: true
  92. - name: filebufferstorage
  93. mountPath: /var/lib/fluentd
  94. {% if openshift_logging_mux_client_mode is defined and
  95. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  96. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  97. - name: muxcerts
  98. mountPath: /etc/fluent/muxkeys
  99. readOnly: true
  100. {% endif %}
  101. env:
  102. - name: "K8S_HOST_URL"
  103. value: "{{ openshift_logging_fluentd_master_url }}"
  104. - name: "ES_HOST"
  105. value: "{{ app_host }}"
  106. - name: "ES_PORT"
  107. value: "{{ app_port }}"
  108. - name: "ES_CLIENT_CERT"
  109. value: "{{ openshift_logging_fluentd_app_client_cert }}"
  110. - name: "ES_CLIENT_KEY"
  111. value: "{{ openshift_logging_fluentd_app_client_key }}"
  112. - name: "ES_CA"
  113. value: "{{ openshift_logging_fluentd_app_ca }}"
  114. - name: "OPS_HOST"
  115. value: "{{ ops_host }}"
  116. - name: "OPS_PORT"
  117. value: "{{ ops_port }}"
  118. - name: "OPS_CLIENT_CERT"
  119. value: "{{ openshift_logging_fluentd_ops_client_cert }}"
  120. - name: "OPS_CLIENT_KEY"
  121. value: "{{ openshift_logging_fluentd_ops_client_key }}"
  122. - name: "OPS_CA"
  123. value: "{{ openshift_logging_fluentd_ops_ca }}"
  124. - name: "JOURNAL_SOURCE"
  125. value: "{{ openshift_logging_fluentd_journal_source | default('') }}"
  126. - name: "JOURNAL_READ_FROM_HEAD"
  127. value: "{{ openshift_logging_fluentd_journal_read_from_head | lower }}"
  128. - name: "BUFFER_QUEUE_LIMIT"
  129. value: "{{ openshift_logging_fluentd_buffer_queue_limit }}"
  130. - name: "BUFFER_SIZE_LIMIT"
  131. value: "{{ openshift_logging_fluentd_buffer_size_limit }}"
  132. - name: "FLUENTD_CPU_LIMIT"
  133. valueFrom:
  134. resourceFieldRef:
  135. containerName: "{{ daemonset_container_name }}"
  136. resource: limits.cpu
  137. - name: "FLUENTD_MEMORY_LIMIT"
  138. valueFrom:
  139. resourceFieldRef:
  140. containerName: "{{ daemonset_container_name }}"
  141. resource: limits.memory
  142. - name: "FILE_BUFFER_LIMIT"
  143. value: "{{ openshift_logging_fluentd_file_buffer_limit | default('256Mi') }}"
  144. {% if openshift_logging_mux_client_mode is defined and
  145. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  146. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  147. - name: "MUX_CLIENT_MODE"
  148. value: "{{ openshift_logging_mux_client_mode }}"
  149. {% endif %}
  150. {% if openshift_logging_install_eventrouter is defined and openshift_logging_install_eventrouter %}
  151. - name: "TRANSFORM_EVENTS"
  152. value: "true"
  153. {% endif %}
  154. {% if openshift_logging_fluentd_remote_syslog is defined and openshift_logging_fluentd_remote_syslog %}
  155. - name: USE_REMOTE_SYSLOG
  156. value: "true"
  157. {% endif %}
  158. {% if openshift_logging_fluentd_remote_syslog_host is defined %}
  159. - name: REMOTE_SYSLOG_HOST
  160. value: "{{ openshift_logging_fluentd_remote_syslog_host }}"
  161. {% endif %}
  162. {% if openshift_logging_fluentd_remote_syslog_port is defined %}
  163. - name: REMOTE_SYSLOG_PORT
  164. value: "{{ openshift_logging_fluentd_remote_syslog_port }}"
  165. {% endif %}
  166. {% if openshift_logging_fluentd_remote_syslog_severity is defined %}
  167. - name: REMOTE_SYSLOG_SEVERITY
  168. value: "{{ openshift_logging_fluentd_remote_syslog_severity }}"
  169. {% endif %}
  170. {% if openshift_logging_fluentd_remote_syslog_facility is defined %}
  171. - name: REMOTE_SYSLOG_FACILITY
  172. value: "{{ openshift_logging_fluentd_remote_syslog_facility }}"
  173. {% endif %}
  174. {% if openshift_logging_fluentd_remote_syslog_remove_tag_prefix is defined %}
  175. - name: REMOTE_SYSLOG_REMOVE_TAG_PREFIX
  176. value: "{{ openshift_logging_fluentd_remote_syslog_remove_tag_prefix }}"
  177. {% endif %}
  178. {% if openshift_logging_fluentd_remote_syslog_tag_key is defined %}
  179. - name: REMOTE_SYSLOG_TAG_KEY
  180. value: "{{ openshift_logging_fluentd_remote_syslog_tag_key }}"
  181. {% endif %}
  182. {% if openshift_logging_fluentd_remote_syslog_use_record is defined %}
  183. - name: REMOTE_SYSLOG_USE_RECORD
  184. value: "{{ openshift_logging_fluentd_remote_syslog_use_record }}"
  185. {% endif %}
  186. {% if openshift_logging_fluentd_remote_syslog_payload_key is defined %}
  187. - name: REMOTE_SYSLOG_PAYLOAD_KEY
  188. value: "{{ openshift_logging_fluentd_remote_syslog_payload_key }}"
  189. {% endif %}
  190. {% if audit_container_engine %}
  191. - name: "AUDIT_CONTAINER_ENGINE"
  192. value: "{{ audit_container_engine | lower }}"
  193. {% endif %}
  194. {% if audit_container_engine %}
  195. - name: "NODE_NAME"
  196. valueFrom:
  197. fieldRef:
  198. fieldPath: spec.nodeName
  199. {% endif %}
  200. {% if audit_log_file != '' %}
  201. - name: AUDIT_FILE
  202. value: "{{ audit_log_file }}"
  203. {% endif %}
  204. {% if audit_pos_log_file != '' %}
  205. - name: AUDIT_POS_FILE
  206. value: "{{ audit_pos_log_file }}"
  207. {% endif %}
  208. volumes:
  209. - name: runlogjournal
  210. hostPath:
  211. path: /run/log/journal
  212. - name: varlog
  213. hostPath:
  214. path: /var/log
  215. - name: varlibdockercontainers
  216. hostPath:
  217. path: /var/lib/docker
  218. - name: config
  219. configMap:
  220. name: logging-fluentd
  221. - name: certs
  222. secret:
  223. secretName: logging-fluentd
  224. - name: dockerhostname
  225. hostPath:
  226. path: /etc/hostname
  227. - name: localtime
  228. hostPath:
  229. path: /etc/localtime
  230. - name: dockercfg
  231. hostPath:
  232. path: /etc/sysconfig/docker
  233. - name: originnodecfg
  234. hostPath:
  235. path: /etc/origin/node
  236. - name: dockerdaemoncfg
  237. hostPath:
  238. path: /etc/docker
  239. {% if openshift_logging_mux_client_mode is defined and
  240. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  241. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  242. - name: muxcerts
  243. secret:
  244. secretName: logging-mux
  245. {% endif %}
  246. - name: filebufferstorage
  247. hostPath:
  248. path: "/var/lib/fluentd"