diff --git a/playbooks/kayobe-base/pre.yml b/playbooks/kayobe-base/pre.yml index 01314b693..304a8d80b 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 727f9f23b..691240d44 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 000000000..b5774b130 --- /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 000000000..d39009ef8 --- /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 000000000..0fcd197f1 --- /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 74f34712d..d7968c775 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' }}"