Pin version;Store manifests in folder structure
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is failing
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	continuous-integration/drone/push Build is failing
				
			This commit is contained in:
		| @@ -4,7 +4,10 @@ | ||||
|     state: directory | ||||
|   loop: | ||||
|     - /opt/metacluster/helm-charts | ||||
|     - /opt/metacluster/manifests | ||||
|     - /opt/metacluster/manifests/bootstrap-kubeadm/{{ components.cluster-api.manifest.version.base }} | ||||
|     - /opt/metacluster/manifests/cluster-api/{{ components.cluster-api.manifest.version.base }} | ||||
|     - /opt/metacluster/manifests/control-plane-kubeadm/{{ components.cluster-api.manifest.version.base }} | ||||
|     - /opt/metacluster/manifests/infrastructure-vsphere/{{ components.cluster-api.manifest.version.infrastructure-vsphere }} | ||||
|     - /opt/metacluster/container-images | ||||
|  | ||||
| - name: Add helm repositories | ||||
| @@ -18,6 +21,7 @@ | ||||
|   ansible.builtin.command: | ||||
|     cmd: helm fetch {{ item.value.helm.chart }} --untar --version {{ item.value.helm.version }} | ||||
|     chdir: /opt/metacluster/helm-charts | ||||
|   when: item.value.helm is defined | ||||
|   loop: "{{ lookup('ansible.builtin.dict', components) }}" | ||||
|   loop_control: | ||||
|     label: "{{ item.key }}" | ||||
| @@ -39,31 +43,48 @@ | ||||
|  | ||||
| - block: | ||||
|  | ||||
|     - name: Lookup ClusterAPI manifests | ||||
|       ansible.builtin.shell: | ||||
|         cmd: clusterctl config repositories | awk '/CoreProvider|kubeadm|vsphere/ {print $(NF-1)"download/"$NF}' | ||||
|       register: clusterapi_manifests | ||||
|  | ||||
|     - name: Download manifests | ||||
|     - name: Download ClusterAPI manifests | ||||
|       ansible.builtin.get_url: | ||||
|         url: "{{ item }}" | ||||
|         dest: "/opt/metacluster/manifests/{{ item | basename }}" | ||||
|       loop: "{{ clusterapi_manifests.stdout_lines }}" | ||||
|         url: https://github.com/kubernetes-sigs/{{ item.url }} | ||||
|         dest: /opt/metacluster/manifests/{{ item.dest }} | ||||
|       register: clusterapi_manifests | ||||
|       loop: | ||||
|         # This list is based on `clusterctl config repositories` | ||||
|         # Note: Each manifest also needs a metadata.yaml file stored in the respective folder | ||||
|         - url: cluster-api/releases/{{ components.cluster-api.manifest.version.base }}/download/bootstrap-components.yaml | ||||
|           dest: bootstrap-kubeadm/{{ components.cluster-api.manifest.version.base }}/bootstrap-components.yaml | ||||
|         - url: cluster-api/releases/{{ components.cluster-api.manifest.version.base }}/download/core-components.yaml | ||||
|           dest: cluster-api/{{ components.cluster-api.manifest.version.base }}/core-components.yaml | ||||
|         - url: cluster-api/releases/{{ components.cluster-api.manifest.version.base }}/download/control-plane-components.yaml | ||||
|           dest: control-plane-kubeadm/{{ components.cluster-api.manifest.version.base }}/control-plane-components.yaml | ||||
|         - url: cluster-api-provider-vsphere/releases/{{ components.cluster-api.manifest.version.infrastructure-vsphere }}/download/infrastructure-components.yaml | ||||
|           dest: infrastructure-vsphere/{{ components.cluster-api.manifest.version.infrastructure-vsphere }}/infrastructure-components.yaml | ||||
|         - url: cluster-api-provider-vsphere/releases/{{ components.cluster-api.manifest.version.infrastructure-vsphere }}/download/metadata.yaml | ||||
|           dest: infrastructure-vsphere/{{ components.cluster-api.manifest.version.infrastructure-vsphere }}/metadata.yaml | ||||
|         # This downloads the same metadata.yaml file to three separate folders | ||||
|         - url: cluster-api/releases/{{ components.cluster-api.manifest.version.base }}/download/metadata.yaml | ||||
|           dest: bootstrap-kubeadm/{{ components.cluster-api.manifest.version.base }}/metadata.yaml | ||||
|         - url: cluster-api/releases/{{ components.cluster-api.manifest.version.base }}/download/metadata.yaml | ||||
|           dest: cluster-api/{{ components.cluster-api.manifest.version.base }}/metadata.yaml | ||||
|         - url: cluster-api/releases/{{ components.cluster-api.manifest.version.base }}/download/metadata.yaml | ||||
|           dest: control-plane-kubeadm/{{ components.cluster-api.manifest.version.base }}/metadata.yaml | ||||
|       loop_control: | ||||
|         label: "{{ item | basename }}" | ||||
|         label: "{{ item.url | basename }}" | ||||
|  | ||||
|     - name: Parse manifests | ||||
|       ansible.builtin.shell: | ||||
|         cmd: cat {{ item | basename }} | yq --no-doc eval '.. | .image? | select(.)' | awk '!/ /' | sort | ||||
|         chdir: /opt/metacluster/manifests | ||||
|       register: parsedmanifests | ||||
|       loop: "{{ clusterapi_manifests.stdout_lines | sort }}" | ||||
|       loop_control: | ||||
|         label: "{{ item | basename }}" | ||||
|     - debug: | ||||
|         var: clusterapi_manifests | ||||
|     # - name: Parse manifests | ||||
|     #   ansible.builtin.shell: | ||||
|     #     cmd: cat {{ item | basename }} | yq --no-doc eval '.. | .image? | select(.)' | awk '!/ /' | sort | ||||
|     #     chdir: /opt/metacluster/manifests | ||||
|     #   register: parsedmanifests | ||||
|     #   loop: "{{ clusterapi_manifests.stdout_lines | sort }}" | ||||
|     #   loop_control: | ||||
|     #     label: "{{ item | basename }}" | ||||
|  | ||||
|     - name: Store container images | ||||
|       ansible.builtin.set_fact: | ||||
|         clusterapi_containerimages: "{{ parsedmanifests | json_query('results[*].stdout') }}" | ||||
|     # - name: Store container images | ||||
|     #   ansible.builtin.set_fact: | ||||
|     #     clusterapi_containerimages: "{{ parsedmanifests | json_query('results[*].stdout') }}" | ||||
|  | ||||
| - name: Parse helm charts for container images | ||||
|   ansible.builtin.shell: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user