* Test cluster using molecule * Fix detection of first control node * Include --flannel-iface and --node-ip as k3s arguments * Store logs of k3s-init.service as GitHub job artifacts
55 lines
1.6 KiB
YAML
55 lines
1.6 KiB
YAML
---
|
|
- name: Deploy example
|
|
block:
|
|
- name: "Create namespace: {{ testing_namespace }}"
|
|
kubernetes.core.k8s:
|
|
api_version: v1
|
|
kind: Namespace
|
|
name: "{{ testing_namespace }}"
|
|
state: present
|
|
wait: true
|
|
kubeconfig: "{{ kubecfg_path }}"
|
|
|
|
- name: Apply example manifests
|
|
kubernetes.core.k8s:
|
|
src: "{{ example_manifests_path }}/{{ item }}"
|
|
namespace: "{{ testing_namespace }}"
|
|
state: present
|
|
wait: true
|
|
kubeconfig: "{{ kubecfg_path }}"
|
|
with_items:
|
|
- deployment.yml
|
|
- service.yml
|
|
|
|
- name: Get info about nginx service
|
|
kubernetes.core.k8s_info:
|
|
kind: service
|
|
name: nginx
|
|
namespace: "{{ testing_namespace }}"
|
|
kubeconfig: "{{ kubecfg_path }}"
|
|
vars: &load_balancer_metadata
|
|
metallb_ip: status.loadBalancer.ingress[0].ip
|
|
metallb_port: spec.ports[0].port
|
|
register: nginx_services
|
|
|
|
- name: Assert that the nginx welcome page is available
|
|
ansible.builtin.uri:
|
|
url: http://{{ ip }}:{{ port }}/
|
|
return_content: yes
|
|
register: result
|
|
failed_when: "'Welcome to nginx!' not in result.content"
|
|
vars:
|
|
ip: >-
|
|
{{ nginx_services.resources[0].status.loadBalancer.ingress[0].ip }}
|
|
port: >-
|
|
{{ nginx_services.resources[0].spec.ports[0].port }}
|
|
|
|
always:
|
|
- name: "Remove namespace: {{ testing_namespace }}"
|
|
kubernetes.core.k8s:
|
|
api_version: v1
|
|
kind: Namespace
|
|
name: "{{ testing_namespace }}"
|
|
state: absent
|
|
kubeconfig: "{{ kubecfg_path }}"
|