Browse Source

use docker_log_driver and /etc/docker/daemon.json to determine log driver

We check the following variables, if they are defined, in the order listed
below, to see if the journald log driver is set:

* openshift_hosted_logging_use_journal
* docker_log_driver
* openshift.docker.log_driver
* openshift.docker.options (look for '--log-driver=journald')

If none of these are set, we leave openshift_logging_fluentd_use_journal
undefined, and mount both /etc/sysconfig/docker and /etc/docker
(for daemon.json) so that fluentd can determine which log driver is
being used.
Rich Megginson 8 years ago
parent
commit
02a5df1c54

+ 1 - 1
roles/openshift_logging/defaults/main.yml

@@ -72,7 +72,7 @@ openshift_logging_fluentd_nodeselector: "{{ openshift_hosted_logging_fluentd_nod
 openshift_logging_fluentd_cpu_limit: 100m
 openshift_logging_fluentd_memory_limit: 512Mi
 openshift_logging_fluentd_es_copy: false
-openshift_logging_fluentd_use_journal: "{{ openshift_hosted_logging_use_journal | default('') }}"
+openshift_logging_fluentd_use_journal: "{{ openshift_hosted_logging_use_journal if openshift_hosted_logging_use_journal is defined else (docker_log_driver == 'journald') | ternary(True, False) if docker_log_driver is defined else (openshift.docker.log_driver == 'journald') | ternary(True, False) if openshift.docker.log_driver is defined else openshift.docker.options | search('--log-driver=journald') if openshift.docker.options is defined else default(omit) }}"
 openshift_logging_fluentd_journal_source: "{{ openshift_hosted_logging_journal_source | default('') }}"
 openshift_logging_fluentd_journal_read_from_head: "{{ openshift_hosted_logging_journal_read_from_head | default('') }}"
 openshift_logging_fluentd_hosts: ['--all']

+ 6 - 0
roles/openshift_logging/templates/fluentd.j2

@@ -59,6 +59,9 @@ spec:
         - name: dockercfg
           mountPath: /etc/sysconfig/docker
           readOnly: true
+        - name: dockerdaemoncfg
+          mountPath: /etc/docker
+          readOnly: true
 {% if openshift_logging_use_mux_client | bool %}
         - name: muxcerts
           mountPath: /etc/fluent/muxkeys
@@ -154,6 +157,9 @@ spec:
       - name: dockercfg
         hostPath:
           path: /etc/sysconfig/docker
+      - name: dockerdaemoncfg
+        hostPath:
+          path: /etc/docker
 {% if openshift_logging_use_mux_client | bool %}
       - name: muxcerts
         secret: