web-dev-qa-db-ja.com

kubectlとjsonpathを使用してconfigmapのコンテンツをファイルに保存する方法は?

ローカルハードドライブ上のファイルにconfigmapの内容を保存しようとしています。 KubectlはJSONPathでの選択をサポートしていますが、ファイルのコンテンツのみを選択するために必要な式が見つかりません。

Configmapは次のコマンドを使用して作成されました

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

私が走るとき

kubectl describe configmap my-configmap

次の出力が表示されます。

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

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

私が得た最も遠いので、ファイルのコンテンツのみを選択することはこれです:

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

どの出力

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

私が欲しい出力は

{
  "key": "value"
}

JSONPathパズルの最後のピースは何ですか?

8
PeterH

オープン issue がKubernetes GitHubリポジトリにあり、kubectl(およびJSONpath)に関して修正する必要があるもののリストがあり、そのうちの1つが問題です 16707jsonpathテンプレート出力はjsonである必要があります。

編集:

これはどう:

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

私は answered にこれに関連する別の質問(ある種)があることに気づきました。上記のコマンドは、あなたが考えていたものを出力するはずです!

16
mikejoh