Parsing json in kubernetes use jq

kubectl get ing/name-ingress -n namespace -o json | \
jq 'del(
  .metadata.annotations,
  .metadata.creationTimestamp,
  .metadata.generation,
  .metadata.resourceVersion,
  .metadata.uid,
  .status
)' | \
yq eval --prettyPrint > name-ingress.yml

kubectl get deployment/name-deployment -n namespace -o json | \
jq 'del(
  .metadata.resourceVersion,
  .metadata.uid,
  .metadata.selfLink,
  .metadata.creationTimestamp,
  .metadata.annotations,
  .metadata.generation,
  .metadata.ownerReferences,
  .spec.ClusterIP,
  .specClusterIPS,
  .status
)' | \
yq eval --prettyPrint > name-deployment.yml

kubectl get service/service-name -n namespace -o json | \
jq 'del(
    .metadata.creationTimestamp,
    .metadata.resourceVersion,
    .metadata.uid,
    .metadata.annotations,
    .metadata.generation,
    .metadata.selfLink,
    .status
)' | \
yq eval --prettyPrint > name-service.yml

kubectl get pvc/pvc-name -n namespace -o json | \
jq 'del(
    .metadata.creationTimestamp,
    .metadata.resourceVersion,
    .metadata.uid,
    .metadata.annotations,
    .metadata.finalizers,
    .metadata.managedFields,
    .spec.volumeName,
    .status
)' | \
yq eval --prettyPrint > name-pvc.yml

Last updated