diff --git a/ansible/group_vars/all/ipa b/ansible/group_vars/all/ipa
index 66861dd256bdbf1261692ef6cfa85b8a02c06fd5..ef819ec52af0fd8908da1b3f50d999638d84e023 100644
--- a/ansible/group_vars/all/ipa
+++ b/ansible/group_vars/all/ipa
@@ -75,6 +75,10 @@ ipa_build_dib_git_elements: >-
 # List of DIB packages to install. Default is none.
 ipa_build_dib_packages: []
 
+# Upper constraints file for installing packages in the virtual environment
+# used for building IPA images. Default is {{ pip_upper_constraints_file }}.
+ipa_build_upper_constraints_file: "{{ pip_upper_constraints_file }}"
+
 ###############################################################################
 # Ironic Python Agent (IPA) images configuration.
 
diff --git a/ansible/overcloud-ipa-build.yml b/ansible/overcloud-ipa-build.yml
index aa3c199465f3a101d170bb55f95435eb0a8c3310..5092e21cca015faa8dbefc10f3e7e82aa0ee33ee 100644
--- a/ansible/overcloud-ipa-build.yml
+++ b/ansible/overcloud-ipa-build.yml
@@ -29,7 +29,7 @@
           vars:
             os_images_venv: "{{ virtualenv_path }}/ipa-build-dib"
             os_images_package_state: latest
-            os_images_upper_constraints_file: "{{ pip_upper_constraints_file }}"
+            os_images_upper_constraints_file: "{{ ipa_build_upper_constraints_file }}"
             os_images_cache: "{{ image_cache_path }}"
             os_images_common: ""
             os_images_list:
diff --git a/ansible/seed-ipa-build.yml b/ansible/seed-ipa-build.yml
index ddc3ce50bbfb00b79bb0686236b21055219f70e3..898676c1d097beaf48dbd847e320334af7a5bee8 100644
--- a/ansible/seed-ipa-build.yml
+++ b/ansible/seed-ipa-build.yml
@@ -20,7 +20,7 @@
           vars:
             os_images_venv: "{{ virtualenv_path }}/ipa-build-dib"
             os_images_package_state: latest
-            os_images_upper_constraints_file: "{{ pip_upper_constraints_file }}"
+            os_images_upper_constraints_file: "{{ ipa_build_upper_constraints_file }}"
             os_images_cache: "{{ image_cache_path }}"
             os_images_common: ""
             os_images_list:
diff --git a/doc/source/configuration/reference/ironic-python-agent.rst b/doc/source/configuration/reference/ironic-python-agent.rst
index f068912086f39f351d006bb4c38252f71e6de46d..ad3c92e54f1a36c1c2a432a00bd825f7b9415979 100644
--- a/doc/source/configuration/reference/ironic-python-agent.rst
+++ b/doc/source/configuration/reference/ironic-python-agent.rst
@@ -84,6 +84,10 @@ image build``.
     and ``ipa_build_dib_git_elements_extra``.
 ``ipa_build_dib_packages``
     List of DIB packages to install. Default is none.
+``ipa_build_upper_constraints_file``
+    Upper constraints file for installing packages in the virtual environment
+    used for building IPA images. Default is ``{{ pip_upper_constraints_file
+    }}``.
 
 Example: Building IPA images locally
 ------------------------------------
diff --git a/etc/kayobe/ipa.yml b/etc/kayobe/ipa.yml
index bcacbef48f7d73387b7d7cca62b16191a713049f..49236d13aac1d9e24828d01ecf619b6992b37ae2 100644
--- a/etc/kayobe/ipa.yml
+++ b/etc/kayobe/ipa.yml
@@ -61,6 +61,10 @@
 # List of DIB packages to install. Default is none.
 #ipa_build_dib_packages:
 
+# Upper constraints file for installing packages in the virtual environment
+# used for building IPA images. Default is {{ pip_upper_constraints_file }}.
+#ipa_build_upper_constraints_file:
+
 ###############################################################################
 # Ironic Python Agent (IPA) images configuration.
 
diff --git a/releasenotes/notes/ipa-build-upper-constraints-5686abaa161b0d94.yaml b/releasenotes/notes/ipa-build-upper-constraints-5686abaa161b0d94.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..bf44f21004ecdbe4bb09e018ff64889c38639bea
--- /dev/null
+++ b/releasenotes/notes/ipa-build-upper-constraints-5686abaa161b0d94.yaml
@@ -0,0 +1,7 @@
+---
+features:
+  - |
+    Adds the ``ipa_build_upper_constraints_file`` variable to select the upper
+    constraints file used to install diskimage-builder in the virtual
+    environment used for building IPA images. This allows you to install a
+    newer release than the one allowed by the default constraints.