1KUBERNETES(1)(kubernetes)                            KUBERNETES(1)(kubernetes)
2
3
4
5Eric Paris Jan 2015
6
7

NAME

9       kubectl patch - Update field(s) of a resource
10
11
12

SYNOPSIS

14       kubectl patch [OPTIONS]
15
16
17

DESCRIPTION

19       Update field(s) of a resource using strategic merge patch, a JSON merge
20       patch, or a JSON patch.
21
22
23       JSON and YAML formats are accepted.
24
25
26

OPTIONS

28       --allow-missing-template-keys=true      If true, ignore any  errors  in
29       templates  when a field or map key is missing in the template. Only ap‐
30       plies to golang and jsonpath output formats.
31
32
33       --dry-run="none"      Must be "none", "server", or "client". If  client
34       strategy, only print the object that would be sent, without sending it.
35       If server strategy, submit server-side request without  persisting  the
36       resource.
37
38
39       --field-manager="kubectl-patch"       Name of the manager used to track
40       field ownership.
41
42
43       -f, --filename=[]      Filename, directory, or URL to files identifying
44       the resource to update
45
46
47       -k,  --kustomize=""      Process the kustomization directory. This flag
48       can't be used together with -f or -R.
49
50
51       --local=false      If true, patch will operate on the  content  of  the
52       file, not the server-side resource.
53
54
55       -o,  --output=""       Output  format.  One  of: json|yaml|name|go-tem‐
56       plate|go-template-file|template|templatefile|jsonpath|json‐
57       path-as-json|jsonpath-file.
58
59
60       -p, --patch=""      The patch to be applied to the resource JSON file.
61
62
63       --patch-file=""      A file containing a patch to be applied to the re‐
64       source.
65
66
67       --record=false      Record current kubectl command in the resource  an‐
68       notation.  If  set to false, do not record the command. If set to true,
69       record the command. If not set, default to updating the existing  anno‐
70       tation value only if one already exists.
71
72
73       -R, --recursive=false      Process the directory used in -f, --filename
74       recursively. Useful when you want to manage related manifests organized
75       within the same directory.
76
77
78       --show-managed-fields=false       If  true, keep the managedFields when
79       printing objects in JSON or YAML format.
80
81
82       --template=""      Template string or path to template file to use when
83       -o=go-template, -o=go-template-file. The template format is golang tem‐
84       plates [http://golang.org/pkg/text/template/#pkg-overview].
85
86
87       --type="strategic"      The type of patch being provided; one of  [json
88       merge strategic]
89
90
91

OPTIONS INHERITED FROM PARENT COMMANDS

93       --add-dir-header=false       If  true,  adds  the file directory to the
94       header of the log messages
95
96
97       --alsologtostderr=false      log to standard error as well as files
98
99
100       --application-metrics-count-limit=100      Max  number  of  application
101       metrics to store (per container)
102
103
104       --as=""      Username to impersonate for the operation
105
106
107       --as-group=[]       Group  to  impersonate for the operation, this flag
108       can be repeated to specify multiple groups.
109
110
111       --azure-container-registry-config=""      Path to the  file  containing
112       Azure container registry configuration information.
113
114
115       --boot-id-file="/proc/sys/kernel/random/boot_id"        Comma-separated
116       list of files to check for boot-id. Use the first one that exists.
117
118
119       --cache-dir="/builddir/.kube/cache"      Default cache directory
120
121
122       --certificate-authority=""      Path to a cert file for the certificate
123       authority
124
125
126       --client-certificate=""      Path to a client certificate file for TLS
127
128
129       --client-key=""      Path to a client key file for TLS
130
131
132       --cloud-provider-gce-l7lb-src-cidrs=130.211.0.0/22,35.191.0.0/16
133            CIDRs opened in GCE firewall for  L7  LB  traffic  proxy    health
134       checks
135
136
137       --cloud-provider-gce-lb-src-cidrs=130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16
138            CIDRs opened in GCE firewall for  L4  LB  traffic  proxy    health
139       checks
140
141
142       --cluster=""      The name of the kubeconfig cluster to use
143
144
145       --container-hints="/etc/cadvisor/container_hints.json"      location of
146       the container hints file
147
148
149       --containerd="/run/containerd/containerd.sock"      containerd endpoint
150
151
152       --containerd-namespace="k8s.io"      containerd namespace
153
154
155       --context=""      The name of the kubeconfig context to use
156
157
158       --default-not-ready-toleration-seconds=300      Indicates  the  tolera‐
159       tionSeconds  of  the toleration for notReady:NoExecute that is added by
160       default to every pod that does not already have such a toleration.
161
162
163       --default-unreachable-toleration-seconds=300      Indicates the tolera‐
164       tionSeconds  of  the toleration for unreachable:NoExecute that is added
165       by default to every pod that does not already have such a toleration.
166
167
168       --disable-root-cgroup-stats=false      Disable collecting  root  Cgroup
169       stats
170
171
172       --docker="unix:///var/run/docker.sock"      docker endpoint
173
174
175       --docker-env-metadata-whitelist=""      a comma-separated list of envi‐
176       ronment variable keys matched with specified prefix that  needs  to  be
177       collected for docker containers
178
179
180       --docker-only=false       Only  report docker containers in addition to
181       root stats
182
183
184       --docker-root="/var/lib/docker"      DEPRECATED: docker  root  is  read
185       from docker info (this is a fallback, default: /var/lib/docker)
186
187
188       --docker-tls=false      use TLS to connect to docker
189
190
191       --docker-tls-ca="ca.pem"      path to trusted CA
192
193
194       --docker-tls-cert="cert.pem"      path to client certificate
195
196
197       --docker-tls-key="key.pem"      path to private key
198
199
200       --enable-load-reader=false      Whether to enable cpu load reader
201
202
203       --event-storage-age-limit="default=0"      Max length of time for which
204       to store events (per type). Value is a comma separated list of key val‐
205       ues,  where the keys are event types (e.g.: creation, oom) or "default"
206       and the value is a duration. Default is applied  to  all  non-specified
207       event types
208
209
210       --event-storage-event-limit="default=0"       Max  number  of events to
211       store (per type). Value is a comma separated list of key values,  where
212       the  keys  are  event  types (e.g.: creation, oom) or "default" and the
213       value is an integer. Default is  applied  to  all  non-specified  event
214       types
215
216
217       --global-housekeeping-interval=1m0s      Interval between global house‐
218       keepings
219
220
221       --housekeeping-interval=10s      Interval between container  housekeep‐
222       ings
223
224
225       --insecure-skip-tls-verify=false      If true, the server's certificate
226       will not be checked for validity. This will make your HTTPS connections
227       insecure
228
229
230       --kubeconfig=""       Path  to  the  kubeconfig file to use for CLI re‐
231       quests.
232
233
234       --log-backtrace-at=:0      when logging hits line file:N, emit a  stack
235       trace
236
237
238       --log-cadvisor-usage=false       Whether to log the usage of the cAdvi‐
239       sor container
240
241
242       --log-dir=""      If non-empty, write log files in this directory
243
244
245       --log-file=""      If non-empty, use this log file
246
247
248       --log-file-max-size=1800      Defines the maximum size a log  file  can
249       grow to. Unit is megabytes. If the value is 0, the maximum file size is
250       unlimited.
251
252
253       --log-flush-frequency=5s      Maximum number  of  seconds  between  log
254       flushes
255
256
257       --logtostderr=true      log to standard error instead of files
258
259
260       --machine-id-file="/etc/machine-id,/var/lib/dbus/machine-id"
261            Comma-separated list of files to check  for  machine-id.  Use  the
262       first one that exists.
263
264
265       --match-server-version=false        Require  server  version  to  match
266       client version
267
268
269       -n, --namespace=""      If present, the namespace scope  for  this  CLI
270       request
271
272
273       --one-output=false      If true, only write logs to their native sever‐
274       ity level (vs also writing to each lower severity level)
275
276
277       --password=""      Password for basic authentication to the API server
278
279
280       --profile="none"        Name   of   profile   to   capture.   One    of
281       (none|cpu|heap|goroutine|threadcreate|block|mutex)
282
283
284       --profile-output="profile.pprof"       Name  of  the  file to write the
285       profile to
286
287
288       --referenced-reset-interval=0      Reset interval for referenced  bytes
289       (container_referenced_bytes metric), number of measurement cycles after
290       which referenced bytes are cleared, if set to 0  referenced  bytes  are
291       never cleared (default: 0)
292
293
294       --request-timeout="0"       The length of time to wait before giving up
295       on a single server request. Non-zero values  should  contain  a  corre‐
296       sponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't time‐
297       out requests.
298
299
300       -s, --server=""      The address and port of the Kubernetes API server
301
302
303       --skip-headers=false      If true, avoid header  prefixes  in  the  log
304       messages
305
306
307       --skip-log-headers=false       If  true, avoid headers when opening log
308       files
309
310
311       --stderrthreshold=2      logs at or above this threshold go to stderr
312
313
314       --storage-driver-buffer-duration=1m0s      Writes in the storage driver
315       will  be  buffered  for  this duration, and committed to the non memory
316       backends as a single transaction
317
318
319       --storage-driver-db="cadvisor"      database name
320
321
322       --storage-driver-host="localhost:8086"      database host:port
323
324
325       --storage-driver-password="root"      database password
326
327
328       --storage-driver-secure=false      use secure connection with database
329
330
331       --storage-driver-table="stats"      table name
332
333
334       --storage-driver-user="root"      database username
335
336
337       --tls-server-name=""      Server name to  use  for  server  certificate
338       validation.  If  it  is  not provided, the hostname used to contact the
339       server is used
340
341
342       --token=""      Bearer token for authentication to the API server
343
344
345       --update-machine-info-interval=5m0s      Interval between machine  info
346       updates.
347
348
349       --user=""      The name of the kubeconfig user to use
350
351
352       --username=""      Username for basic authentication to the API server
353
354
355       -v, --v=0      number for the log level verbosity
356
357
358       --version=false      Print version information and quit
359
360
361       --vmodule=        comma-separated   list   of  pattern=N  settings  for
362       file-filtered logging
363
364
365       --warnings-as-errors=false      Treat warnings received from the server
366       as errors and exit with a non-zero exit code
367
368
369

EXAMPLE

371                # Partially update a node using a strategic merge patch. Specify the patch as JSON.
372                kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'
373
374                # Partially update a node using a strategic merge patch. Specify the patch as YAML.
375                kubectl patch node k8s-node-1 -p $'spec:\n unschedulable: true'
376
377                # Partially update a node identified by the type and name specified in "node.json" using strategic merge patch.
378                kubectl patch -f node.json -p '{"spec":{"unschedulable":true}}'
379
380                # Update a container's image; spec.containers[*].name is required because it's a merge key.
381                kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'
382
383                # Update a container's image using a json patch with positional arrays.
384                kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'
385
386
387
388

SEE ALSO

390       kubectl(1),
391
392
393

HISTORY

395       January  2015,  Originally compiled by Eric Paris (eparis at redhat dot
396       com) based on the kubernetes source material, but hopefully  they  have
397       been automatically generated since!
398
399
400
401Manuals                              User            KUBERNETES(1)(kubernetes)
Impressum