@@ -33,7 +33,6 @@ import (
33
33
"k8s.io/apimachinery/pkg/util/strategicpatch"
34
34
"k8s.io/apimachinery/pkg/util/wait"
35
35
"k8s.io/cli-runtime/pkg/resource"
36
- "k8s.io/client-go/dynamic"
37
36
oapi "k8s.io/kube-openapi/pkg/util/proto"
38
37
cmdutil "k8s.io/kubectl/pkg/cmd/util"
39
38
"k8s.io/kubectl/pkg/scheme"
@@ -52,18 +51,16 @@ const (
52
51
53
52
// Patcher defines options to patch OpenAPI objects.
54
53
type Patcher struct {
55
- Mapping * meta.RESTMapping
56
- Helper * resource.Helper
57
- DynamicClient dynamic.Interface
54
+ Mapping * meta.RESTMapping
55
+ Helper * resource.Helper
58
56
59
57
Overwrite bool
60
58
BackOff clockwork.Clock
61
59
62
- Force bool
63
- Cascade bool
64
- Timeout time.Duration
65
- GracePeriod int
66
- ServerDryRun bool
60
+ Force bool
61
+ Cascade bool
62
+ Timeout time.Duration
63
+ GracePeriod int
67
64
68
65
// If set, forces the patch against a specific resourceVersion
69
66
ResourceVersion * string
@@ -74,30 +71,30 @@ type Patcher struct {
74
71
OpenapiSchema openapi.Resources
75
72
}
76
73
77
- func newPatcher (o * ApplyOptions , info * resource.Info ) (* Patcher , error ) {
74
+ func newPatcher (o * ApplyOptions , info * resource.Info , helper * resource. Helper ) (* Patcher , error ) {
78
75
var openapiSchema openapi.Resources
79
76
if o .OpenAPIPatch {
80
77
openapiSchema = o .OpenAPISchema
81
78
}
82
79
83
80
return & Patcher {
84
81
Mapping : info .Mapping ,
85
- Helper : resource .NewHelper (info .Client , info .Mapping ).WithFieldManager (o .FieldManager ),
86
- DynamicClient : o .DynamicClient ,
82
+ Helper : helper ,
87
83
Overwrite : o .Overwrite ,
88
84
BackOff : clockwork .NewRealClock (),
89
85
Force : o .DeleteOptions .ForceDeletion ,
90
86
Cascade : o .DeleteOptions .Cascade ,
91
87
Timeout : o .DeleteOptions .Timeout ,
92
88
GracePeriod : o .DeleteOptions .GracePeriod ,
93
- ServerDryRun : o .DryRunStrategy == cmdutil .DryRunServer ,
94
89
OpenapiSchema : openapiSchema ,
95
90
Retries : maxPatchRetry ,
96
91
}, nil
97
92
}
98
93
99
94
func (p * Patcher ) delete (namespace , name string ) error {
100
- return runDelete (namespace , name , p .Mapping , p .DynamicClient , p .Cascade , p .GracePeriod , p .ServerDryRun )
95
+ options := asDeleteOptions (p .Cascade , p .GracePeriod )
96
+ _ , err := p .Helper .DeleteWithOptions (namespace , name , & options )
97
+ return err
101
98
}
102
99
103
100
func (p * Patcher ) patchSimple (obj runtime.Object , modified []byte , source , namespace , name string , errOut io.Writer ) ([]byte , runtime.Object , error ) {
@@ -178,7 +175,7 @@ func (p *Patcher) patchSimple(obj runtime.Object, modified []byte, source, names
178
175
}
179
176
}
180
177
181
- patchedObj , err := p .Helper .DryRun ( p . ServerDryRun ). Patch (namespace , name , patchType , patch , nil )
178
+ patchedObj , err := p .Helper .Patch (namespace , name , patchType , patch , nil )
182
179
return patch , patchedObj , err
183
180
}
184
181
@@ -223,11 +220,11 @@ func (p *Patcher) deleteAndCreate(original runtime.Object, modified []byte, name
223
220
if err != nil {
224
221
return modified , nil , err
225
222
}
226
- createdObject , err := p .Helper .DryRun ( p . ServerDryRun ). Create (namespace , true , versionedObject )
223
+ createdObject , err := p .Helper .Create (namespace , true , versionedObject )
227
224
if err != nil {
228
225
// restore the original object if we fail to create the new one
229
226
// but still propagate and advertise error to user
230
- recreated , recreateErr := p .Helper .DryRun ( p . ServerDryRun ). Create (namespace , true , original )
227
+ recreated , recreateErr := p .Helper .Create (namespace , true , original )
231
228
if recreateErr != nil {
232
229
err = fmt .Errorf ("An error occurred force-replacing the existing object with the newly provided one:\n \n %v.\n \n Additionally, an error occurred attempting to restore the original object:\n \n %v" , err , recreateErr )
233
230
} else {
0 commit comments