mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-07 21:42:38 +00:00
make name optional to delete all resources for the specified resource type (#517)
make name optional to delete all resources for the specified resource type SUMMARY closes #504 k8s module should allow deleting all namespace resources for the specified resource type. ISSUE TYPE Feature Pull Request COMPONENT NAME k8s ADDITIONAL INFORMATION Delete all Pods from namespace test - k8s: namespace: test kind: Pod api_version: v1 delete_all: true state: absent Reviewed-by: Gonéri Le Bouder <goneri@lebouder.net> Reviewed-by: Mike Graves <mgraves@redhat.com> Reviewed-by: Bikouo Aubin
This commit is contained in:
70
tests/integration/targets/k8s_delete/files/deployments.yaml
Normal file
70
tests/integration/targets/k8s_delete/files/deployments.yaml
Normal file
@@ -0,0 +1,70 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-d
|
||||
labels:
|
||||
context: ansible
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
context: ansible
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
context: ansible
|
||||
spec:
|
||||
containers:
|
||||
- name: nginx
|
||||
image: nginx
|
||||
ports:
|
||||
- containerPort: 80
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: openjdk-d
|
||||
labels:
|
||||
context: ansible
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
context: ansible
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
context: ansible
|
||||
spec:
|
||||
containers:
|
||||
- name: openjdk
|
||||
image: openjdk:17
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- while true;do date;sleep 5; done
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: alpine-d
|
||||
labels:
|
||||
context: ansible
|
||||
spec:
|
||||
replicas: 3
|
||||
selector:
|
||||
matchLabels:
|
||||
context: ansible
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
context: ansible
|
||||
spec:
|
||||
containers:
|
||||
- name: alpine
|
||||
image: alpine
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- while true;do date;sleep 5; done
|
||||
@@ -121,6 +121,77 @@
|
||||
that:
|
||||
- _result.resources | length == 0
|
||||
|
||||
# test deletion using delete_all=true
|
||||
- name: Create deployments
|
||||
k8s:
|
||||
namespace: "{{ test_namespace }}"
|
||||
src: files/deployments.yaml
|
||||
wait: true
|
||||
register: result
|
||||
|
||||
- name: Trying to delete deployments without name and label_selectors and select_all=false
|
||||
k8s:
|
||||
kind: Deployment
|
||||
api_version: apps/v1
|
||||
namespace: "{{ test_namespace }}"
|
||||
state: absent
|
||||
register: _delete
|
||||
|
||||
- name: Ensure Deployment were not deleted
|
||||
assert:
|
||||
that:
|
||||
- _delete is not changed
|
||||
|
||||
- name: Validate that Deployment still exist
|
||||
k8s_info:
|
||||
kind: Deployment
|
||||
api_version: apps/v1
|
||||
namespace: "{{ test_namespace }}"
|
||||
label_selectors:
|
||||
- context=ansible
|
||||
register: _deployment
|
||||
failed_when: _deployment.resources | length == 0
|
||||
|
||||
- name: Trying to delete using delete_all=true but missing kind option
|
||||
k8s:
|
||||
api_version: apps/v1
|
||||
namespace: "{{ test_namespace }}"
|
||||
delete_all: true
|
||||
state: absent
|
||||
register: _delete
|
||||
ignore_errors: true
|
||||
|
||||
- name: assert task failed with proper message
|
||||
assert:
|
||||
that:
|
||||
- _delete is failed
|
||||
- _delete.msg == "'kind' option is required to specify the resource type."
|
||||
|
||||
- name: Trying to delete deployments without name and label_selectors and delete_all=true
|
||||
k8s:
|
||||
kind: Deployment
|
||||
api_version: apps/v1
|
||||
namespace: "{{ test_namespace }}"
|
||||
delete_all: true
|
||||
wait: true
|
||||
state: absent
|
||||
register: _delete
|
||||
|
||||
- name: Ensure Deployment were deleted
|
||||
assert:
|
||||
that:
|
||||
- _delete is changed
|
||||
|
||||
- name: Validate that Deployment do not exist anymore
|
||||
k8s_info:
|
||||
kind: Deployment
|
||||
api_version: apps/v1
|
||||
namespace: "{{ test_namespace }}"
|
||||
label_selectors:
|
||||
- context=ansible
|
||||
register: _deployment
|
||||
failed_when: _deployment.resources | length > 0
|
||||
|
||||
always:
|
||||
- name: Remove namespace
|
||||
k8s:
|
||||
|
||||
Reference in New Issue
Block a user