#!/bin/bash

# 获取命令空间 uavcloud-uat 中所有部署（deployment）的镜像名称
kubectl get deployments -n uavcloud-demo -o=jsonpath='{range .items[*]}{.spec.template.spec.containers[*].image}{"\n"}{end}'

# 获取命名空间 uavcloud-uat种所有的configmap，并且保存为独立的文件，文件名为configmap名
mkdir configmaps
kubectl get configmaps -n uavcloud-uat -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}' | while read configmap; do
  kubectl get configmap $configmap -n uavcloud-uat -o yaml > ./configmaps/$configmap.yaml
done

# 获取命名空间 uavcloud-uat种所有的ingress，并且保存为独立的文件，文件名为ingress名
mkdir ingresses
kubectl get ingress -n uavcloud-uat -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}' | while read ingress; do
  kubectl get ingress $ingress -n uavcloud-uat -o yaml > ./ingresses/$ingress.yaml
done


# kubectl删除所有命名空间的状态不正常的pod
kubectl get pods --all-namespaces | awk '{ if($3 != "Running" && $3 != "Completed") print "kubectl delete pod " $2 " -n " $1 }' | sh


# 获取demo空间所有deployment的名称
kubectl get deployments -n uavcloud-demo -o=jsonpath='{.items [*].metadata.name}'