Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. package main
  2.  
  3. import(
  4. "fmt"
  5. "flag"
  6. "os"
  7. "log"
  8. "path/filepath"
  9. "k8s.io/client-go/tools/clientcmd"
  10. "k8s.io/client-go/kubernetes"
  11. "k8s.io/kubernetes/pkg/apis/core/v1"
  12. metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  13. )
  14.  
  15. func main() {
  16. var ns, label, field string
  17.  
  18. flag.StringVar(&ns, "namespace", "", "namespace")
  19. flag.StringVar(&label, "l", "", "Label selector")
  20. flag.StringVar(&field, "f", "", "Field selector")
  21.  
  22. kubeconfig := filepath.Join(
  23. os.Getenv("HOME"), ".kube", "config",
  24. )
  25.  
  26. config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
  27. if err != nil {
  28. log.Fatal(err)
  29. }
  30.  
  31. clientset, err := kubernetes.NewForConfig(config)
  32. if err != nil {
  33. log.Fatal(err)
  34. }
  35.  
  36. api := clientset.CoreV1()
  37.  
  38. // setup list options
  39. listOptions := metav1.ListOptions{
  40. LabelSelector: label,
  41. FieldSelector: field,
  42. }
  43.  
  44. pvcs, err := api.PersistentVolumeClaims(ns).List(listOptions)
  45. if err != nil {
  46. log.Fatal(err)
  47. }
  48.  
  49. printPVCs(pvcs)
  50. }
  51.  
  52. func printPVCs(pvcs *v1.PersistentVolumeClaimList) {
  53. template := "%-32s%-8s%-8s\n"
  54. fmt.Printf(template, "NAME", "STATUS", "CAPACITY")
  55. for _, pvc := range pvcs.Items {
  56. quant := pvc.Spec.Resources.Requests[v1.ResourceStorage]
  57. fmt.Printf(
  58. template,
  59. pvc.Name,
  60. string(pvc.Status.Phase),
  61. quant.String())
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement