You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.4 KiB

  1. ---
  2. - name: "Create CI namespace {{ test_name }} for test vms"
  3. shell: |-
  4. kubectl create namespace {{ test_name }} &&
  5. kubectl label namespace {{ test_name }} cijobs=true branch="{{ branch_name_sane }}" pipeline_id="{{ pipeline_id }}"
  6. changed_when: false
  7. - name: "Create temp dir /tmp/{{ test_name }} for CI files"
  8. file:
  9. path: "/tmp/{{ test_name }}"
  10. state: directory
  11. mode: "0755"
  12. - name: Template vm files for CI job
  13. set_fact:
  14. vms_files: "{{ vms_files + [lookup('ansible.builtin.template', 'vm.yml.j2') | from_yaml] }}"
  15. vars:
  16. vms_files: []
  17. loop: "{{ range(1, vm_count | int + 1, 1) | list }}"
  18. loop_control:
  19. index_var: vm_id
  20. - name: Start vms for CI job
  21. kubernetes.core.k8s:
  22. definition: "{{ item }}"
  23. changed_when: false
  24. loop: "{{ vms_files }}"
  25. - name: Wait for vms to have ipaddress assigned
  26. shell: "set -o pipefail && kubectl get vmis -n {{ test_name }} instance-{{ vm_id }} -o json | jq '.status.interfaces[].ipAddress' | tr -d '\"'"
  27. args:
  28. executable: /bin/bash
  29. changed_when: false
  30. register: vm_ips
  31. loop: "{{ range(1, vm_count | int + 1, 1) | list }}"
  32. loop_control:
  33. index_var: vm_id
  34. retries: 20
  35. delay: 15
  36. until:
  37. - vm_ips.stdout | ansible.utils.ipaddr
  38. - name: "Create inventory for CI test in file /tmp/{{ test_name }}/inventory"
  39. template:
  40. src: "inventory.j2"
  41. dest: "{{ inventory_path }}"
  42. mode: "0644"
  43. vars:
  44. vms: "{{ vm_ips }}"