From e10f176ce1356fc270ade868a97b01dc62902939 Mon Sep 17 00:00:00 2001
From: Rafal Lewandowski <rafal@stackhpc.com>
Date: Mon, 5 Sep 2022 16:29:38 +0200
Subject: [PATCH] Add new DIB upper constraints variables

overcloud-dib: added overcloud_dib_dib_upper_constraints_file
ipa: added ipa_build_dib_upper_constraints_file
added os_images_dib_upper_constraints_file to image build
playbooks

New variables were added to facilitate control over the DIB
upper constraints without changing them for other components.
They are empty by default in order to facilitate Rocky9
image builds.

Change-Id: Ib50dd61685f13c60ace67213ddd1e714a80dece3
---
 ansible/inventory/group_vars/all/ipa               |  4 ++++
 ansible/inventory/group_vars/all/overcloud-dib     |  4 ++++
 ansible/overcloud-host-image-build.yml             |  1 +
 ansible/overcloud-ipa-build.yml                    |  1 +
 .../configuration/reference/overcloud-dib.rst      |  3 +++
 etc/kayobe/ipa.yml                                 |  4 ++++
 etc/kayobe/overcloud-dib.yml                       |  4 ++++
 .../upper_constraints_split-a9548c8127c13535.yaml  | 14 ++++++++++++++
 requirements.yml                                   |  2 +-
 9 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 releasenotes/notes/upper_constraints_split-a9548c8127c13535.yaml

diff --git a/ansible/inventory/group_vars/all/ipa b/ansible/inventory/group_vars/all/ipa
index bf844429..39879a5f 100644
--- a/ansible/inventory/group_vars/all/ipa
+++ b/ansible/inventory/group_vars/all/ipa
@@ -88,6 +88,10 @@ ipa_build_dib_packages: []
 # used for building IPA images. Default is {{ pip_upper_constraints_file }}.
 ipa_build_upper_constraints_file: "{{ pip_upper_constraints_file }}"
 
+# Upper constraints file for installation of DIB to build IPA images.
+# Default is empty string.
+ipa_build_dib_upper_constraints_file: ""
+
 ###############################################################################
 # Ironic Python Agent (IPA) images configuration.
 
diff --git a/ansible/inventory/group_vars/all/overcloud-dib b/ansible/inventory/group_vars/all/overcloud-dib
index 6b0408eb..47f05f88 100644
--- a/ansible/inventory/group_vars/all/overcloud-dib
+++ b/ansible/inventory/group_vars/all/overcloud-dib
@@ -93,3 +93,7 @@ overcloud_dib_git_elements: >-
 # used for building overcloud host disk images. Default is {{
 # pip_upper_constraints_file }}.
 overcloud_dib_upper_constraints_file: "{{ pip_upper_constraints_file }}"
+
+# Upper constraints file for installation of DIB to build overcloud host disk images.
+# Default is empty string.
+overcloud_dib_dib_upper_constraints_file: ""
\ No newline at end of file
diff --git a/ansible/overcloud-host-image-build.yml b/ansible/overcloud-host-image-build.yml
index d895c501..2a156e66 100644
--- a/ansible/overcloud-host-image-build.yml
+++ b/ansible/overcloud-host-image-build.yml
@@ -26,6 +26,7 @@
             os_images_venv: "{{ virtualenv_path }}/overcloud-host-image-dib"
             os_images_package_state: latest
             os_images_upper_constraints_file: "{{ overcloud_dib_upper_constraints_file }}"
+            os_images_dib_upper_constraints_file: "{{ overcloud_dib_dib_upper_constraints_file }}"
             os_images_cache: "{{ image_cache_path }}"
             os_images_common: ""
             os_images_list: "{{ overcloud_dib_host_images }}"
diff --git a/ansible/overcloud-ipa-build.yml b/ansible/overcloud-ipa-build.yml
index 4198c357..d9a76ced 100644
--- a/ansible/overcloud-ipa-build.yml
+++ b/ansible/overcloud-ipa-build.yml
@@ -40,6 +40,7 @@
             os_images_venv: "{{ virtualenv_path }}/ipa-build-dib"
             os_images_package_state: latest
             os_images_upper_constraints_file: "{{ ipa_build_upper_constraints_file }}"
