@@ -360,15 +360,41 @@ async def create(self) -> None:
360360 """Create this object in Kubernetes."""
361361 return await self .async_create ()
362362
363- async def delete (self , propagation_policy : str | None = None ) -> None :
364- """Delete this object from Kubernetes."""
365- return await self .async_delete (propagation_policy = propagation_policy )
363+ async def delete (
364+ self ,
365+ propagation_policy : str | None = None ,
366+ grace_period : int | None = None ,
367+ force : bool = False ,
368+ ) -> None :
369+ """Delete this object from Kubernetes.
370+
371+ Args:
372+ propagation_policy: The deletion propagation policy.
373+ grace_period: The grace period for deletion.
374+ force: Force deletion. (Setting to ``True`` is equivelaent to setting grace_period to 0)
375+ """
376+ return await self .async_delete (
377+ propagation_policy = propagation_policy ,
378+ grace_period = grace_period ,
379+ force = force ,
380+ )
366381
367- async def async_delete (self , propagation_policy : str | None = None ) -> None :
382+ async def async_delete (
383+ self ,
384+ propagation_policy : str | None = None ,
385+ grace_period : int | None = None ,
386+ force : bool = False ,
387+ ) -> None :
368388 """Delete this object from Kubernetes."""
369- data = {}
389+ data : dict [ str , Any ] = {}
370390 if propagation_policy :
371391 data ["propagationPolicy" ] = propagation_policy
392+ if grace_period and force :
393+ raise ValueError ("Cannot set both grace_period and force" )
394+ if grace_period :
395+ data ["gracePeriodSeconds" ] = grace_period
396+ elif force :
397+ data ["gracePeriodSeconds" ] = 0
372398 try :
373399 assert self .api
374400 async with self .api .call_api (
@@ -802,8 +828,17 @@ def exists(self, ensure=False) -> bool: # type: ignore[override]
802828 def create (self ) -> None : # type: ignore[override]
803829 return run_sync (self .async_create )() # type: ignore
804830
805- def delete (self , propagation_policy : str | None = None ) -> None : # type: ignore[override]
806- return run_sync (self .async_delete )(propagation_policy = propagation_policy ) # type: ignore
831+ def delete ( # type: ignore[override]
832+ self ,
833+ propagation_policy : str | None = None ,
834+ grace_period : int | None = None ,
835+ force : bool = False ,
836+ ) -> None :
837+ run_sync (self .async_delete )(
838+ propagation_policy = propagation_policy ,
839+ grace_period = grace_period ,
840+ force = force ,
841+ ) # type: ignore
807842
808843 def refresh (self ) -> None : # type: ignore[override]
809844 return run_sync (self .async_refresh )() # type: ignore
0 commit comments