Merge pull request #103232 from astraw99/fix_delete_nil_pointer
Fix delete nil pointer panic Kubernetes-commit: 20be00980c5f58c5dc906392bc9dbe3e7b55c11d
This commit is contained in:
commit
7fe2741c29
8
go.mod
8
go.mod
|
|
@ -42,9 +42,9 @@ require (
|
|||
google.golang.org/grpc v1.38.0
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0
|
||||
gopkg.in/square/go-jose.v2 v2.2.2
|
||||
k8s.io/api v0.0.0-20210707054401-2c49f10e0b15
|
||||
k8s.io/api v0.0.0-20210707174547-c7120651ba6c
|
||||
k8s.io/apimachinery v0.0.0-20210701054147-830375057167
|
||||
k8s.io/client-go v0.0.0-20210706214629-68cb2ddef93f
|
||||
k8s.io/client-go v0.0.0-20210707174930-b2678640329d
|
||||
k8s.io/component-base v0.0.0-20210702054709-fddd92849e34
|
||||
k8s.io/klog/v2 v2.9.0
|
||||
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
||||
|
|
@ -55,8 +55,8 @@ require (
|
|||
)
|
||||
|
||||
replace (
|
||||
k8s.io/api => k8s.io/api v0.0.0-20210707054401-2c49f10e0b15
|
||||
k8s.io/api => k8s.io/api v0.0.0-20210707174547-c7120651ba6c
|
||||
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20210701054147-830375057167
|
||||
k8s.io/client-go => k8s.io/client-go v0.0.0-20210706214629-68cb2ddef93f
|
||||
k8s.io/client-go => k8s.io/client-go v0.0.0-20210707174930-b2678640329d
|
||||
k8s.io/component-base => k8s.io/component-base v0.0.0-20210702054709-fddd92849e34
|
||||
)
|
||||
|
|
|
|||
8
go.sum
8
go.sum
|
|
@ -779,12 +779,12 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh
|
|||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
k8s.io/api v0.0.0-20210707054401-2c49f10e0b15 h1:KDL/0Eab3o5BswoTN53Hp0H1QFN8RGD/x2ItzJN9l4g=
|
||||
k8s.io/api v0.0.0-20210707054401-2c49f10e0b15/go.mod h1:zoURDvOPW5UMFZr2YUU/sStjYnWSPt+x+MM4R94ATgQ=
|
||||
k8s.io/api v0.0.0-20210707174547-c7120651ba6c h1:fSuqMc1G40Cl6BY7TuYWLdo+wcWUfaWijwWPMGm3hrE=
|
||||
k8s.io/api v0.0.0-20210707174547-c7120651ba6c/go.mod h1:zoURDvOPW5UMFZr2YUU/sStjYnWSPt+x+MM4R94ATgQ=
|
||||
k8s.io/apimachinery v0.0.0-20210701054147-830375057167 h1:fob/j8+uMBIVvyo+9bG7GvjFSj0LX3RNuSXW+RcUrwo=
|
||||
k8s.io/apimachinery v0.0.0-20210701054147-830375057167/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0=
|
||||
k8s.io/client-go v0.0.0-20210706214629-68cb2ddef93f h1:seULy+bqIY8G2Q98h/e3WaQdkgNIIQUqy8MSUP2TReY=
|
||||
k8s.io/client-go v0.0.0-20210706214629-68cb2ddef93f/go.mod h1:sbkKCOXetW3FaqcSYCG3ghdfOCSOKTGwitXlliklRrc=
|
||||
k8s.io/client-go v0.0.0-20210707174930-b2678640329d h1:JZpwpZ5mK716hQiKLwGnoABxEbWhFSaM36csnj4mw3M=
|
||||
k8s.io/client-go v0.0.0-20210707174930-b2678640329d/go.mod h1:sHAZo8Y/PMppsKX6llqj9HPjDT8PM/PYRxWZCCt1zlc=
|
||||
k8s.io/component-base v0.0.0-20210702054709-fddd92849e34 h1:L7kJX0+rX5SJ2ZUaFy8zarcUMW0+2AHkd3gyuIp0ZLM=
|
||||
k8s.io/component-base v0.0.0-20210702054709-fddd92849e34/go.mod h1:KuldLgSPMxWtcVmPn3hcUoWNJqm7HEdVcSID+ZdAB24=
|
||||
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||
|
|
|
|||
|
|
@ -58,6 +58,8 @@ type GarbageCollectionDeleteStrategy interface {
|
|||
type RESTGracefulDeleteStrategy interface {
|
||||
// CheckGracefulDelete should return true if the object can be gracefully deleted and set
|
||||
// any default values on the DeleteOptions.
|
||||
// NOTE: if return true, `options.GracePeriodSeconds` must be non-nil (nil will fail),
|
||||
// that's what tells the deletion how "graceful" to be.
|
||||
CheckGracefulDelete(ctx context.Context, obj runtime.Object, options *metav1.DeleteOptions) bool
|
||||
}
|
||||
|
||||
|
|
@ -136,9 +138,15 @@ func BeforeDelete(strategy RESTDeleteStrategy, ctx context.Context, obj runtime.
|
|||
return false, true, nil
|
||||
}
|
||||
|
||||
// `CheckGracefulDelete` will be implemented by specific strategy
|
||||
if !gracefulStrategy.CheckGracefulDelete(ctx, obj, options) {
|
||||
return false, false, nil
|
||||
}
|
||||
|
||||
if options.GracePeriodSeconds == nil {
|
||||
return false, false, errors.NewInternalError(fmt.Errorf("options.GracePeriodSeconds should not be nil"))
|
||||
}
|
||||
|
||||
now := metav1.NewTime(metav1.Now().Add(time.Second * time.Duration(*options.GracePeriodSeconds)))
|
||||
objectMeta.SetDeletionTimestamp(&now)
|
||||
objectMeta.SetDeletionGracePeriodSeconds(options.GracePeriodSeconds)
|
||||
|
|
@ -149,6 +157,7 @@ func BeforeDelete(strategy RESTDeleteStrategy, ctx context.Context, obj runtime.
|
|||
if objectMeta.GetGeneration() > 0 {
|
||||
objectMeta.SetGeneration(objectMeta.GetGeneration() + 1)
|
||||
}
|
||||
|
||||
return true, false, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue