diff --git a/pykube/objects.py b/pykube/objects.py index 08ab032..699bfbc 100644 --- a/pykube/objects.py +++ b/pykube/objects.py @@ -142,8 +142,18 @@ def update(self): self.api.raise_for_status(r) self.set_obj(r.json()) - def delete(self): - r = self.api.delete(**self.api_kwargs()) + def delete(self, propagation_policy: str = None): + ''' + Delete the Kubernetes resource by calling the API. + + The parameter propagation_policy defines whether to cascade the delete. It can be "Foreground", "Background" or "Orphan". + See https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/#setting-the-cascading-deletion-policy + ''' + if propagation_policy: + options = {"propagationPolicy": propagation_policy} + else: + options = {} + r = self.api.delete(**self.api_kwargs(data=json.dumps(options))) if r.status_code != 404: self.api.raise_for_status(r)