简体   繁体   中英

How to save content of a configmap to a file with kubectl and jsonpath?

I'm trying to save the contents of a configmap to a file on my local hard drive. Kubectl supports selecting with JSONPath but I can't find the expression I need to select just the file contents.

The configmap was created using the command

kubectl create configmap my-configmap --from-file=my.configmap.json=my.file.json

When I run

kubectl describe configmap my-configmap

I see the following output:

Name:         my-configmap 
Namespace:    default 
Labels:       <none> 
Annotations:  <none>

Data
==== 
my.file.json:
---- 
{
    "key": "value" 
} 
Events:  <none>

The furthest I've gotten so selecting only the file contents is this:

 kubectl get configmap my-configmap -o jsonpath="{.data}"

Which outputs

map[my.file.json:{
    "key": "value"
}]

The output that I want is

{
  "key": "value"
}

What is the last piece of the JSONPath puzzle?

There's an open issue at the Kubernetes GitHub repo with a list of things that needs to be fixed in regards to kubectl (and JSONpath), one of them are issue 16707 jsonpath template output should be json .

Edit:

How about this:

kubectl get cm my-configmap -o jsonpath='{.data.my\.file\.json}'

I just realized i had answered another question related (kind of) to this one. The above command should output what you had in mind!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM