PHASE 1 - Add Packet-CI playbook and configuration (#4537)

This commit is contained in:
Andreas Krüger
2019-04-16 23:49:07 +02:00
committed by Kubernetes Prow Robot
parent 78f6f6b889
commit b834a28891
10 changed files with 268 additions and 1 deletions

View File

@@ -0,0 +1,58 @@
---
- name: "Create CI namespace {{ test_name }} for test vms"
k8s:
name: "{{ test_name }}"
kind: Namespace
state: present
register: create_ci_ns
failed_when: create_ci_ns.changed == false
- name: "Create temp dir /tmp/{{ test_name }} for CI files"
file:
path: "/tmp/{{ test_name }}"
state: directory
- name: Template vm files for CI job
template:
src: "vm.yml.j2"
dest: "/tmp/{{ test_name }}/instance-{{ vm_id }}.yml"
loop: "{{ range(0, vm_count|int, 1) | list }}"
loop_control:
index_var: vm_id
- name: Start vms for CI job
k8s:
state: present
src: "/tmp/{{ test_name }}/instance-{{ vm_id }}.yml"
loop: "{{ range(0, vm_count|int, 1) | list }}"
loop_control:
index_var: vm_id
- name: Wait for vms to have ipaddress assigned
shell: "kubectl get vmis -n {{ test_name }} instance-{{ vm_id }} -o json | jq '.status.interfaces[].ipAddress' | tr -d '\"'"
register: vm_ips
loop: "{{ range(0, vm_count|int, 1) | list }}"
loop_control:
index_var: vm_id
retries: 10
delay: 15
until:
- vm_ips.stdout | ipaddr
- name: Wait for SSH to become available on vms
wait_for:
host: "{{ item.stdout }}"
port: 22
delay: 30
timeout: 240
state: started
with_items:
- "{{ vm_ips.results }}"
- name: "Create inventory for CI test in file /tmp/{{ test_name }}/inventory"
template:
src: "inventory.j2"
dest: "{{ inventory_path }}"
vars:
vms: "{{ vm_ips }}"

View File

@@ -0,0 +1,29 @@
---
- name: Check if temp directory for {{ test_name }} exists
stat:
path: "/tmp/{{ test_name }}"
register: temp_dir_details
- name: "Cleanup temp directory for {{ test_name }}"
file:
path: "/tmp/{{ test_name }}"
state: absent
- name: "Cleanup namespace for {{ test_name }}"
k8s:
kind: Namespace
state: absent
name: "{{ test_name }}"
- name: Wait for namespace {{ test_name }} to be fully deleted
shell: kubectl get ns {{ test_name }}
register: delete_namespace
failed_when:
- delete_namespace.rc == 0
changed_when:
- delete_namespace.rc == 0
retries: 12
delay: "10"
until:
- delete_namespace.rc != 0

View File

@@ -0,0 +1,16 @@
---
- name: "Include custom vars for ci job: {{ ci_job_name }}"
include_vars: "../files/{{ ci_job_name }}.yml"
- name: Set VM count needed for CI test_id
set_fact:
vm_count: "{%- if mode in ['separate', 'separate-scale', 'ha', 'ha-scale'] -%}{{ 3|int }}{%- elif mode == 'aio' -%}{{ 1|int }}{%- else -%}{{ 2|int }}{%- endif -%}"
- import_tasks: create-vms.yml
when:
- not vm_cleanup
- import_tasks: delete-vms.yml
when:
- vm_cleanup | default(false)