|
143 | 143 | create: true
|
144 | 144 | loop: "{{ kayobe_config_custom }}"
|
145 | 145 |
|
| 146 | + - name: Determine OpenStack release |
| 147 | + ansible.builtin.shell: |
| 148 | + cmd: > |
| 149 | + awk -F'=' '/defaultbranch/ {print $2}' {{ src_directory }}/{{ kayobe_config_name }}/.gitreview | |
| 150 | + sed -E "s,(stable|unmaintained)/,," |
| 151 | + register: openstack_release |
| 152 | + changed_when: false |
| 153 | + |
| 154 | + # Yoga and earlier releases require a Kayobe checkout for the symlinks in |
| 155 | + # etc/kayobe/ansible/ to resolve correctly. |
| 156 | + - name: Set a fact about whether a Kayobe source checkout is required |
| 157 | + ansible.builtin.set_fact: |
| 158 | + kayobe_src_required: "{{ openstack_release.stdout != 'zed' and not openstack_release.stdout.startswith('202') }}" |
| 159 | + |
| 160 | + - name: Ensure Kayobe repository is present (Yoga & earlier) |
| 161 | + ansible.builtin.git: |
| 162 | + repo: "{{ kayobe_repo }}" |
| 163 | + version: "{{ kayobe_version or 'stackhpc/' ~ openstack_release.stdout }}" |
| 164 | + dest: "{{ src_directory }}/{{ kayobe_name }}" |
| 165 | + update: false |
| 166 | + when: kayobe_src_required |
| 167 | + |
146 | 168 | - name: Ensure `venvs` directory exists
|
147 | 169 | ansible.builtin.file:
|
148 | 170 | path: "{{ ansible_env.HOME }}/venvs"
|
|
177 | 199 | virtualenv_command: "/usr/bin/python3 -m venv"
|
178 | 200 | state: present
|
179 | 201 |
|
| 202 | + - name: Ensure `kayobe` is installed (Yoga & earlier) |
| 203 | + ansible.builtin.pip: |
| 204 | + name: "{{ src_directory }}/{{ kayobe_name }}/" |
| 205 | + virtualenv: "{{ ansible_env.HOME }}/venvs/kayobe" |
| 206 | + virtualenv_command: "/usr/bin/python3 -m venv" |
| 207 | + state: present |
| 208 | + when: kayobe_src_required |
| 209 | + |
180 | 210 | - name: Ensure vault password is present
|
181 | 211 | ansible.builtin.copy:
|
182 | 212 | src: "{{ vault_password_path }}"
|
|
0 commit comments