@@ -149,6 +149,20 @@ def patch(self, resource, body=None, name=None, namespace=None, **kwargs):
149
149
150
150
return self .request ('patch' , path , body = body , content_type = content_type , ** kwargs )
151
151
152
+ def server_side_apply (self , resource , body = None , name = None , namespace = None , force_conflicts = None , ** kwargs ):
153
+ body = self .serialize_body (body )
154
+ name = name or body .get ('metadata' , {}).get ('name' )
155
+ if not name :
156
+ raise ValueError ("name is required to patch {}.{}" .format (resource .group_version , resource .kind ))
157
+ if resource .namespaced :
158
+ namespace = self .ensure_namespace (resource , namespace , body )
159
+
160
+ # force content type to 'application/apply-patch+yaml'
161
+ kwargs .update ({'content_type' : 'application/apply-patch+yaml' })
162
+ path = resource .path (name = name , namespace = namespace )
163
+
164
+ return self .request ('patch' , path , body = body , force_conflicts = force_conflicts , ** kwargs )
165
+
152
166
def watch (self , resource , namespace = None , name = None , label_selector = None , field_selector = None , resource_version = None , timeout = None , watcher = None ):
153
167
"""
154
168
Stream events for a resource from the Kubernetes API
@@ -227,6 +241,10 @@ def request(self, method, path, body=None, **params):
227
241
query_params .append (('orphanDependents' , params ['orphan_dependents' ]))
228
242
if params .get ('dry_run' ) is not None :
229
243
query_params .append (('dryRun' , params ['dry_run' ]))
244
+ if params .get ('field_manager' ) is not None :
245
+ query_params .append (('fieldManager' , params ['field_manager' ]))
246
+ if params .get ('force_conflicts' ) is not None :
247
+ query_params .append (('force' , params ['force_conflicts' ]))
230
248
231
249
header_params = params .get ('header_params' , {})
232
250
form_params = []
0 commit comments