mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-02-28 09:39:12 +03:00
Add complete test integration
This commit is contained in:
33
tests/cloud_playbooks/create-aws.yml
Normal file
33
tests/cloud_playbooks/create-aws.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
sudo: False
|
||||
gather_facts: False
|
||||
|
||||
tasks:
|
||||
- name: Provision a set of instances
|
||||
ec2:
|
||||
key_name: "{{ aws.key_name }}"
|
||||
aws_access_key: "{{ aws.access_key }}"
|
||||
aws_secret_key: "{{ aws.secret_key }}"
|
||||
region: "{{ aws.region }}"
|
||||
group_id: "{{ aws.group}}"
|
||||
instance_type: "{{ aws.instance_type}}"
|
||||
image: "{{ aws.ami_id }}"
|
||||
wait: true
|
||||
count: "{{ aws.count }}"
|
||||
instance_tags: "{{ aws.tags }}"
|
||||
register: ec2
|
||||
|
||||
- name: Template the inventory
|
||||
template:
|
||||
src: templates/inventory.ini.j2
|
||||
dest: "{{ inventory_path }}"
|
||||
|
||||
- name: Wait until SSH is available
|
||||
local_action:
|
||||
module: wait_for
|
||||
host: "{{ item.public_ip }}"
|
||||
port: 22
|
||||
timeout: 300
|
||||
state: started
|
||||
with_items: ec2.instances
|
||||
33
tests/cloud_playbooks/create-gce.yml
Normal file
33
tests/cloud_playbooks/create-gce.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
sudo: False
|
||||
gather_facts: no
|
||||
vars:
|
||||
cloud_machine_type: g1-small
|
||||
|
||||
tasks:
|
||||
- name: replace_test_id
|
||||
set_fact:
|
||||
test_name: "{{test_id |regex_replace('\\.', '-')}}"
|
||||
|
||||
- name: Create gce instances
|
||||
gce:
|
||||
instance_names: "k8s-{{test_name}}-1,k8s-{{test_name}}-2,k8s-{{test_name}}-3"
|
||||
machine_type: "{{ cloud_machine_type }}"
|
||||
image: "{{ cloud_image }}"
|
||||
service_account_email: "{{ gce_service_account_email }}"
|
||||
pem_file: "{{ gce_pem_file }}"
|
||||
project_id: "{{ gce_project_id }}"
|
||||
zone: "{{cloud_region}}"
|
||||
metadata: '{"test_id": "{{test_id}}", "network": "{{kube_network_plugin}}"}'
|
||||
tags: "build-{{test_name}},{{kube_network_plugin}}"
|
||||
register: gce
|
||||
|
||||
- name: Template the inventory
|
||||
template:
|
||||
src: ../templates/inventory-gce.j2
|
||||
dest: "{{ inventory_path }}"
|
||||
|
||||
- name: Wait for SSH to come up
|
||||
wait_for: host={{item.public_ip}} port=22 delay=10 timeout=180 state=started
|
||||
with_items: gce.instance_data
|
||||
15
tests/cloud_playbooks/delete-aws.yml
Normal file
15
tests/cloud_playbooks/delete-aws.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
- hosts: kube-node
|
||||
sudo: False
|
||||
|
||||
tasks:
|
||||
- name: Gather EC2 facts
|
||||
action: ec2_facts
|
||||
|
||||
- name: Terminate EC2 instances
|
||||
local_action:
|
||||
module: ec2
|
||||
state: absent
|
||||
instance_ids: "{{ ansible_ec2_instance_id }}"
|
||||
region: "{{ ansible_ec2_placement_region }}"
|
||||
wait: True
|
||||
24
tests/cloud_playbooks/delete-gce.yml
Normal file
24
tests/cloud_playbooks/delete-gce.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
sudo: False
|
||||
gather_facts: no
|
||||
vars:
|
||||
cloud_machine_type: f1-micro
|
||||
|
||||
tasks:
|
||||
- name: replace_test_id
|
||||
set_fact:
|
||||
test_name: "{{test_id |regex_replace('\\.', '-')}}"
|
||||
|
||||
- name: delete gce instances
|
||||
gce:
|
||||
instance_names: "k8s-{{test_name}}-1,k8s-{{test_name}}-2,k8s-{{test_name}}-3"
|
||||
machine_type: "{{ cloud_machine_type }}"
|
||||
image: "{{ cloud_image }}"
|
||||
service_account_email: "{{ gce_service_account_email }}"
|
||||
pem_file: "{{ gce_pem_file }}"
|
||||
project_id: "{{ gce_project_id }}"
|
||||
zone: "{{cloud_region | default('europe-west1-b')}}"
|
||||
metadata: '{"test_id": "{{test_id}}", "network": "{{kube_network_plugin}}"}'
|
||||
state: 'absent'
|
||||
register: gce
|
||||
Reference in New Issue
Block a user