web-dev-qa-db-fra.com

Comment enregistrer le contenu d'une configmap dans un fichier avec kubectl et jsonpath?

J'essaie d'enregistrer le contenu d'une configmap dans un fichier sur mon disque dur local. Kubectl prend en charge la sélection avec JSONPath mais je ne trouve pas l'expression dont j'ai besoin pour sélectionner uniquement le contenu du fichier.

La configmap a été créée à l'aide de la commande

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

Quand je cours

kubectl describe configmap my-configmap

Je vois la sortie suivante:

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

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

Le plus loin que j'ai obtenu, donc sélectionner uniquement le contenu du fichier est le suivant:

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

Quelles sorties

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

La sortie que je veux est

{
  "key": "value"
}

Quelle est la dernière pièce du puzzle JSONPath?

8
PeterH

Il y a un --- issue au repo Kubernetes GitHub avec une liste de choses qui doivent être corrigées en ce qui concerne kubectl (et JSONpath), l'un d'eux est un problème 16707La sortie du modèle -jsonpath doit être json.

Modifier:

Que dis-tu de ça:

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

Je viens de réaliser que j'avais répond une autre question liée (genre de) à celle-ci. La commande ci-dessus devrait produire ce que vous aviez en tête!

16
mikejoh