Add preflight retries;Housekeeping;Upload&Import images;Fix var reference;Improve UX
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		| @@ -27,7 +27,7 @@ | ||||
|     chdir: /opt/metacluster/k3s | ||||
|   environment: | ||||
|     INSTALL_K3S_SKIP_DOWNLOAD: 'true' | ||||
|     INSTALL_K3S_EXEC: "server --token {{ vapp['metacluster.token'] | trim }} --server https://{{ vapp['metacluster.fqdn'] }}:6443 --disable local-storage --config /etc/rancher/k3s/config.yaml" | ||||
|     INSTALL_K3S_EXEC: "server --token {{ vapp['metacluster.token'] | trim }} --server https://{{ vapp['metacluster.vip'] }}:6443 --disable local-storage --config /etc/rancher/k3s/config.yaml" | ||||
|   when: ansible_facts.services['k3s.service'] is undefined | ||||
|  | ||||
| - name: Ensure API availability | ||||
|   | ||||
| @@ -1,9 +1,9 @@ | ||||
| - import_tasks: init.yml | ||||
| - import_tasks: registry.yml | ||||
| - import_tasks: k3s.yml | ||||
| # - import_tasks: assets.yml | ||||
| - import_tasks: assets.yml | ||||
| # - import_tasks: ingress.yml | ||||
| # - import_tasks: storage.yml | ||||
| # - import_tasks: certauthority.yml | ||||
| # - import_tasks: registry.yml | ||||
| # - import_tasks: git.yml | ||||
| # - import_tasks: gitops.yml | ||||
|   | ||||
| @@ -0,0 +1,50 @@ | ||||
| - block: | ||||
|  | ||||
|     - name: Push images to registry | ||||
|       ansible.builtin.shell: | ||||
|         cmd: >- | ||||
|           skopeo copy \ | ||||
|             --insecure-policy \ | ||||
|             --dest-tls-verify=false \ | ||||
|             --dest-creds admin:{{ vapp['metacluster.password'] }} \ | ||||
|             docker-archive:./{{ item | basename }} \ | ||||
|             docker://registry.{{ vapp['metacluster.fqdn'] }}/library/$( \ | ||||
|               skopeo list-tags \ | ||||
|                 --insecure-policy \ | ||||
|                 docker-archive:./{{ item | basename }} | \ | ||||
|               jq -r '.Tags[0]') | ||||
|         chdir: /opt/metacluster/container-images/ | ||||
|       register: push_result | ||||
|       loop: "{{ query('ansible.builtin.fileglob', '/opt/metacluster/container-images/*.tar') | sort }}" | ||||
|       loop_control: | ||||
|         label: "{{ item | basename }}" | ||||
|       retries: "{{ playbook.retries }}" | ||||
|       delay: "{{ playbook.delays.short }}" | ||||
|       until: push_result is not failed | ||||
|  | ||||
|     - name: Get all stored container images (=artifacts) | ||||
|       ansible.builtin.uri: | ||||
|         url: https://registry.{{ vapp['metacluster.fqdn'] }}/api/v2.0/search?q=library | ||||
|         method: GET | ||||
|       register: registry_artifacts | ||||
|  | ||||
|     - name: Get source registries of all artifacts | ||||
|       ansible.builtin.set_fact: | ||||
|         source_registries: "{{ (source_registries | default([]) + [(item | split('/'))[1]]) | unique | sort }}" | ||||
|       loop: "{{ registry_artifacts.json.repository | json_query('[*].repository_name') }}" | ||||
|  | ||||
|     - name: Configure K3s node for private registry | ||||
|       ansible.builtin.template: | ||||
|         dest: /etc/rancher/k3s/registries.yaml | ||||
|         src: registries.j2 | ||||
|       vars: | ||||
|         _template: | ||||
|           data: "{{ source_registries }}" | ||||
|           hv: | ||||
|             fqdn: "{{ vapp['metacluster.fqdn'] }}" | ||||
|  | ||||
|   module_defaults: | ||||
|     ansible.builtin.uri: | ||||
|       validate_certs: no | ||||
|       status_code: [200, 201, 401] | ||||
|       body_format: json | ||||
| @@ -1,6 +1,6 @@ | ||||
| - name: Check for metacluster connectivity | ||||
|   ansible.builtin.uri: | ||||
|     url: https://{{ vapp['metacluster.fqdn'] }}:6443/livez?verbose | ||||
|     url: https://{{ vapp['metacluster.vip'] }}:6443/livez?verbose | ||||
|     method: GET | ||||
|     validate_certs: no | ||||
|     status_code: [200, 401] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user