github.com/jlmeeker/kismatic@v1.10.1-0.20180612190640-57f9005a1f1a/integration-tests/cloud_integration.go (about)

     1  package integration_tests
     2  
     3  import (
     4  	"fmt"
     5  	"time"
     6  
     7  	"github.com/apprenda/kismatic/pkg/retry"
     8  )
     9  
    10  func testAWSCloudProvider(node NodeDeets, sshKey string) error {
    11  	// uses an ECR image to test cloud-provider
    12  	if err := runViaSSH([]string{`sudo kubectl --kubeconfig /root/.kube/config run cloud-provider-nginx --image=633668368853.dkr.ecr.us-east-1.amazonaws.com/kismatic/nginx --replicas=2 --port=80`}, []NodeDeets{node}, sshKey, 1*time.Minute); err != nil {
    13  		return fmt.Errorf("error creating nginx deployment: %v", err)
    14  	}
    15  
    16  	if err := runViaSSH([]string{`sudo kubectl --kubeconfig /root/.kube/config expose deployment cloud-provider-nginx --port=80 --type=LoadBalancer`}, []NodeDeets{node}, sshKey, 1*time.Minute); err != nil {
    17  		return fmt.Errorf("error creating exposing nginx deployment with a LoadBalancer: %v", err)
    18  	}
    19  
    20  	testErr := retry.WithBackoff(func() error {
    21  		return runViaSSH([]string{"curl `sudo kubectl --kubeconfig /root/.kube/config get svc cloud-provider-nginx -o jsonpath={.status.loadBalancer.ingress[0].hostname}`"}, []NodeDeets{node}, sshKey, 1*time.Minute)
    22  	}, 8)
    23  
    24  	if testErr != nil {
    25  		// get info for diagnosing failure
    26  		runViaSSH([]string{"sudo kubectl --kubeconfig /root/.kube/config describe svc cloud-provider-nginx"}, []NodeDeets{node}, sshKey, 1*time.Minute)
    27  	}
    28  
    29  	if err := runViaSSH([]string{`sudo kubectl --kubeconfig /root/.kube/config delete svc cloud-provider-nginx`}, []NodeDeets{node}, sshKey, 1*time.Minute); err != nil {
    30  		return fmt.Errorf("error deleting service: %v", err)
    31  	}
    32  
    33  	if testErr != nil {
    34  		return fmt.Errorf("error curling LoadBalancer endpoint: %v", testErr)
    35  	}
    36  
    37  	return nil
    38  }