diff --git a/ansible/group_vars/all.yml b/ansible/group_vars/all.yml
index 1c7eaf597a8b4961d28e84d90df1692bd349da02..95631286ba72b7c7b22c11044780e3c1761c9b75 100644
--- a/ansible/group_vars/all.yml
+++ b/ansible/group_vars/all.yml
@@ -1178,6 +1178,9 @@ grafana_public_endpoint: "{{ public_protocol }}://{{ kolla_external_fqdn | put_a
 ironic_internal_endpoint: "{{ internal_protocol }}://{{ ironic_internal_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
 ironic_public_endpoint: "{{ public_protocol }}://{{ ironic_external_fqdn | put_address_in_context('url') }}:{{ ironic_api_port }}"
 
+# Valid options are [ '', redis, etcd ]
+ironic_coordination_backend: "{{ 'redis' if enable_redis|bool else 'etcd' if enable_etcd|bool else '' }}"
+
 ########
 # Swift
 ########
diff --git a/ansible/roles/ironic/templates/ironic-inspector.conf.j2 b/ansible/roles/ironic/templates/ironic-inspector.conf.j2
index 2e5e58fbfc2af9ebef50c77c5cda6b9a5527efb6..d9e34478af33156b3b81afaa0406977a1e225568 100644
--- a/ansible/roles/ironic/templates/ironic-inspector.conf.j2
+++ b/ansible/roles/ironic/templates/ironic-inspector.conf.j2
@@ -73,3 +73,14 @@ driver = {{ ironic_inspector_pxe_filter }}
 [iptables]
 dnsmasq_interface = {{ ironic_dnsmasq_interface }}
 {% endif %}
+
+[coordination]
+{% if ironic_coordination_backend == 'redis' %}
+backend_url = {{ redis_connection_string }}
+{% elif ironic_coordination_backend == 'etcd' %}
+# NOTE(yoctozepto): etcd-compatible tooz drivers do not support multiple endpoints here (verified in Stein, Train)
+# NOTE(yoctozepto): we must use etcd3gw (aka etcd3+http) due to issues with alternative (etcd3) and eventlet (as used by cinder)
+# see https://bugs.launchpad.net/kolla-ansible/+bug/1854932
+# and https://review.opendev.org/466098 for details
+backend_url = etcd3+{{ etcd_protocol }}://{{ 'api' | kolla_address(groups['etcd'][0]) | put_address_in_context('url') }}:{{ etcd_client_port }}
+{% endif %}
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index afe92715c4f9468d6aac329927560ec50b4acc20..d2e6de1edaeba1de2b8b735f797175268286e973 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -599,6 +599,9 @@
 # List of extra kernel parameters passed to the kernel used during inspection
 #ironic_inspector_kernel_cmdline_extras: []
 
+# Valid options are [ '', redis, etcd ]
+#ironic_coordination_backend: "{{ 'redis' if enable_redis|bool else 'etcd' if enable_etcd|bool else '' }}"
+
 ######################################
 # Manila - Shared File Systems Options
 ######################################
diff --git a/releasenotes/notes/ironic-inspector-coordination-19d47c1d2849d56f.yaml b/releasenotes/notes/ironic-inspector-coordination-19d47c1d2849d56f.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a1c2cf99b260132d84a1f72c8b4351b2c882cf94
--- /dev/null
+++ b/releasenotes/notes/ironic-inspector-coordination-19d47c1d2849d56f.yaml
@@ -0,0 +1,6 @@
+---
+features:
+  - |
+    Adds support for configuring a coordination backend for Ironic
+    Inspector via the ``ironic_coordination_backend`` variable.
+    Possible values are ``redis`` or ``etcd``.