Kubectl patch

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

kubectl patch supports the following modes: strategic merge patch ("strategic"), JSON merge patch ("merge") and JSON patch ("json").

Caveats

⚠️There are situations when the patch apparently succeeds, the kubectl patch command exits with 0 and if the resource is queried immediately, the patch seems to be applied, but when the resource is queried a while later (15 secs), it becomes apparent that the "patch" did not take. This happened while trying to unbind a PV from the PVC while the PVC is still active.

Usage Examples

JSON Patch Usage Examples

Delete a Field with a JSON Patch

Unbind a PVC from a PV by deleting the PV's claimRef:

kubectl patch pv my-pv --type=json --patch='[{"op": "remove", "path": "/spec/claimRef"}]'

Update the Image on a Deployment

Updates the image field of the first container in the containers array.

kubectl patch deployment my-deployment --type=json --patch='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value": "docker.io/ovidiufeodorov/httpd:test_2"}]'