mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-05-07 13:32:37 +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:
|
||||
|
||||
@@ -590,3 +590,4 @@ tests/integration/targets/setup_kubeconfig/library/test_inventory_read_credentia
|
||||
tests/integration/targets/helm/library/helm_test_version.py compile-2.6!skip
|
||||
tests/integration/targets/helm/library/helm_test_version.py compile-2.7!skip
|
||||
tests/integration/targets/helm/library/helm_test_version.py compile-3.5!skip
|
||||
tests/integration/targets/k8s_delete/files/deployments.yaml yamllint!skip
|
||||
|
||||
@@ -30,3 +30,4 @@ plugins/modules/k8s.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_scale.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_service.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_taint.py validate-modules:return-syntax-error
|
||||
tests/integration/targets/k8s_delete/files/deployments.yaml yamllint!skip
|
||||
|
||||
@@ -30,3 +30,4 @@ plugins/modules/k8s.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_scale.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_service.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_taint.py validate-modules:return-syntax-error
|
||||
tests/integration/targets/k8s_delete/files/deployments.yaml yamllint!skip
|
||||
|
||||
@@ -30,3 +30,4 @@ plugins/modules/k8s.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_scale.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_service.py validate-modules:return-syntax-error
|
||||
plugins/modules/k8s_taint.py validate-modules:return-syntax-error
|
||||
tests/integration/targets/k8s_delete/files/deployments.yaml yamllint!skip
|
||||
|
||||
@@ -48,6 +48,7 @@ YAML_LINT_SKIPS = [
|
||||
"tests/integration/targets/helm/files/test-chart/templates/configmap.yaml",
|
||||
"tests/integration/targets/helm_diff/files/test-chart/templates/configmap.yaml",
|
||||
"tests/integration/targets/k8s_scale/files/deployment.yaml",
|
||||
"tests/integration/targets/k8s_delete/files/deployments.yaml",
|
||||
]
|
||||
|
||||
# Add shebang!skip
|
||||
|
||||
Reference in New Issue
Block a user