From 34bccf2fa4ba42d1efe06f6cf9af4b1e05adf6cd Mon Sep 17 00:00:00 2001 From: Yolanda Robla Date: Fri, 31 Mar 2017 09:26:28 +0200 Subject: [PATCH] Allow looking constraints file from env var In order to make it more flexible, and to consume the upper constraints file from the right branch, allow to consume an exported var, and default to the current path. Change-Id: I57ef2944f4c2b643d240f30cac46ad91662ff538 --- doc/source/howto.rst | 5 +++++ playbooks/roles/bifrost-ironic-install/defaults/main.yml | 1 + .../bifrost-ironic-install/tasks/inspector_install.yml | 4 ++-- playbooks/roles/bifrost-ironic-install/tasks/install.yml | 2 +- .../bifrost-ironic-install/tasks/staging_install.yml | 2 +- .../roles/bifrost-keystone-install/tasks/install.yml | 2 +- .../roles/bifrost-prep-for-install/defaults/main.yml | 1 + .../override_upper_constraints-79f837d8ac58e53d.yaml | 8 ++++++++ 8 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 releasenotes/notes/override_upper_constraints-79f837d8ac58e53d.yaml 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. +