diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 1e0f3904..d5aadb94 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -64,6 +64,7 @@ - name: openstack/openstack-ansible-rsyslog_server - name: openstack/openstack-ansible-tests - name: openstack/requirements + pre-run: zuul.d/playbooks/pre-gate-cleanup.yml run: zuul.d/playbooks/run.yml post-run: zuul.d/playbooks/post.yml diff --git a/zuul.d/playbooks/pre-gate-cleanup.yml b/zuul.d/playbooks/pre-gate-cleanup.yml new file mode 100644 index 00000000..5335f5d3 --- /dev/null +++ b/zuul.d/playbooks/pre-gate-cleanup.yml @@ -0,0 +1,56 @@ +--- +# Copyright 2020, VEXXHOST, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: Cleanup gate images + hosts: all + become: yes + become_user: root + tasks: + - name: Gather variables for each operating system + include_vars: "{{ ansible_os_family | lower }}.yml" + + - name: Remove known problem distro packages + package: + name: "{{ gate_packages_remove }}" + state: absent + + - name: Remove known problem pip packages + pip: + name: + - virtualenv + - tox + - appdirs + - backports + - contextlib2 + - distlib + - filelock + - importlib_metadata + - importlib_resources + - six + - zipp + state: absent + + - name: Remove package blacklist for yum/dnf + lineinfile: + dest: "{{ (ansible_pkg_mgr == 'dnf') | ternary('/etc/dnf/dnf.conf', '/etc/yum.conf') }}" + regexp: "^exclude=" + state: absent + when: ansible_pkg_mgr in ['dnf', 'yum'] + + - name: Remove package blacklist for zypper + file: + path: /etc/zypp/locks + state: absent + when: ansible_pkg_mgr == 'zypper' diff --git a/zuul.d/playbooks/vars/debian.yml b/zuul.d/playbooks/vars/debian.yml new file mode 100644 index 00000000..ea28458b --- /dev/null +++ b/zuul.d/playbooks/vars/debian.yml @@ -0,0 +1,19 @@ +--- +# Copyright 2020, VEXXHOST, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +gate_packages_remove: + - python-virtualenv + - python3-virtualenv + - virtualenv diff --git a/zuul.d/playbooks/vars/redhat.yml b/zuul.d/playbooks/vars/redhat.yml new file mode 100644 index 00000000..f08f68b4 --- /dev/null +++ b/zuul.d/playbooks/vars/redhat.yml @@ -0,0 +1,18 @@ +--- +# Copyright 2020, VEXXHOST, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +gate_packages_remove: + - python3-virtualenv + - python-virtualenv diff --git a/zuul.d/playbooks/vars/suse.yml b/zuul.d/playbooks/vars/suse.yml new file mode 100644 index 00000000..121e0cab --- /dev/null +++ b/zuul.d/playbooks/vars/suse.yml @@ -0,0 +1,18 @@ +--- +# Copyright 2020, VEXXHOST, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +gate_packages_remove: + - python-virtualenv + - python2-virtualenv