diff --git a/changelogs/fragments/898-k8s-dont-delete-in-check-mode.yaml b/changelogs/fragments/898-k8s-dont-delete-in-check-mode.yaml new file mode 100644 index 0000000000..515ca4ab51 --- /dev/null +++ b/changelogs/fragments/898-k8s-dont-delete-in-check-mode.yaml @@ -0,0 +1,3 @@ +--- +bugfixes: + - module_utils/k8s/service - fix issue when trying to delete resource using `delete_options` and `check_mode=true` (https://github.com/ansible-collections/kubernetes.core/issues/892). diff --git a/plugins/module_utils/k8s/service.py b/plugins/module_utils/k8s/service.py index 31c76bc868..abfa59e3cc 100644 --- a/plugins/module_utils/k8s/service.py +++ b/plugins/module_utils/k8s/service.py @@ -473,7 +473,7 @@ def delete( if label_selectors: params["label_selector"] = ",".join(label_selectors) - if delete_options: + if delete_options and not self.module.check_mode: body = { "apiVersion": "v1", "kind": "DeleteOptions", diff --git a/tests/integration/targets/k8s_delete/tasks/main.yml b/tests/integration/targets/k8s_delete/tasks/main.yml index d7b144cb42..73eb11a346 100644 --- a/tests/integration/targets/k8s_delete/tasks/main.yml +++ b/tests/integration/targets/k8s_delete/tasks/main.yml @@ -152,6 +152,27 @@ register: _deployment failed_when: _deployment.resources | length == 0 + - name: Trying to delete nginx deployment in check mode and with deleteOptions set + k8s: + kind: Deployment + api_version: apps/v1 + namespace: "{{ test_namespace }}" + name: nginx-d + state: absent + delete_options: + propagationPolicy: Foreground + check_mode: true + register: _delete + + - name: Validate that Deployment nginx-d still exists + k8s_info: + kind: Deployment + api_version: apps/v1 + namespace: "{{ test_namespace }}" + name: nginx-d + register: _deployment + failed_when: _deployment.resources | length != 1 + - name: Trying to delete using delete_all=true but missing kind option k8s: api_version: apps/v1