diff --git a/ansible/group_vars/all/kolla b/ansible/group_vars/all/kolla
index f36648698..64bd67066 100644
--- a/ansible/group_vars/all/kolla
+++ b/ansible/group_vars/all/kolla
@@ -136,6 +136,14 @@ controller_container_image_sets:
 # Dict mapping Jinja2 block names in kolla's Docker images to their contents.
 kolla_build_blocks: {}
 
+# Dict mapping image customization variable names to their values.
+# Each variable takes the form:
+# <image name>_<customization>_<operation>
+# Hyphens in the image name are replaced with underscores. The customization is
+# most commonly packages. The operation should be one of override, append or
+# remove. The value should be a list.
+kolla_build_customizations: {}
+
 ###############################################################################
 # Kolla-ansible configuration.
 
diff --git a/ansible/roles/kolla-build/defaults/main.yml b/ansible/roles/kolla-build/defaults/main.yml
index 8c1012c34..86c2bd8c2 100644
--- a/ansible/roles/kolla-build/defaults/main.yml
+++ b/ansible/roles/kolla-build/defaults/main.yml
@@ -26,3 +26,11 @@ kolla_sources: {}
 
 # Dict mapping Jinja2 block names in kolla's Docker images to their contents.
 kolla_build_blocks: {}
+
+# Dict mapping image customization variable names to their values.
+# Each variable takes the form:
+# <image name>_<customization>_<operation>
+# Hyphens in the image name are replaced with underscores. The customization is
+# most commonly packages. The operation should be one of override, append or
+# remove. The value should be a list.
+kolla_build_customizations: {}
diff --git a/ansible/roles/kolla-build/templates/template-override.j2.j2 b/ansible/roles/kolla-build/templates/template-override.j2.j2
index eb45061dd..ac8957267 100644
--- a/ansible/roles/kolla-build/templates/template-override.j2.j2
+++ b/ansible/roles/kolla-build/templates/template-override.j2.j2
@@ -10,3 +10,8 @@
 {{ '{% endblock %}' }}
 
 {% endfor %}
+
+{% for var_name, var_value in kolla_build_customizations.items() %}
+{{ '{% set ' ~ var_name ~ ' = ' ~ var_value | to_json ~ ' %}' }}
+
+{% endfor %}
diff --git a/etc/kayobe/kolla.yml b/etc/kayobe/kolla.yml
index c467e7eb9..c154d2276 100644
--- a/etc/kayobe/kolla.yml
+++ b/etc/kayobe/kolla.yml
@@ -55,6 +55,14 @@
 # Dict mapping Jinja2 block names in kolla's Docker images to their contents.
 #kolla_build_blocks:
 
+# Dict mapping image customization variable names to their values.
+# Each variable takes the form:
+# <image name>_<customization>_<operation>
+# Hyphens in the image name are replaced with underscores. The customization is
+# most commonly packages. The operation should be one of override, append or
+# remove. The value should be a list.
+#kolla_build_customizations:
+
 ###############################################################################
 # Kolla-ansible configuration.