diff --git a/ansible/roles/kolla-ansible/defaults/main.yml b/ansible/roles/kolla-ansible/defaults/main.yml index 63e1cbd6ba4ec2531803364f30033efefc8bb72b..8a3ff899efc8f28a11f785628b6c5c475ded4b43 100644 --- a/ansible/roles/kolla-ansible/defaults/main.yml +++ b/ansible/roles/kolla-ansible/defaults/main.yml @@ -21,6 +21,9 @@ kolla_ansible_venv_python: python3 # Extra requirements to install inside the kolla-ansible virtualenv. kolla_ansible_venv_extra_requirements: [] +# Path to a requirements.yml file for Ansible collections. +kolla_ansible_requirements_yml: "{{ kolla_ansible_venv }}/share/kolla-ansible/requirements.yml" + # Virtualenv directory where Kolla-ansible's ansible modules will execute # remotely on the target nodes. If None, no virtualenv will be used. kolla_ansible_target_venv: diff --git a/ansible/roles/kolla-ansible/tasks/install.yml b/ansible/roles/kolla-ansible/tasks/install.yml index 95bea4da80156995b83a2121483f132dc9a4870b..c1fd6ac36d39b3dfe485c570dabede8078b7e9d2 100644 --- a/ansible/roles/kolla-ansible/tasks/install.yml +++ b/ansible/roles/kolla-ansible/tasks/install.yml @@ -106,3 +106,10 @@ extra_args: "{% if kolla_upper_constraints_file %}-c {{ kolla_upper_constraints_file }}{% endif %}" virtualenv: "{{ kolla_ansible_venv }}" virtualenv_python: "{{ kolla_ansible_venv_python }}" + +- name: Ensure Ansible collections are installed + command: + cmd: >- + ansible-galaxy collection install + -r {{ kolla_ansible_requirements_yml }} + -p {{ kolla_ansible_venv }}/share/kolla-ansible/ansible/collections/ diff --git a/playbooks/kayobe-base/pre.yml b/playbooks/kayobe-base/pre.yml index 304a8d80b0b839129beeaac3be4ba45b045f03e3..b6e7db53be696f12c1fcdad85262dd8e4de7419c 100644 --- a/playbooks/kayobe-base/pre.yml +++ b/playbooks/kayobe-base/pre.yml @@ -42,6 +42,13 @@ vars: kayobe_galaxy_requirements_src_dir: "{{ kayobe_src_dir }}" + - name: Update kolla-ansible requirements.yml + include_role: + name: kayobe-galaxy-requirements + vars: + kayobe_galaxy_requirements_src_dir: "{{ kolla_ansible_src_dir }}" + kayobe_galaxy_requirements_dest_path: "/tmp/kolla-ansible-requirements.yml" + - block: - name: Ensure previous kayobe directory exists file: @@ -76,4 +83,14 @@ # TODO(mgoddard): Always do this when previous release is Yoga. when: previous_release != 'xena' + - name: Update kolla-ansible requirements.yml + include_role: + name: kayobe-galaxy-requirements + vars: + kayobe_galaxy_requirements_src_dir: "{{ previous_kolla_ansible_src_dir }}" + kayobe_galaxy_requirements_branch: "stable/{{ previous_release | lower }}" + kayobe_galaxy_requirements_dest_path: "/tmp/previous-kolla-ansible-requirements.yml" + # TODO(mgoddard): Always do this when previous release is Yoga. + when: previous_release != 'xena' + when: is_upgrade diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2 index ba970bc50da457963369e563e512afe826cf46df..ab14f9940a2590e2ecf0dd3d9dc5ef8c63a97d15 100644 --- a/playbooks/kayobe-overcloud-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2 @@ -14,6 +14,7 @@ kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/opensta kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}" kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}" kolla_ansible_source_version: "{{ zuul.projects['opendev.org/openstack/kolla-ansible'].checkout }}" +kolla_ansible_requirements_yml: "/tmp/kolla-ansible-requirements.yml" kolla_openstack_logging_debug: True pip_upper_constraints_file: "/tmp/upper-constraints.txt" diff --git a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 index 85dc34453640616e25fd62e0c5a33585a7090129..f679ce13504de6171c86eec442f5d398d4e40801 100644 --- a/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-upgrade-base/overrides.yml.j2 @@ -15,7 +15,10 @@ kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/opensta kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}" kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}" kolla_ansible_source_version: "{{ zuul.projects['opendev.org/openstack/kolla-ansible'].checkout }}" +kolla_ansible_requirements_yml: "/tmp/kolla-ansible-requirements.yml" pip_upper_constraints_file: "/tmp/upper-constraints.txt" +{% else %} +kolla_ansible_requirements_yml: "/tmp/previous-kolla-ansible-requirements.yml" {% endif %} kolla_openstack_logging_debug: true diff --git a/playbooks/kayobe-seed-base/overrides.yml.j2 b/playbooks/kayobe-seed-base/overrides.yml.j2 index 5c9c948c28621b63c202d9af88e8ca624bce5517..df0b5364565b8083091d7ee4f13071dbd69b3068 100644 --- a/playbooks/kayobe-seed-base/overrides.yml.j2 +++ b/playbooks/kayobe-seed-base/overrides.yml.j2 @@ -16,6 +16,7 @@ kolla_source_url: "/tmp/kolla" kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}" kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}" kolla_ansible_source_version: "{{ zuul.projects['opendev.org/openstack/kolla-ansible'].checkout }}" +kolla_ansible_requirements_yml: "/tmp/kolla-ansible-requirements.yml" kolla_openstack_logging_debug: True pip_upper_constraints_file: "/tmp/upper-constraints.txt" diff --git a/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2 b/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2 index 54780e97ad293794bb369448e9acc68ae607613a..5b13be360b9a34e1641447a725358448685c2a9b 100644 --- a/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2 +++ b/playbooks/kayobe-seed-upgrade-base/overrides.yml.j2 @@ -15,7 +15,10 @@ kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/opensta kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}" kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}" kolla_ansible_source_version: "{{ zuul.projects['opendev.org/openstack/kolla-ansible'].checkout }}" +kolla_ansible_requirements_yml: "/tmp/kolla-ansible-requirements.yml" pip_upper_constraints_file: "/tmp/upper-constraints.txt" +{% else %} +kolla_ansible_requirements_yml: "/tmp/previous-kolla-ansible-requirements.yml" {% endif %} kolla_openstack_logging_debug: True diff --git a/playbooks/kayobe-seed-vm-base/overrides.yml.j2 b/playbooks/kayobe-seed-vm-base/overrides.yml.j2 index 35a46c3193d2d90702e2afa5e60ac27060dfb542..1b85b171e2d573ff58f1607ebc6c2c25daa9a7a9 100644 --- a/playbooks/kayobe-seed-vm-base/overrides.yml.j2 +++ b/playbooks/kayobe-seed-vm-base/overrides.yml.j2 @@ -11,6 +11,7 @@ kolla_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/opensta kolla_source_version: "{{ zuul.projects['opendev.org/openstack/kolla'].checkout }}" kolla_ansible_source_url: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}" kolla_ansible_source_version: "{{ zuul.projects['opendev.org/openstack/kolla-ansible'].checkout }}" +kolla_ansible_requirements_yml: "/tmp/kolla-ansible-requirements.yml" kolla_openstack_logging_debug: True pip_upper_constraints_file: "/tmp/upper-constraints.txt" diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index d7968c7754583e542fa7016402d5161f93187221..2b2ba3c330f057733d84ac54e95b71ed334fc693 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -79,6 +79,7 @@ ansible_collection_kolla_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/ansible-collection-kolla'].src_dir }}" kayobe_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kayobe'].src_dir }}" kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kayobe-config-dev'].src_dir }}" + kolla_ansible_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/kolla-ansible'].src_dir }}" previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}" previous_kayobe_config_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe-config' }}" requirements_src_dir: "{{ ansible_env.PWD ~ '/' ~ zuul.projects['opendev.org/openstack/requirements'].src_dir }}"