mirror of
https://opendev.org/openstack/ansible-collections-openstack.git
synced 2026-03-26 21:43:02 +00:00
When creating a coe cluster, a flavor lookup occurs which fails as nothing is specified. This adds a default flavor which can be used to test cluster provisioning. Various checks used a deprecated truthy check which no longer works with Ansible 2.19 Inventory cache format change in Ansible 2.19 galaxy.yml required in tmp testing directory or version checks fail for linters with Ansible 2.19 Change-Id: Iaf3f05d0841a541e4318821fe44ddd59f236b640
184 lines
4.6 KiB
YAML
184 lines
4.6 KiB
YAML
---
|
|
- name: Create keypair
|
|
openstack.cloud.keypair:
|
|
cloud: "{{ cloud }}"
|
|
name: ansible_keypair
|
|
state: present
|
|
register: keypair
|
|
|
|
- name: List all images
|
|
openstack.cloud.image_info:
|
|
cloud: "{{ cloud }}"
|
|
register: images
|
|
|
|
- name: Identify Fedora CoreOS image id
|
|
set_fact:
|
|
image_id: "{{ images.images|community.general.json_query(query)|first }}"
|
|
vars:
|
|
query: "[?starts_with(name, 'fedora-coreos')].id"
|
|
|
|
- name: Create external network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
external: true
|
|
name: ansible_external_network
|
|
state: present
|
|
register: external_network
|
|
|
|
- name: Create external subnet
|
|
openstack.cloud.subnet:
|
|
cidr: 10.6.6.0/24
|
|
cloud: "{{ cloud }}"
|
|
name: ansible_external_subnet
|
|
network_name: ansible_external_network
|
|
state: present
|
|
|
|
- name: Create internal network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
name: ansible_internal_network
|
|
external: false
|
|
|
|
- name: Create internal subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: present
|
|
network_name: ansible_internal_network
|
|
name: ansible_internal_subnet
|
|
cidr: 10.7.7.0/24
|
|
|
|
- name: Create router
|
|
openstack.cloud.router:
|
|
cloud: "{{ cloud }}"
|
|
external_fixed_ips:
|
|
- subnet: ansible_external_subnet
|
|
ip: 10.6.6.10
|
|
interfaces:
|
|
- net: ansible_internal_network
|
|
subnet: ansible_internal_subnet
|
|
portip: 10.7.7.1
|
|
name: ansible_router
|
|
network: ansible_external_network
|
|
state: present
|
|
|
|
- name: Create Kubernetes cluster template
|
|
openstack.cloud.coe_cluster_template:
|
|
cloud: "{{ cloud }}"
|
|
coe: kubernetes
|
|
external_network_id: '{{ external_network.network.id }}'
|
|
fixed_network: ansible_internal_network
|
|
fixed_subnet: ansible_internal_subnet
|
|
image_id: '{{ image_id }}'
|
|
is_floating_ip_enabled: true
|
|
keypair_id: '{{ keypair.keypair.id }}'
|
|
flavor_id: 'm1.small'
|
|
master_flavor_id: 'm1.small'
|
|
name: k8s
|
|
state: present
|
|
register: coe_cluster_template
|
|
|
|
- name: Create Kubernetes cluster
|
|
openstack.cloud.coe_cluster:
|
|
cloud: "{{ cloud }}"
|
|
cluster_template_id: "{{ coe_cluster_template.cluster_template.uuid }}"
|
|
keypair: ansible_keypair
|
|
name: k8s
|
|
state: present
|
|
# cluster creation takes longer than max tenant timeout of 10800
|
|
wait: false
|
|
register: coe_cluster
|
|
|
|
- name: Assert return values of coe_cluster module
|
|
assert:
|
|
that:
|
|
# allow new fields to be introduced but prevent fields from being removed
|
|
- expected_fields|difference(coe_cluster.cluster.keys())|length == 0
|
|
|
|
- name: Pause for 1 minutes to allow Magnum to create the Kubernetes cluster
|
|
ansible.builtin.pause:
|
|
minutes: 1
|
|
|
|
- name: Create Kubernetes cluster again
|
|
openstack.cloud.coe_cluster:
|
|
cloud: "{{ cloud }}"
|
|
cluster_template_id: "{{ coe_cluster_template.cluster_template.uuid }}"
|
|
keypair: ansible_keypair
|
|
name: k8s
|
|
state: present
|
|
# cluster creation takes longer than max tenant timeout of 10800
|
|
wait: false
|
|
register: coe_cluster
|
|
|
|
- name: Assert return values of coe_cluster module
|
|
assert:
|
|
that:
|
|
# allow new fields to be introduced but prevent fields from being removed
|
|
- expected_fields|difference(coe_cluster.cluster.keys())|length == 0
|
|
|
|
- name: Delete Kubernetes cluster
|
|
openstack.cloud.coe_cluster:
|
|
cloud: "{{ cloud }}"
|
|
name: k8s
|
|
state: absent
|
|
register: coe_cluster
|
|
|
|
- name: Assert return values of coe_cluster module
|
|
assert:
|
|
that:
|
|
- coe_cluster is changed
|
|
|
|
- name: Delete Kubernetes cluster again
|
|
openstack.cloud.coe_cluster:
|
|
cloud: "{{ cloud }}"
|
|
name: k8s
|
|
state: absent
|
|
register: coe_cluster
|
|
|
|
- name: Assert return values of coe_cluster module
|
|
assert:
|
|
that:
|
|
- coe_cluster is not changed
|
|
|
|
- name: Delete Kubernetes cluster template
|
|
openstack.cloud.coe_cluster_template:
|
|
cloud: "{{ cloud }}"
|
|
name: k8s
|
|
state: absent
|
|
|
|
- name: Delete router
|
|
openstack.cloud.router:
|
|
cloud: "{{ cloud }}"
|
|
name: ansible_router
|
|
state: absent
|
|
|
|
- name: Delete internal subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: ansible_internal_subnet
|
|
|
|
- name: Delete internal network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
state: absent
|
|
name: ansible_internal_network
|
|
|
|
- name: Delete external subnet
|
|
openstack.cloud.subnet:
|
|
cloud: "{{ cloud }}"
|
|
name: ansible_external_subnet
|
|
state: absent
|
|
|
|
- name: Delete external network
|
|
openstack.cloud.network:
|
|
cloud: "{{ cloud }}"
|
|
name: ansible_external_network
|
|
state: absent
|
|
|
|
- name: Delete keypair
|
|
openstack.cloud.keypair:
|
|
cloud: "{{ cloud }}"
|
|
name: ansible_keypair
|
|
state: absent
|