diff --git a/doc/source/howto.rst b/doc/source/howto.rst index 3baefe502..a27488df3 100644 --- a/doc/source/howto.rst +++ b/doc/source/howto.rst @@ -248,6 +248,11 @@ Note: playbook due to the fact that is an IO-intensive operation that can take a great deal of time. +- In order to cap requirements for installation, an ``upper_constraints_file`` + setting is defined. This is consuming the ``UPPER_CONSTRAINTS_FILE`` env + var by default, to properly integrate with CI systems, and will default + to ``/opt/stack/requirements/upper-constraints.txt`` file if not present. + Manually test with Virtual Machines =================================== diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index 437f596e0..8a29affe4 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -76,6 +76,7 @@ ironicclient_git_folder: /opt/stack/python-ironicclient shade_git_folder: /opt/stack/shade dib_git_folder: /opt/stack/diskimage-builder reqs_git_folder: /opt/stack/requirements +upper_constraints_file: "{{ lookup('env', 'UPPER_CONSTRAINTS_FILE') | default(reqs_git_folder + '/upper-constraints.txt', True) }}" staging_drivers_git_folder: /opt/stack/ironic-staging-drivers ironicinspector_git_folder: /opt/stack/ironic-inspector ironicinspectorclient_git_folder: /opt/stack/python-ironic-inspector-client diff --git a/playbooks/roles/bifrost-ironic-install/tasks/inspector_install.yml b/playbooks/roles/bifrost-ironic-install/tasks/inspector_install.yml index 239e4f4d2..86de9197d 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/inspector_install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/inspector_install.yml @@ -19,7 +19,7 @@ state=latest sourcedir={{ ironicinspector_git_folder }} source_install={{ ironicinspector_source_install }} - extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ reqs_git_folder }}/upper-constraints.txt" + extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ upper_constraints_file }}" - name: "Inspector - PIP client install" include: pip_install.yml @@ -27,4 +27,4 @@ state=latest source_dir={{ ironicinspectorclient_git_folder }} sourc_install={{ ironicinspectorclient_source_install }} - extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ reqs_git_folder }}/upper-constraints.txt" + extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ upper_constraints_file }}" diff --git a/playbooks/roles/bifrost-ironic-install/tasks/install.yml b/playbooks/roles/bifrost-ironic-install/tasks/install.yml index 5760768eb..867fbab86 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/install.yml @@ -113,7 +113,7 @@ state=latest sourcedir={{ ironic_git_folder }} source_install=true - extra_args="--no-cache-dir --upgrade -c {{ reqs_git_folder }}/upper-constraints.txt" + extra_args="--no-cache-dir --upgrade -c {{ upper_constraints_file }}" when: skip_install is not defined - name: "Install ironic-inspector to permit use of inspection interface" diff --git a/playbooks/roles/bifrost-ironic-install/tasks/staging_install.yml b/playbooks/roles/bifrost-ironic-install/tasks/staging_install.yml index 0e2624714..d2fa6479e 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/staging_install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/staging_install.yml @@ -19,4 +19,4 @@ state=latest sourcedir={{ staging_drivers_git_folder }} source_install={{ staging_drivers_source_install }} - extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ reqs_git_folder }}/upper-constraints.txt" + extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ upper_constraints_file }}" diff --git a/playbooks/roles/bifrost-keystone-install/tasks/install.yml b/playbooks/roles/bifrost-keystone-install/tasks/install.yml index dfb5ac6bd..eb7d31d0b 100644 --- a/playbooks/roles/bifrost-keystone-install/tasks/install.yml +++ b/playbooks/roles/bifrost-keystone-install/tasks/install.yml @@ -44,5 +44,5 @@ state=latest sourcedir={{ keystone_git_folder }} source_install={{ keystone_source_install | bool }} - extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ reqs_git_folder }}/upper-constraints.txt" + extra_args="--no-cache-dir --upgrade --force-reinstall -c {{ upper_constraints_file }}" when: skip_install is not defined diff --git a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml index 9a341f00c..e068a6f64 100644 --- a/playbooks/roles/bifrost-prep-for-install/defaults/main.yml +++ b/playbooks/roles/bifrost-prep-for-install/defaults/main.yml @@ -19,6 +19,7 @@ ironicinspectorclient_git_folder: "{{ git_root}}/python-ironic-inspector-client" shade_git_folder: "{{ git_root}}/shade" dib_git_folder: "{{ git_root }}/diskimage-builder" reqs_git_folder: "{{ git_root }}/requirements" +upper_constraints_file: "{{ lookup('env', 'UPPER_CONSTRAINTS_FILE') | default(reqs_git_folder + '/upper-constraints.txt', True) }}" staging_drivers_git_folder: "{{ git_root }}/ironic-staging-drivers" keystone_git_folder: "{{ git_root}}/keystone" # *_git_branch can be overridden for stable branch testing diff --git a/releasenotes/notes/override_upper_constraints-79f837d8ac58e53d.yaml b/releasenotes/notes/override_upper_constraints-79f837d8ac58e53d.yaml new file mode 100644 index 000000000..bab27408e --- /dev/null +++ b/releasenotes/notes/override_upper_constraints-79f837d8ac58e53d.yaml @@ -0,0 +1,8 @@ +--- +features: + - Allow consuming upper_constraints_file from an env + var UPPER_CONSTRAINTS_FILE. This will be specially + useful for OpenStack CI, where this var is defined + on each job run, pointing to the right requirements + file depending on branch. +