fluentd.j2 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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. spec:
  26. serviceAccountName: "{{ daemonset_serviceAccount }}"
  27. nodeSelector:
  28. {{ fluentd_nodeselector_key }}: "{{ fluentd_nodeselector_value }}"
  29. containers:
  30. - name: "{{ daemonset_container_name }}"
  31. image: "{{ openshift_logging_fluentd_image_prefix }}{{ daemonset_name }}:{{ openshift_logging_fluentd_image_version }}"
  32. imagePullPolicy: Always
  33. securityContext:
  34. privileged: true
  35. resources:
  36. limits:
  37. cpu: {{ openshift_logging_fluentd_cpu_limit }}
  38. memory: {{ openshift_logging_fluentd_memory_limit }}
  39. requests:
  40. memory: {{ openshift_logging_fluentd_memory_limit }}
  41. volumeMounts:
  42. - name: runlogjournal
  43. mountPath: /run/log/journal
  44. - name: varlog
  45. mountPath: /var/log
  46. - name: varlibdockercontainers
  47. mountPath: /var/lib/docker/containers
  48. readOnly: true
  49. - name: config
  50. mountPath: /etc/fluent/configs.d/user
  51. readOnly: true
  52. - name: certs
  53. mountPath: /etc/fluent/keys
  54. readOnly: true
  55. - name: dockerhostname
  56. mountPath: /etc/docker-hostname
  57. readOnly: true
  58. - name: localtime
  59. mountPath: /etc/localtime
  60. readOnly: true
  61. - name: dockercfg
  62. mountPath: /etc/sysconfig/docker
  63. readOnly: true
  64. - name: dockerdaemoncfg
  65. mountPath: /etc/docker
  66. readOnly: true
  67. - name: filebufferstorage
  68. mountPath: /var/lib/fluentd
  69. {% if openshift_logging_mux_client_mode is defined and
  70. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  71. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  72. - name: muxcerts
  73. mountPath: /etc/fluent/muxkeys
  74. readOnly: true
  75. {% endif %}
  76. env:
  77. - name: "K8S_HOST_URL"
  78. value: "{{ openshift_logging_fluentd_master_url }}"
  79. - name: "ES_HOST"
  80. value: "{{ app_host }}"
  81. - name: "ES_PORT"
  82. value: "{{ app_port }}"
  83. - name: "ES_CLIENT_CERT"
  84. value: "{{ openshift_logging_fluentd_app_client_cert }}"
  85. - name: "ES_CLIENT_KEY"
  86. value: "{{ openshift_logging_fluentd_app_client_key }}"
  87. - name: "ES_CA"
  88. value: "{{ openshift_logging_fluentd_app_ca }}"
  89. - name: "OPS_HOST"
  90. value: "{{ ops_host }}"
  91. - name: "OPS_PORT"
  92. value: "{{ ops_port }}"
  93. - name: "OPS_CLIENT_CERT"
  94. value: "{{ openshift_logging_fluentd_ops_client_cert }}"
  95. - name: "OPS_CLIENT_KEY"
  96. value: "{{ openshift_logging_fluentd_ops_client_key }}"
  97. - name: "OPS_CA"
  98. value: "{{ openshift_logging_fluentd_ops_ca }}"
  99. - name: "JOURNAL_SOURCE"
  100. value: "{{ openshift_logging_fluentd_journal_source | default('') }}"
  101. - name: "JOURNAL_READ_FROM_HEAD"
  102. value: "{{ openshift_logging_fluentd_journal_read_from_head | lower }}"
  103. - name: "BUFFER_QUEUE_LIMIT"
  104. value: "{{ openshift_logging_fluentd_buffer_queue_limit }}"
  105. - name: "BUFFER_SIZE_LIMIT"
  106. value: "{{ openshift_logging_fluentd_buffer_size_limit }}"
  107. - name: "FLUENTD_CPU_LIMIT"
  108. valueFrom:
  109. resourceFieldRef:
  110. containerName: "{{ daemonset_container_name }}"
  111. resource: limits.cpu
  112. - name: "FLUENTD_MEMORY_LIMIT"
  113. valueFrom:
  114. resourceFieldRef:
  115. containerName: "{{ daemonset_container_name }}"
  116. resource: limits.memory
  117. - name: "FILE_BUFFER_LIMIT"
  118. value: "{{ openshift_logging_fluentd_file_buffer_limit | default('1Gi') }}"
  119. {% if openshift_logging_mux_client_mode is defined and
  120. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  121. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  122. - name: "MUX_CLIENT_MODE"
  123. value: "{{ openshift_logging_mux_client_mode }}"
  124. {% endif %}
  125. {% if openshift_logging_install_eventrouter is defined and openshift_logging_install_eventrouter %}
  126. - name: "TRANSFORM_EVENTS"
  127. value: "true"
  128. {% endif %}
  129. {% if openshift_logging_fluentd_remote_syslog is defined and openshift_logging_fluentd_remote_syslog %}
  130. - name: USE_REMOTE_SYSLOG
  131. value: "true"
  132. {% endif %}
  133. {% if openshift_logging_fluentd_remote_syslog_host is defined %}
  134. - name: REMOTE_SYSLOG_HOST
  135. value: "{{ openshift_logging_fluentd_remote_syslog_host }}"
  136. {% endif %}
  137. {% if openshift_logging_fluentd_remote_syslog_port is defined %}
  138. - name: REMOTE_SYSLOG_PORT
  139. value: "{{ openshift_logging_fluentd_remote_syslog_port }}"
  140. {% endif %}
  141. {% if openshift_logging_fluentd_remote_syslog_severity is defined %}
  142. - name: REMOTE_SYSLOG_SEVERITY
  143. value: "{{ openshift_logging_fluentd_remote_syslog_severity }}"
  144. {% endif %}
  145. {% if openshift_logging_fluentd_remote_syslog_facility is defined %}
  146. - name: REMOTE_SYSLOG_FACILITY
  147. value: "{{ openshift_logging_fluentd_remote_syslog_facility }}"
  148. {% endif %}
  149. {% if openshift_logging_fluentd_remote_syslog_remove_tag_prefix is defined %}
  150. - name: REMOTE_SYSLOG_REMOVE_TAG_PREFIX
  151. value: "{{ openshift_logging_fluentd_remote_syslog_remove_tag_prefix }}"
  152. {% endif %}
  153. {% if openshift_logging_fluentd_remote_syslog_tag_key is defined %}
  154. - name: REMOTE_SYSLOG_TAG_KEY
  155. value: "{{ openshift_logging_fluentd_remote_syslog_tag_key }}"
  156. {% endif %}
  157. {% if openshift_logging_fluentd_remote_syslog_use_record is defined %}
  158. - name: REMOTE_SYSLOG_USE_RECORD
  159. value: "{{ openshift_logging_fluentd_remote_syslog_use_record }}"
  160. {% endif %}
  161. {% if openshift_logging_fluentd_remote_syslog_payload_key is defined %}
  162. - name: REMOTE_SYSLOG_PAYLOAD_KEY
  163. value: "{{ openshift_logging_fluentd_remote_syslog_payload_key }}"
  164. {% endif %}
  165. volumes:
  166. - name: runlogjournal
  167. hostPath:
  168. path: /run/log/journal
  169. - name: varlog
  170. hostPath:
  171. path: /var/log
  172. - name: varlibdockercontainers
  173. hostPath:
  174. path: /var/lib/docker/containers
  175. - name: config
  176. configMap:
  177. name: logging-fluentd
  178. - name: certs
  179. secret:
  180. secretName: logging-fluentd
  181. - name: dockerhostname
  182. hostPath:
  183. path: /etc/hostname
  184. - name: localtime
  185. hostPath:
  186. path: /etc/localtime
  187. - name: dockercfg
  188. hostPath:
  189. path: /etc/sysconfig/docker
  190. - name: dockerdaemoncfg
  191. hostPath:
  192. path: /etc/docker
  193. {% if openshift_logging_mux_client_mode is defined and
  194. ((openshift_logging_mux_allow_external is defined and openshift_logging_mux_allow_external | bool) or
  195. (openshift_logging_use_mux is defined and openshift_logging_use_mux | bool)) %}
  196. - name: muxcerts
  197. secret:
  198. secretName: logging-mux
  199. {% endif %}
  200. - name: filebufferstorage
  201. hostPath:
  202. path: "/var/lib/fluentd"