diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla
index 58fce931e5ce5c1e5c043e6807fcda7b92697444..64295feef9342615ff0b640bc98a8e7424a9df65 100644
--- a/ansible/group_vars/all/kolla
+++ b/ansible/group_vars/all/kolla
@@ -114,6 +114,8 @@ overcloud_container_image_regex_map:
     enabled: "{{ kolla_enable_aodh | bool }}"
   - regex: barbican
     enabled: "{{ kolla_enable_barbican | bool }}"
+  - regex: blazar
+    enabled: "{{ kolla_enable_blazar | bool }}"
   - regex: ceilometer
     enabled: "{{ kolla_enable_ceilometer | bool }}"
   - regex: ceph
@@ -331,6 +333,7 @@ kolla_ansible_become: true
 
 kolla_enable_aodh: "no"
 kolla_enable_barbican: "no"
+kolla_enable_blazar: "no"
 kolla_enable_central_logging: "no"
 kolla_enable_ceph: "no"
 kolla_enable_ceilometer: "no"
diff --git a/ansible/kolla-openstack.yml b/ansible/kolla-openstack.yml
index f6c5bed1cbb97dac2949ca52e5ccc791a7e678f7..8f3bbef1eebb545a21c7cba17cdb5c2f7e755250 100644
--- a/ansible/kolla-openstack.yml
+++ b/ansible/kolla-openstack.yml
@@ -100,6 +100,7 @@
             mime: False
           register: stat_result
           with_items:
+            - { name: blazar, file: blazar.conf }
             - { name: ceph, file: ceph.conf }
             - { name: cinder, file: cinder.conf }
             - { name: designate, file: designate.conf }
@@ -205,6 +206,7 @@
         url: "http://{% raw %}{{ api_interface_address }}{% endraw %}:{{ inspector_store_port }}"
         token: fake-token
       # Extra free-form user-provided configuration.
+      kolla_extra_blazar: "{{ kolla_extra_config.blazar | default }}"
       kolla_extra_ceph: "{{ kolla_extra_config.ceph | default }}"
       kolla_extra_cinder: "{{ kolla_extra_config.cinder | default }}"
       kolla_extra_designate: "{{ kolla_extra_config.designate | default }}"
diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml
index dac122865b3f265ddd8c558eb5801c527a6e4fa7..317ba33528a087c3e5b3fdb66f762820296968b1 100644
--- a/ansible/roles/kolla-ansible/defaults/main.yml
+++ b/ansible/roles/kolla-ansible/defaults/main.yml
@@ -229,6 +229,7 @@ kolla_openstack_logging_debug:
 # OpenStack services can be enabled or disabled with these options
 #kolla_enable_aodh:
 #kolla_enable_barbican:
+#kolla_enable_blazar:
 #kolla_enable_ceilometer:
 #kolla_enable_central_logging:
 #kolla_enable_ceph:
diff --git a/ansible/roles/kolla-ansible/tests/test-extras.yml b/ansible/roles/kolla-ansible/tests/test-extras.yml
index 6dfab3773e7b39f2b052c41f67679f68430cde08..815684e6fc52bfe681401ce281ae39d5850b704e 100644
--- a/ansible/roles/kolla-ansible/tests/test-extras.yml
+++ b/ansible/roles/kolla-ansible/tests/test-extras.yml
@@ -105,6 +105,7 @@
             # Enable everything.
             kolla_enable_aodh: True
             kolla_enable_barbican: True
+            kolla_enable_blazar: True
             kolla_enable_ceilometer: True
             kolla_enable_central_logging: True
             kolla_enable_ceph: True
@@ -237,6 +238,7 @@
               # https://github.com/ansible/ansible/issues/19305.
               #enable_aodh: True
               #enable_barbican: True
+              #enable_blazar: True
               #enable_ceilometer: True
               #enable_central_logging: True
               #enable_ceph: True
diff --git a/ansible/roles/kolla-openstack/defaults/main.yml b/ansible/roles/kolla-openstack/defaults/main.yml
index 9e76d0828975449047c1b28cc7a86935b3b89d8a..d429b830d4b6309c5c44ae09032c27e11823b943 100644
--- a/ansible/roles/kolla-openstack/defaults/main.yml
+++ b/ansible/roles/kolla-openstack/defaults/main.yml
@@ -11,6 +11,15 @@ kolla_node_custom_config_path: /etc/kolla/config
 # Whether to enable Barbican.
 kolla_enable_barbican:
 
+###############################################################################
+# Blazar configuration.
+
+# Whether to enable Blazar.
+kolla_enable_blazar:
+
+# Free form extra configuration to append to blazar.conf.
+kolla_extra_blazar:
+
 ###############################################################################
 # ceph configuration.
 
