Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

kubectl patch yaml file not resource object

Tags:

yaml

kubectl

Is there a way to patch a yaml file with kubectl patch?

So I mean not to patch a already deployed e.g. deployment with a json array but a file:

kubectl patch -f deployment.yaml -p '{"spec":{"containers":[{"name":"test","image":"test"}]}}'

(Code snippet not working)

Or if this is not possible how to best practice manipulate a kubernetes yaml based on a json array?

like image 643
tech34841916559242495 Avatar asked Sep 20 '25 03:09

tech34841916559242495


1 Answers

If you look at the help documents for kubectl you can see that it is not a supported feature:

$> kubectl patch -h
Update field(s) of a resource using strategic merge patch, a JSON merge patch, or a JSON patch.

Since files on your filesystem are not API resources. I personally believe the method method for manipulating Kubernetes manifests with JSON patches would be Kustomize.

Kustomize is an Overlay Engine. Similar to Helm, it is designed in a way that automates the deployment of software to Kubernetes. They differ, however, in how they do so. Where Helm would manage a list of variable files that are then injected into a template at runtime, Kustomize would instead perform a merge of a patch over a generic example file.

These patches can be defined in a couple ways. One of which is patchesJSON6902. Here is an example of how one would do so.

like image 55
TJ Zimmerman Avatar answered Sep 23 '25 11:09

TJ Zimmerman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!