+            os_images_dib_upper_constraints_file: "{{ ipa_build_dib_upper_constraints_file }}"
             os_images_cache: "{{ image_cache_path }}"
             os_images_common: ""
             os_images_list:
diff --git a/doc/source/configuration/reference/overcloud-dib.rst b/doc/source/configuration/reference/overcloud-dib.rst
index 90a1e877..a33d9a7d 100644
--- a/doc/source/configuration/reference/overcloud-dib.rst
+++ b/doc/source/configuration/reference/overcloud-dib.rst
@@ -99,6 +99,9 @@ the configuration drive built by Bifrost during provisioning.
     Upper constraints file for installing packages in the virtual environment
     used for building overcloud host disk images. Default is ``{{
     pip_upper_constraints_file }}``.
+``overcloud_dib_dib_upper_constraints_file``
+    Upper constraints file for installation of DIB to build overcloud
+    host disk images. Default is empty string.
 
 Disk images are built with the following command:
 
diff --git a/etc/kayobe/ipa.yml b/etc/kayobe/ipa.yml
index 81ee9749..5877d039 100644
--- a/etc/kayobe/ipa.yml
+++ b/etc/kayobe/ipa.yml
@@ -68,6 +68,10 @@
 # used for building IPA images. Default is {{ pip_upper_constraints_file }}.
 #ipa_build_upper_constraints_file:
 
+# Upper constraints file for installation of DIB to build IPA images.
+# Default is empty string.
+#ipa_build_dib_upper_constraints_file:
+
 ###############################################################################
 # Ironic Python Agent (IPA) images configuration.
 
diff --git a/etc/kayobe/overcloud-dib.yml b/etc/kayobe/overcloud-dib.yml
index bca69e92..3d95fa65 100644
--- a/etc/kayobe/overcloud-dib.yml
+++ b/etc/kayobe/overcloud-dib.yml
@@ -79,6 +79,10 @@
 # pip_upper_constraints_file }}.
 #overcloud_dib_upper_constraints_file:
 
+# Upper constraints file for installation of DIB to build overcloud host
+# disk images. Default is empty string.
+#overcloud_dib_dib_upper_constraints_file:
+
 ###############################################################################
 # Dummy variable to allow Ansible to accept this file.
 workaround_ansible_issue_8743: yes
diff --git a/releasenotes/notes/upper_constraints_split-a9548c8127c13535.yaml b/releasenotes/notes/upper_constraints_split-a9548c8127c13535.yaml
new file mode 100644
index 00000000..948e62a3
--- /dev/null
+++ b/releasenotes/notes/upper_constraints_split-a9548c8127c13535.yaml
@@ -0,0 +1,14 @@
+---
+upgrade:
+  - |
+    Updates the ``stackhpc.os-images`` to version to 0.16.0. This new releases
+    separates configuration of upper constraints for diskimage-builder (DIB)
+    from those used by the OpenStack SDK and client. This allows operators to
+    use a newer version of DIB while keeping compatible versions of the
+    OpenStack SDK and client. This is configured with the following variables:
+
+    * ``ipa_build_dib_upper_constraints_file`` in ``ipa.yml``
+    * ``overcloud_dib_dib_upper_constraints_file`` in ``overcloud-dib.yml``
+
+    The variables are empty by default in order to allow for Rocky9
+    image builds.
\ No newline at end of file
diff --git a/requirements.yml b/requirements.yml
index 9edf58cf..638aa690 100644
--- a/requirements.yml
+++ b/requirements.yml
@@ -43,7 +43,7 @@ roles:
   - src: stackhpc.mellanox-switch
     version: v1.0.0
   - src: stackhpc.os-images
-    version: v1.15.0
+    version: v1.16.0
   - src: stackhpc.os-ironic-state
     version: v1.3.1
   - src: stackhpc.os-networks
-- 
GitLab