mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-06-09 18:16:09 +00:00
113 lines
5.3 KiB
YAML
113 lines
5.3 KiB
YAML
---
|
|
- block:
|
|
- set_fact:
|
|
pre_test1: "{{ lookup('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
|
pre_test2: "{{ lookup('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one') }}"
|
|
pre_test3: "{{ query('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
|
pre_test4: "{{ query('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one') }}"
|
|
|
|
# https://github.com/ansible-collections/kubernetes.core/issues/147
|
|
- name: Create a namespace with label
|
|
kubernetes.core.k8s:
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: "app-development-one"
|
|
labels:
|
|
namespace_label: "app_development"
|
|
|
|
- set_fact:
|
|
test1: "{{ lookup('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development', wantlist=True) }}"
|
|
test2: "{{ query('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
|
test3: "{{ lookup('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one', wantlist=True) }}"
|
|
test4: "{{ query('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one') }}"
|
|
test5: "{{ lookup('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
|
test6: "{{ lookup('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one') }}"
|
|
test7: "{{ lookup('kubernetes.core.k8s', kind='Ingress', api_version='networking.k8s.io/vINVALID', errors='ignore') }}"
|
|
|
|
- set_fact:
|
|
test8: "{{ lookup('kubernetes.core.k8s', kind='Ingress', api_version='networking.k8s.io/vINVALID') }}"
|
|
ignore_errors: true
|
|
|
|
- name: Assert that every test is passed
|
|
assert:
|
|
that:
|
|
# Before creating object
|
|
- pre_test1 is sequence and pre_test1 is not string
|
|
- pre_test1 | length == 0
|
|
- pre_test2 is sequence and pre_test2 is not string
|
|
- pre_test2 | length == 0
|
|
- pre_test3 is sequence and pre_test3 is not string
|
|
- pre_test3 | length == 0
|
|
- pre_test4 is sequence and pre_test4 is not string
|
|
- pre_test4 | length == 0
|
|
# After creating object
|
|
- test1 is sequence and test1 is not string
|
|
- test1 | length == 1
|
|
- test2 is sequence and test2 is not string
|
|
- test2 | length == 1
|
|
- test3 is sequence and test3 is not string
|
|
- test3 | length == 1
|
|
- test4 is sequence and test4 is not string
|
|
- test4 | length == 1
|
|
# Without wantlist=True lookup should return mapping
|
|
- test5 is mapping
|
|
- test6 is mapping
|
|
# errors='ignore'
|
|
- test7 is string
|
|
- test8 is not defined
|
|
|
|
- name: Create another namespace with label
|
|
kubernetes.core.k8s:
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: "app-development-two"
|
|
labels:
|
|
namespace_label: "app_development"
|
|
|
|
- set_fact:
|
|
test1: "{{ lookup('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development', wantlist=True) }}"
|
|
test2: "{{ query('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
|
test3: "{{ lookup('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one', wantlist=True) }}"
|
|
test4: "{{ query('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one') }}"
|
|
test5: "{{ lookup('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-two', wantlist=True) }}"
|
|
test6: "{{ query('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-two') }}"
|
|
test7: "{{ lookup('kubernetes.core.k8s', kind='Namespace', label_selector='namespace_label=app_development') }}"
|
|
test8: "{{ lookup('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-one') }}"
|
|
test9: "{{ lookup('kubernetes.core.k8s', kind='Namespace', resource_name='app-development-two') }}"
|
|
|
|
- name: Assert that every test is passed after creating second object
|
|
assert:
|
|
that:
|
|
# After creating second object
|
|
- test1 is sequence and test1 is not string
|
|
- test1 | length == 2
|
|
- test2 is sequence and test2 is not string
|
|
- test2 | length == 2
|
|
- test3 is sequence and test3 is not string
|
|
- test3 | length == 1
|
|
- test4 is sequence and test4 is not string
|
|
- test4 | length == 1
|
|
- test5 is sequence and test5 is not string
|
|
- test5 | length == 1
|
|
- test6 is sequence and test6 is not string
|
|
- test6 | length == 1
|
|
# When label_selector is used it returns list irrespective of wantlist=True
|
|
- test7 is sequence and test7 is not string
|
|
# Without wantlist=True lookup should return mapping
|
|
- test8 is mapping
|
|
- test9 is mapping
|
|
|
|
always:
|
|
- name: Ensure that namespace is removed
|
|
k8s:
|
|
kind: Namespace
|
|
name: "app-development-{{ item }}"
|
|
state: absent
|
|
with_items:
|
|
- one
|
|
- two
|