fluentd.j2 9.1 KB

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