github.com/apprenda/kismatic@v1.12.0/integration-tests/addons.go (about) 1 package integration_tests 2 3 import ( 4 "fmt" 5 "os" 6 "os/exec" 7 "time" 8 9 "github.com/apprenda/kismatic/pkg/retry" 10 ) 11 12 func verifyHeapster(master NodeDeets, sshKey string) error { 13 // create volumes for alertmanager, prometheus-server and grafana 14 cmd := exec.Command("./kismatic", "volume", "add", "1", "-f", "kismatic-testing.yaml") 15 cmd.Stdout = os.Stdout 16 cmd.Stderr = os.Stderr 17 18 if err := cmd.Run(); err != nil { 19 return fmt.Errorf("error adding volume: %v", err) 20 } 21 22 // copy PVCs 23 pvcs := []string{"influxdb-pvc.yaml"} 24 for _, f := range pvcs { 25 if err := copyFileToRemote(fmt.Sprintf("test-resources/heapster/%s", f), fmt.Sprintf("/tmp/%s", f), master, sshKey, 1*time.Minute); err != nil { 26 return fmt.Errorf("error copying %s: %v", f, err) 27 } 28 } 29 30 // create PVCs 31 for _, f := range pvcs { 32 if err := runViaSSH([]string{fmt.Sprintf("sudo kubectl --kubeconfig /root/.kube/config apply -f /tmp/%s", f)}, []NodeDeets{master}, sshKey, 1*time.Minute); err != nil { 33 return fmt.Errorf("error creating pvc %s: %v", f, err) 34 } 35 } 36 37 // verify pods are up 38 deployments := map[string]int{ 39 "heapster": 3, 40 "heapster-influxdb": 1, 41 } 42 return verifyDeployment(deployments, master, sshKey) 43 } 44 45 func verifyTiller(master NodeDeets, sshKey string) error { 46 // verify pods are up 47 deployments := map[string]int{ 48 "tiller-deploy": 1, 49 } 50 return verifyDeployment(deployments, master, sshKey) 51 } 52 53 func verifyDeployment(deployments map[string]int, master NodeDeets, sshKey string) error { 54 for k, v := range deployments { 55 if err := retry.WithBackoff(func() error { 56 return runViaSSH([]string{fmt.Sprintf("sudo kubectl --kubeconfig /root/.kube/config get deployment %s -n kube-system -o jsonpath='{.status.availableReplicas}' | grep %d", k, v)}, []NodeDeets{master}, sshKey, 1*time.Minute) 57 }, 10); err != nil { 58 return fmt.Errorf("error verifying deployment %s: %v", k, err) 59 } 60 } 61 62 return nil 63 }