diff --git a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
index 58669cd54e5356087f1559c4c960a8a35704584a..d780edddc7ba4b06c9a6400571b44c7a571049a9 100644
--- a/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
+++ b/ansible/roles/kolla-openstack/molecule/enable-everything/molecule.yml
@@ -14,6 +14,10 @@ provisioner:
     group_vars:
       all:
         kolla_extra_config_path:
+        kolla_enable_blazar: true
+        kolla_extra_blazar: |
+          [extra-blazar.conf]
+          foo=bar
         kolla_enable_ceph: true
         kolla_extra_ceph: |
           [extra-ceph.conf]
diff --git a/ansible/roles/kolla-openstack/tasks/config.yml b/ansible/roles/kolla-openstack/tasks/config.yml
index 815ea0ffc55e9b064e5f329098b1d42aba57def3..6b10668d2c35928fac099a05694c3b94431cdf54 100644
--- a/ansible/roles/kolla-openstack/tasks/config.yml
+++ b/ansible/roles/kolla-openstack/tasks/config.yml
@@ -13,6 +13,7 @@
     dest: "{{ kolla_node_custom_config_path }}/{{ item.dest }}"
     mode: 0640
   with_items:
+    - { src: blazar.conf.j2, dest: blazar.conf, enabled: "{{ kolla_enable_blazar }}" }
     - { src: ceph.conf.j2, dest: ceph.conf, enabled: "{{ kolla_enable_ceph }}" }
     - { src: cinder.conf.j2, dest: cinder.conf, enabled: "{{ kolla_enable_cinder }}" }
     - { src: designate.conf.j2, dest: designate.conf, enabled: "{{ kolla_enable_designate }}" }
diff --git a/ansible/roles/kolla-openstack/templates/blazar.conf.j2 b/ansible/roles/kolla-openstack/templates/blazar.conf.j2
new file mode 100644
index 0000000000000000000000000000000000000000..aab01021d1c890eec49401fbb167c30c8ec02e05
--- /dev/null
+++ b/ansible/roles/kolla-openstack/templates/blazar.conf.j2
@@ -0,0 +1,9 @@
+# {{ ansible_managed }}
+
+{% if kolla_extra_blazar %}
+#######################
+# Extra configuration
+#######################
+
+{{ kolla_extra_blazar }}
+{% endif %}
diff --git a/ansible/roles/kolla-openstack/vars/main.yml b/ansible/roles/kolla-openstack/vars/main.yml
index 70e52d872a6aa1ad6f530d707caf163f2daa8424..b6d1214f095926035aa4652a57d610272468e1c9 100644
--- a/ansible/roles/kolla-openstack/vars/main.yml
+++ b/ansible/roles/kolla-openstack/vars/main.yml
@@ -14,6 +14,11 @@ kolla_openstack_custom_config:
     dest: "{{ kolla_node_custom_config_path }}/barbican"
     patterns: "*"
     enabled: "{{ kolla_enable_barbican }}"
+  # Blazar.
+  - src: "{{ kolla_extra_config_path }}/blazar"
+    dest: "{{ kolla_node_custom_config_path }}/blazar"
+    patterns: "*"
+    enabled: "{{ kolla_enable_blazar }}"
   # Ceph.
   - src: "{{ kolla_extra_config_path }}/ceph"
     dest: "{{ kolla_node_custom_config_path }}/ceph"
diff --git a/doc/source/configuration/kolla-ansible.rst b/doc/source/configuration/kolla-ansible.rst
index 650d39230285fab88aa029a0a72815f396a6eaa5..b00cde811bbee04da3452d05d03b1bd6531372c3 100644
--- a/doc/source/configuration/kolla-ansible.rst
+++ b/doc/source/configuration/kolla-ansible.rst
@@ -150,6 +150,8 @@ which files are supported.
    File                            Purpose
    =============================== =======================================================
    ``barbican/*``                  Extended Barbican configuration.
+   ``blazar.conf``                 Blazar configuration.
+   ``blazar/*``                    Extended Blazar configuration.
    ``ceph.conf``                   Ceph configuration.
    ``ceph/*``                      Extended Ceph configuration.
    ``cinder.conf``                 Cinder configuration.
diff --git a/releasenotes/notes/add-support-for-custom-blazar-conf-c82ee78f2a92d693.yaml b/releasenotes/notes/add-support-for-custom-blazar-conf-c82ee78f2a92d693.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8a983b5fee6e2a7ad551a6bad19bc558ae732086
--- /dev/null
+++ b/releasenotes/notes/add-support-for-custom-blazar-conf-c82ee78f2a92d693.yaml
@@ -0,0 +1,3 @@
+---
+features:
+  - Adds support for custom Blazar configuration.