Ashley
Ashley

Reputation: 1629

Safest and best way to retrieve the current configuration file in yaml for a single or bunch of resources in a kubernetes cluster

I applied a file xyz.yml sometime ago in EKS (Amazon elastic kubernetes service cluster) to deploy a statefulset pod from my local machine. This file is versioned in GitHub. However, there were few manual applies made using kubectl for this file to the kubernetes cluster after that, so it looks like the source file i have right now in GitHub might be out of sync from the cluster. Is there a safe and easy way to retrieve this file in yaml directly from the cluster using kubectl so that i can use that from now in my GitHub source code. I do not want to make changes in my GitHub source code and then apply them to the cluster as the file might be out of sync. If somehow i could directly retrieve the file in YAML from the kubernetes cluster, that would really help solve the problem. I tried --dry-run or kubectl diff but don't seem to be helping. I am new to kubernetes, hence do not want to experiment with commands directly on the cluster. Any help here would be greatly appreciated.

Cheers,

Ashley

Upvotes: 1

Views: 1020

Answers (2)

weibeld
weibeld

Reputation: 15282

You can get the current YAML of individual resources with:

kubectl get <resource> -o yaml

But you can't get all the resources that you created with this file at once because Kubernetes doesn't keep track of the manifest files in which the resource definitions were supplied.

So you would need to check which resources were created by your file and get them individually as above. Or if all the resources in this file have common labels, perhaps you could get them more easily by these labels.

Upvotes: 1

herbertgoto
herbertgoto

Reputation: 359

You can try with edit:

kubectl -n <namespace name> edit [deployment, pod, svc] <name>

Upvotes: 1

Related Questions