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.

54 lines
1.4 KiB

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