Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "os"
  6. "path/filepath"
  7. "time"
  8.  
  9. apiv1 "k8s.io/api/core/v1"
  10. metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  11. "k8s.io/client-go/kubernetes"
  12. "k8s.io/client-go/tools/clientcmd"
  13. )
  14.  
  15. const ns = "demo"
  16.  
  17. func main() {
  18. clientset := mustNewClientFromOutside()
  19.  
  20. listPods(clientset)
  21. deletePod := deployPod(clientset)
  22. listPods(clientset)
  23. time.Sleep(5 * time.Second)
  24. deletePod()
  25. listPods(clientset)
  26. }
  27.  
  28. func listPods(clientset *kubernetes.Clientset) {
  29. pods, err := clientset.CoreV1().Pods(ns).List(metav1.ListOptions{})
  30. noerror(err)
  31.  
  32. for _, pod := range pods.Items {
  33. fmt.Printf("%s\n", pod.Name)
  34. }
  35. }
  36.  
  37. func deployPod(clientset *kubernetes.Clientset) func() {
  38. podClient := clientset.CoreV1().Pods(ns)
  39. pod, err := podClient.Create(&apiv1.Pod{
  40. ObjectMeta: metav1.ObjectMeta{
  41. Name: "test-pod",
  42. },
  43. Spec: apiv1.PodSpec{
  44. Containers: []apiv1.Container{
  45. {
  46. Name: "test-pod-container",
  47. Image: "b4fun/counter:2018062103",
  48. },
  49. },
  50. },
  51. })
  52. noerror(err)
  53.  
  54. fmt.Printf("created pod: %s\n", pod.Name)
  55.  
  56. return func() {
  57. noerror(podClient.Delete(pod.Name, nil))
  58. }
  59. }
  60.  
  61. func mustNewClientFromOutside() *kubernetes.Clientset {
  62. homedir := os.Getenv("HOME")
  63. kubeconfig := filepath.Join(homedir, ".kube", "config")
  64.  
  65. config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
  66. noerror(err)
  67.  
  68. clientset, err := kubernetes.NewForConfig(config)
  69. noerror(err)
  70.  
  71. return clientset
  72. }
  73.  
  74. func noerror(err error) {
  75. if err != nil {
  76. panic(err)
  77. }
  78. }
  79.  
  80. func int32Ptr(i int32) *int32 { return &i }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement