|
2 | 2 | - name: Cluster stack OpenStack E2E test
|
3 | 3 | hosts: all
|
4 | 4 | vars:
|
5 |
| - cluster_stack: "providers/openstack/alpha/1-29" |
6 |
| - cluster_stack_name: "openstack-alpha-1-29" |
7 |
| - cluster_stack_version_name: alpha |
| 5 | + cluster_stack_path: "providers/openstack/scs" |
8 | 6 | project_dir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
|
9 | 7 | cluster_stack_release_dir: "{{ ansible_user_dir }}/.release"
|
10 | 8 | cluster_manifest_dir: "{{ ansible_user_dir }}/cluster_manifest"
|
|
39 | 37 | ansible.builtin.set_fact:
|
40 | 38 | zuul_config: "{{ zuul_config | first | split('/n') | map('trim') | join('\n') }}"
|
41 | 39 | when: zuul_config is defined and zuul_config is not none and zuul_config != ''
|
42 |
| - - name: Extract cluster stack from Zuul config |
| 40 | + - name: Extract cluster_stack_folder from Zuul config |
43 | 41 | ansible.builtin.set_fact:
|
44 |
| - cluster_stack_name: "{{ zuul_config | regex_search('cluster_stack\\s*=\\s*\"([^\"]+)\"', '\\1') | first }}" |
| 42 | + cluster_stack_folder: "{{ zuul_config | regex_search('cluster_stack_folder\\s*=\\s*\"([^\"]+)\"', '\\1') | first }}" |
45 | 43 | when:
|
46 | 44 | - zuul_config is defined and zuul_config is not none and zuul_config != ''
|
47 | 45 | - zuul_config | regex_search('cluster_stack\\s*=\\s*\"([^\"]+)\"') is defined
|
48 |
| - - name: Override cluster stack if extracted |
| 46 | + - name: Override cluster_stack_path if the cluster_stack_folder extracted |
49 | 47 | ansible.builtin.set_fact:
|
50 |
| - cluster_stack: "{{ cluster_stack_name | regex_replace('^openstack-([a-zA-Z0-9]+)-([0-9]+-[0-9]+)$', 'providers/openstack/\\1/\\2') }}" |
51 |
| - cluster_stack_version_name: "{{ cluster_stack_name | regex_replace('^openstack-([a-zA-Z0-9]+)-([0-9]+-[0-9]+)$', '\\1') }}" |
52 |
| - when: cluster_stack_name is defined |
| 48 | + cluster_stack_path: "providers/openstack/{{ cluster_stack_folder }}" |
| 49 | + when: cluster_stack_folder is defined |
53 | 50 | - name: Create cluster stack
|
54 |
| - ansible.builtin.command: "csctl create {{ project_dir }}/{{ cluster_stack }} --output {{ cluster_stack_release_dir }} --mode hash" |
| 51 | + ansible.builtin.command: "csctl create {{ project_dir }}/{{ cluster_stack_path }} --output {{ cluster_stack_release_dir }} --mode hash" |
55 | 52 | args:
|
56 | 53 | chdir: "{{ project_dir }}"
|
57 | 54 | changed_when: true
|
|
126 | 123 | ansible.builtin.set_fact:
|
127 | 124 | k8s_version_major_minor: "{{ k8s_version | regex_replace('^v?([0-9]+\\.[0-9]+)\\..*', '\\1') }}"
|
128 | 125 | when: k8s_version is defined
|
| 126 | + - name: Read the csctl.yaml file |
| 127 | + ansible.builtin.slurp: |
| 128 | + src: "{{ project_dir }}/{{ cluster_stack_path }}/csctl.yaml" |
| 129 | + register: csctl_file_content |
| 130 | + - name: Parse the csctl.yaml content |
| 131 | + ansible.builtin.set_fact: |
| 132 | + csctl_data: "{{ csctl_file_content.content | b64decode | from_yaml }}" |
| 133 | + - name: Register cluster_stack_version_name |
| 134 | + ansible.builtin.set_fact: |
| 135 | + cluster_stack_version_name: "{{ csctl_data.config.clusterStackName }}" |
| 136 | + - name: Format the kubernetesVersion for cluster_stack_name |
| 137 | + ansible.builtin.set_fact: |
| 138 | + k8s_version_formatted: "{{ k8s_version_major_minor | regex_replace('\\.', '-') }}" |
| 139 | + - name: Create the cluster_stack_name |
| 140 | + ansible.builtin.set_fact: |
| 141 | + cluster_stack_name: "{{ csctl_data.config.provider.type }}-{{ csctl_data.config.clusterStackName }}-{{ k8s_version_formatted }}" |
129 | 142 | - name: Extract cloud name from clouds_yaml_full
|
130 | 143 | ansible.builtin.set_fact:
|
131 | 144 | cloud_name: "{{ clouds_yaml_full.clouds.keys() | first }}"
|
|
0 commit comments