@@ -484,6 +484,45 @@ func (builder *Builder) Delete() error {
484
484
return nil
485
485
}
486
486
487
+ // DeleteGraceful removes a deployment while waiting for specified duration(in seconds)
488
+ // the object should be deleted.
489
+ func (builder * Builder ) DeleteGraceful (gracePeriod * int64 ) error {
490
+ if valid , err := builder .validate (); ! valid {
491
+ return err
492
+ }
493
+
494
+ if * gracePeriod < int64 (0 ) {
495
+ glog .V (100 ).Infof ("gracePeriod(%v) must be non-negative integer" , gracePeriod )
496
+
497
+ return fmt .Errorf ("gracePeriod must be non-negative integer" )
498
+ }
499
+
500
+ glog .V (100 ).Infof ("Requested DeleteGracePeriod %v seconds" , gracePeriod )
501
+
502
+ glog .V (100 ).Infof ("Deleting deployment %s in namespace %s with %v seconds grace period" ,
503
+ builder .Definition .Name , builder .Definition .Namespace , * gracePeriod )
504
+
505
+ if ! builder .Exists () {
506
+ glog .V (100 ).Infof ("Deployment %s in namespace %s does not exist" ,
507
+ builder .Definition .Name , builder .Definition .Namespace )
508
+
509
+ builder .Object = nil
510
+
511
+ return nil
512
+ }
513
+
514
+ err := builder .apiClient .Deployments (builder .Definition .Namespace ).Delete (
515
+ context .TODO (), builder .Definition .Name , metav1.DeleteOptions {GracePeriodSeconds : gracePeriod })
516
+
517
+ if err != nil {
518
+ return err
519
+ }
520
+
521
+ builder .Object = nil
522
+
523
+ return nil
524
+ }
525
+
487
526
// CreateAndWaitUntilReady creates a deployment in the cluster and waits until the deployment is available.
488
527
func (builder * Builder ) CreateAndWaitUntilReady (timeout time.Duration ) (* Builder , error ) {
489
528
if valid , err := builder .validate (); ! valid {
0 commit comments