diff --git a/playbooks/kayobe-base/pre.yml b/playbooks/kayobe-base/pre.yml index 01314b693fedff2926beb161a1cd6c35e310c0d2..304a8d80b0b839129beeaac3be4ba45b045f03e3 100644 --- a/playbooks/kayobe-base/pre.yml +++ b/playbooks/kayobe-base/pre.yml @@ -36,6 +36,12 @@ content: "{{ ansible_cfg }}" dest: "{{ kayobe_config_src_dir }}/etc/kayobe/ansible.cfg" + - name: Update kayobe requirements.yml + include_role: + name: kayobe-galaxy-requirements + vars: + kayobe_galaxy_requirements_src_dir: "{{ kayobe_src_dir }}" + - block: - name: Ensure previous kayobe directory exists file: @@ -60,4 +66,14 @@ path: "{{ previous_kayobe_src_dir }}/dev/config.sh" line: "export KAYOBE_EXTRA_ARGS=-vvv" regexp: "^#export KAYOBE_EXTRA_ARGS=$" + + - name: Update kayobe requirements.yml + include_role: + name: kayobe-galaxy-requirements + vars: + kayobe_galaxy_requirements_src_dir: "{{ previous_kayobe_src_dir }}" + kayobe_galaxy_requirements_branch: "stable/{{ previous_release | lower }}" + # TODO(mgoddard): Always do this when previous release is Yoga. + when: previous_release != 'xena' + when: is_upgrade diff --git a/requirements.yml b/requirements.yml index 727f9f23b7f78708258d192f77a4dbd9f4e03b23..691240d441aba9bd73f7dc48476c32a7715176a5 100644 --- a/requirements.yml +++ b/requirements.yml @@ -1,4 +1,8 @@ --- +collections: + - name: https://opendev.org/openstack/ansible-collection-kolla + type: git + version: master roles: - src: ahuffman.resolv version: 1.3.1 diff --git a/roles/kayobe-galaxy-requirements/README.rst b/roles/kayobe-galaxy-requirements/README.rst new file mode 100644 index 0000000000000000000000000000000000000000..b5774b1301a7889f7018be939425e65143786d48 --- /dev/null +++ b/roles/kayobe-galaxy-requirements/README.rst @@ -0,0 +1,6 @@ +========================== +Kayobe Galaxy Requirements +========================== + +Ansible role to modify an Ansible Galaxy requirements file to include Ansible +content in Zuul required projects. diff --git a/roles/kayobe-galaxy-requirements/defaults/main.yml b/roles/kayobe-galaxy-requirements/defaults/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..d39009ef8e4ea21305b85b59558d72ae5b02e236 --- /dev/null +++ b/roles/kayobe-galaxy-requirements/defaults/main.yml @@ -0,0 +1,5 @@ +--- +kayobe_galaxy_requirements_src_dir: +kayobe_galaxy_requirements_branch: "{{ zuul.branch }}" +kayobe_galaxy_requirements_src_path: "requirements.yml" +kayobe_galaxy_requirements_dest_path: "{{ kayobe_galaxy_requirements_src_dir }}/{{ kayobe_galaxy_requirements_src_path }}" diff --git a/roles/kayobe-galaxy-requirements/tasks/main.yml b/roles/kayobe-galaxy-requirements/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..0fcd197f169af71a41ed4473d2ea2cc179af6c65 --- /dev/null +++ b/roles/kayobe-galaxy-requirements/tasks/main.yml @@ -0,0 +1,20 @@ +--- +- name: Slurp requirements.yml + command: + cmd: "git show {{ kayobe_galaxy_requirements_branch }}:{{ kayobe_galaxy_requirements_src_path }}" + chdir: "{{ kayobe_galaxy_requirements_src_dir }}" + register: requirements_yml + +- name: Write requirements.yml + copy: + content: "{{ new_requirements | to_nice_yaml }}" + dest: "{{ kayobe_galaxy_requirements_dest_path }}" + vars: + old_requirements: "{{ requirements_yml.stdout | from_yaml }}" + new_requirement: + name: "file://{{ ansible_collection_kolla_src_dir }}" + type: git + version: "{{ kayobe_galaxy_requirements_branch }}" + new_requirements: + collections: "{{ (old_requirements.collections | rejectattr('name', 'search', 'ansible-collection-kolla') | list) + [new_requirement] }}" + roles: "{{ old_requirements.roles | default([]) }}" diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 74f34712de8bfb11e844001c34d6b2f8101acae8..d7968c7754583e542fa7016402d5161f93187221 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -56,6 +56,7 @@ attempts: 5 required-projects: # Include kayobe to ensure other projects can use this job. + - name: openstack/ansible-collection-kolla - name: openstack/kayobe - name: openstack/kayobe-config-dev - name: openstack/kolla @@ -75,6 +76,7 @@ # Name of the release to upgrade from for upgrade jobs. previous_release: xena logs_dir: "/tmp/logs" + 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 }}" previous_kayobe_src_dir: "{{ ansible_env.PWD ~ '/previous/kayobe' }}"