From 6fd0e65b1057b3b7f124a93c2e47b0fd55db2b93 Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Tue, 23 Oct 2018 09:28:22 +0100 Subject: [PATCH] playbooks: Use --upgrade-strategy option for openSUSE distributions This is a variation of 483e3a7a6ff2186b68b00c29b35213bee8074ebe ("Fix for proper installation"). PIP >= 10 gets really upset if one is mixing distro and pip packages and openSUSE is being hit by this problem in the gates. As such, lets use --upgrade-strategy only-if-needed for openSUSE by default until we can properly isolate the bifrost installation into its own virtual environment. Change-Id: Idac094ecc749250f023dd49b2ad9cd220158f248 --- playbooks/roles/bifrost-ironic-install/defaults/main.yml | 4 ++++ .../roles/bifrost-ironic-install/tasks/inspector_install.yml | 4 ++-- playbooks/roles/bifrost-ironic-install/tasks/install.yml | 2 +- playbooks/roles/bifrost-keystone-install/defaults/main.yml | 4 ++++ playbooks/roles/bifrost-keystone-install/tasks/install.yml | 4 ++-- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index b8d9db4be..31d73048d 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -277,3 +277,7 @@ ironic_inspector: host: "localhost" # DEPRECATED(TheJulia): Inheritance of ironic_db_password params # should be removed in Queens. + +# NOTE(hwoarang): openSUSE distros may come with recent pip versions so +# upgrade only what's necessary +pip_opts: "{{ ((ansible_os_family | lower == 'suse') or (enable_venv | bool)) | ternary('--upgrade-strategy only-if-needed', '--force-reinstall') }}" diff --git a/playbooks/roles/bifrost-ironic-install/tasks/inspector_install.yml b/playbooks/roles/bifrost-ironic-install/tasks/inspector_install.yml index bcd0ddd65..c93df6b45 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 {% if enable_venv | bool %}--upgrade-strategy only-if-needed{% else %}--force-reinstall{% endif %} -c {{ upper_constraints_file }}" + extra_args="--no-cache-dir --upgrade {{ pip_opts }} -c {{ upper_constraints_file }}" - name: "Inspector - PIP client install" include: pip_install.yml @@ -27,4 +27,4 @@ state=latest sourcedir={{ ironicinspectorclient_git_folder }} source_install={{ ironicinspectorclient_source_install }} - extra_args="--no-cache-dir --upgrade {% if enable_venv | bool %}--upgrade-strategy only-if-needed{% else %}--force-reinstall{% endif %} -c {{ upper_constraints_file }}" + extra_args="--no-cache-dir --upgrade {{ pip_opts }} -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 c88f7d2d0..f97208bf4 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/install.yml @@ -124,7 +124,7 @@ state=latest sourcedir={{ ironic_git_folder }} source_install=true - extra_args="--no-cache-dir --upgrade -c {{ upper_constraints_file }}" + extra_args="--no-cache-dir --upgrade {{ pip_opts }} -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-keystone-install/defaults/main.yml b/playbooks/roles/bifrost-keystone-install/defaults/main.yml index 9977f6a2b..7a38fd4d8 100644 --- a/playbooks/roles/bifrost-keystone-install/defaults/main.yml +++ b/playbooks/roles/bifrost-keystone-install/defaults/main.yml @@ -60,3 +60,7 @@ keystone: username: keystone password: ChangeThisPa55w0rd host: localhost + +# NOTE(hwoarang): openSUSE distros may come with recent pip versions so +# upgrade only what's necessary +pip_opts: "{{ ((ansible_os_family | lower == 'suse') or (enable_venv | bool)) | ternary('--upgrade-strategy only-if-needed', '--force-reinstall') }}" diff --git a/playbooks/roles/bifrost-keystone-install/tasks/install.yml b/playbooks/roles/bifrost-keystone-install/tasks/install.yml index 47b6888ea..90df8b643 100644 --- a/playbooks/roles/bifrost-keystone-install/tasks/install.yml +++ b/playbooks/roles/bifrost-keystone-install/tasks/install.yml @@ -63,7 +63,7 @@ state=latest sourcedir={{ keystone_git_folder }} source_install={{ keystone_source_install | bool }} - extra_args="--no-cache-dir --upgrade {% if enable_venv | bool %}--upgrade-strategy only-if-needed{% else %}--force-reinstall{% endif %} -c {{ upper_constraints_file }}" + extra_args="--no-cache-dir --upgrade {{ pip_opts }} -c {{ upper_constraints_file }}" when: - skip_install is not defined - enable_venv | bool == true @@ -98,7 +98,7 @@ state=latest sourcedir={{ keystone_git_folder }} source_install={{ keystone_source_install | bool }} - extra_args="--no-cache-dir --upgrade {% if enable_venv | bool %}--upgrade-strategy only-if-needed{% else %}--force-reinstall{% endif %} -c {{ upper_constraints_file }}" + extra_args="--no-cache-dir --upgrade {{ pip_opts }} -c {{ upper_constraints_file }}" when: - skip_install is not defined - enable_venv | bool == false