Skip to content

Instantly share code, notes, and snippets.

@benjaminapetersen
Forked from navicore/jsonpath.md
Created May 27, 2022 20:05
Show Gist options
  • Save benjaminapetersen/53f3b54b5a26a50d843a56c230c016c8 to your computer and use it in GitHub Desktop.
Save benjaminapetersen/53f3b54b5a26a50d843a56c230c016c8 to your computer and use it in GitHub Desktop.
for getting multiple fields from kubectl via jsonpath

get name and image and startTime

kubectl get pods -ao jsonpath='{range .items[*]}{@.metadata.name}{" "}{@.spec.containers[*].image}{" "}{@.status.phase}{" "}{@.status.startTime}{"\n"}{end}'| grep track
@benjaminapetersen
Copy link
Author

For readability:

kubectl get pods -o jsonpath='
   {range .items[*]}
      {@.metadata.name}{" "}
      {@..containers.image}{" "}
      {@.status.phase}{" "}
      {@..startTime}{"\n"}
   {end}' | column -t

@benjaminapetersen
Copy link
Author

benjaminapetersen commented Jun 1, 2022

kubectl get app pinniped -n tkg-system -o jsonpath="{'app name: '}{.metadata.name}{'\ngeneration: '}{.metadata.generation}{'\nresourceVersion: '}{.metadata.resourceVersion}{'\nstatus observed generation: '}{.status.observedGeneration}{'\n'}"
#   app name: pinniped
#   generation: 1
#   resourceVersion: 5530702
#   status observed generation: 1

readability again:

kubectl get app pinniped -n tkg-system -o jsonpath="
{'app name: '}{.metadata.name}
{'\ngeneration: '}{.metadata.generation}                                           # leads with newline
{'\nresourceVersion: '}{.metadata.resourceVersion}                         # leads with newline
{'\nstatus observed generation: '}{.status.observedGeneration}    # leads with newline
{'\n'}"

@benjaminapetersen
Copy link
Author

# simple, for a signle federation domain in an unknown namespace
kubectl get federationdomain -A -o jsonpath="{range .items[*]}{@.spec.issuer}{end}"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment