diff --git a/ansible/roles/common/tasks/config.yml b/ansible/roles/common/tasks/config.yml
index b6ba07f8e2..4685791ed7 100644
--- a/ansible/roles/common/tasks/config.yml
+++ b/ansible/roles/common/tasks/config.yml
@@ -33,7 +33,9 @@
     action: "ensure_image"
     common_options: "{{ docker_common_options }}"
     image: "{{ service.image }}"
-  when: service | service_enabled_and_mapped_to_host
+  when:
+    - fluentd_version is not defined or fluentd_binary is not defined
+    - service | service_enabled_and_mapped_to_host
 
 - name: Fetch fluentd image labels
   vars:
@@ -43,12 +45,16 @@
   docker_image_info:
     name: "{{ service.image }}"
   register: fluentd_labels
-  when: service | service_enabled_and_mapped_to_host
+  when:
+    - fluentd_version is not defined or fluentd_binary is not defined
+    - service | service_enabled_and_mapped_to_host
 
 - name: Set fluentd facts
   set_fact:
     fluentd_binary: "{{ fluentd_labels.images.0.ContainerConfig.Labels.fluentd_binary }}"
-  when: common_services.fluentd | service_enabled_and_mapped_to_host
+  when:
+    - fluentd_binary is not defined
+    - common_services.fluentd | service_enabled_and_mapped_to_host
 
 - include_tasks: copy-certs.yml
   when:
diff --git a/releasenotes/notes/optional-fluentd-version-detection-3cb8b8a8ebc02d0a.yaml b/releasenotes/notes/optional-fluentd-version-detection-3cb8b8a8ebc02d0a.yaml
new file mode 100644
index 0000000000..a374924a3e
--- /dev/null
+++ b/releasenotes/notes/optional-fluentd-version-detection-3cb8b8a8ebc02d0a.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - |
+    Adds the ability to override the automatic detection of `fluentd_version`
+    and `fluentd_binary`. These can now be defined as extra variables. This
+    removes the dependency of having docker configured for config generation.