From 06c619179933103f2e701d3e6d33857c5078071e Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Mon, 17 Jan 2022 16:31:36 +0000 Subject: [PATCH] Install openstack.kolla collection This patch adds the openstack.kolla collection to the Galaxy requirements. It is installed from the OpenDev git repository. The collection is not yet used by Kayobe. Zuul cross-project dependencies on the ansible-collection-kolla repository are supported (and used in this commit). Story: 2009854 Task: 44503 Depends-On: https://review.opendev.org/c/openstack/ansible-collection-kolla/+/820165/ Change-Id: I91cbac839f816a00ac54bc4a350f44b5ae457cc3 --- playbooks/kayobe-base/pre.yml | 16 +++++++++++++++ requirements.yml | 4 ++++ roles/kayobe-galaxy-requirements/README.rst | 6 ++++++ .../defaults/main.yml | 5 +++++ .../kayobe-galaxy-requirements/tasks/main.yml | 20 +++++++++++++++++++ zuul.d/jobs.yaml | 2 ++ 6 files changed, 53 insertions(+) create mode 100644 roles/kayobe-galaxy-requirements/README.rst create mode 100644 roles/kayobe-galaxy-requirements/defaults/main.yml create mode 100644 roles/kayobe-galaxy-requirements/tasks/main.yml 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' }}"