mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-07-30 19:34:43 +00:00
Move integration test suite from molecule to ansible-test (#392)
Move integration test suite from molecule to ansible-test SUMMARY molecule has been replaced with ansible-test some test cases have been updated k8s_apply : remove duplicated tasks increasing the running time of the test helm: use different namespaces for different test cases in order to wait for the namespace deletion before moving to the next test. all: remove wait: yes at the end of each test when deleting namespace, the role used to create namespace will ensure that it is deleted before if existing. ISSUE TYPE Feature Pull Request COMPONENT NAME integration testing Reviewed-by: Mike Graves <mgraves@redhat.com> Reviewed-by: Gonéri Le Bouder <goneri@lebouder.net> Reviewed-by: None <None>
This commit is contained in:
3
tests/integration/targets/k8s_generate_name/aliases
Normal file
3
tests/integration/targets/k8s_generate_name/aliases
Normal file
@@ -0,0 +1,3 @@
|
||||
time=36
|
||||
k8s
|
||||
k8s_info
|
||||
188
tests/integration/targets/k8s_generate_name/tasks/main.yml
Normal file
188
tests/integration/targets/k8s_generate_name/tasks/main.yml
Normal file
@@ -0,0 +1,188 @@
|
||||
- block:
|
||||
- set_fact:
|
||||
k8s_wait_timeout: 400
|
||||
pod_00:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
spec:
|
||||
containers:
|
||||
- name: py-container
|
||||
image: python:3.7-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- while true;do date;sleep 5; done
|
||||
pod_01:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
generateName: pod-
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- while true; do echo $(date); sleep 10; done
|
||||
image: python:3.7-alpine
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: py-container
|
||||
|
||||
- name: Create namespace using generateName
|
||||
k8s:
|
||||
definition:
|
||||
kind: Namespace
|
||||
metadata:
|
||||
generateName: "test-"
|
||||
labels:
|
||||
ansible: test
|
||||
register: result
|
||||
|
||||
- set_fact:
|
||||
namespace: "{{ result.result.metadata.name }}"
|
||||
|
||||
- name: Create Pod without name
|
||||
k8s:
|
||||
namespace: "{{ namespace }}"
|
||||
definition: "{{ pod_00 }}"
|
||||
register: result
|
||||
ignore_errors: true
|
||||
|
||||
- name: assert pod creation failed
|
||||
assert:
|
||||
that:
|
||||
- result is failed
|
||||
- "'name or generateName is required' in result.msg"
|
||||
|
||||
- name: create pod using name parameter should succeed
|
||||
k8s:
|
||||
namespace: "{{ namespace }}"
|
||||
definition: "{{ pod_00 }}"
|
||||
name: pod-01
|
||||
|
||||
- name: list Pod for namespace
|
||||
k8s_info:
|
||||
kind: Pod
|
||||
namespace: "{{ namespace }}"
|
||||
register: pods
|
||||
|
||||
- name: assert pod has been created
|
||||
assert:
|
||||
that:
|
||||
- "{{ pods.resources | length == 1 }}"
|
||||
|
||||
- name: create pod using generate_name parameter should succeed
|
||||
k8s:
|
||||
namespace: "{{ namespace }}"
|
||||
definition: "{{ pod_00 }}"
|
||||
generate_name: pod-
|
||||
|
||||
- name: list Pod for namespace
|
||||
k8s_info:
|
||||
kind: Pod
|
||||
namespace: "{{ namespace }}"
|
||||
register: pods
|
||||
|
||||
- name: assert pod has been created
|
||||
assert:
|
||||
that:
|
||||
- "{{ pods.resources | length == 2 }}"
|
||||
|
||||
- name: create pod using metadata.generateName parameter should succeed
|
||||
k8s:
|
||||
namespace: "{{ namespace }}"
|
||||
definition: "{{ pod_01 }}"
|
||||
|
||||
- name: list Pod for namespace
|
||||
k8s_info:
|
||||
kind: Pod
|
||||
namespace: "{{ namespace }}"
|
||||
register: pods
|
||||
|
||||
- name: assert pod has been created
|
||||
assert:
|
||||
that:
|
||||
- "{{ pods.resources | length == 3 }}"
|
||||
|
||||
- name: create object using metadata.generateName should support wait option
|
||||
k8s:
|
||||
namespace: "{{ namespace }}"
|
||||
definition:
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
generateName: test-
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
serviceName: "nginx"
|
||||
replicas: 3
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
terminationGracePeriodSeconds: 10
|
||||
containers:
|
||||
- name: nginx
|
||||
image: k8s.gcr.io/nginx-slim:0.8
|
||||
ports:
|
||||
- containerPort: 80
|
||||
name: web
|
||||
wait: yes
|
||||
wait_sleep: 3
|
||||
wait_timeout: "{{ k8s_wait_timeout | default(omit) }}"
|
||||
|
||||
- name: Create ConfigMap using generateName
|
||||
kubernetes.core.k8s:
|
||||
kind: ConfigMap
|
||||
namespace: "{{ namespace }}"
|
||||
generate_name: cmap-
|
||||
append_hash: yes
|
||||
register: config
|
||||
|
||||
- name: assert that configmap has been created using generateName
|
||||
assert:
|
||||
that:
|
||||
- "config.result.metadata.name.startswith('cmap-')"
|
||||
|
||||
- name: Create Pod with failing container
|
||||
kubernetes.core.k8s:
|
||||
namespace: "{{ namespace }}"
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
metadata:
|
||||
name: pod1
|
||||
spec:
|
||||
containers:
|
||||
- image: adslfkjadslfkjadslkfjsadf
|
||||
name: non-existent-container-image
|
||||
|
||||
- name: Create second Pod using wait (it should not wait for the first container)
|
||||
kubernetes.core.k8s:
|
||||
namespace: "{{ namespace }}"
|
||||
generate_name: "pod2-"
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Pod
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- while true; do echo $(date); sleep 10; done
|
||||
image: python:3.7-alpine
|
||||
imagePullPolicy: Always
|
||||
name: c0
|
||||
wait: yes
|
||||
wait_timeout: 10
|
||||
|
||||
always:
|
||||
- name: Delete namespace
|
||||
k8s:
|
||||
kind: Namespace
|
||||
name: "{{ namespace }}"
|
||||
state: absent
|
||||
ignore_errors: true
|
||||
Reference in New Issue
Block a user