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

     1  package integration_tests
     2  
     3  import (
     4  	"fmt"
     5  	"time"
     6  )
     7  
     8  func containsLabels(nodes provisionedNodes, sshKey string) error {
     9  	// labels were hardcoded in th plan pattern
    10  	tests := []struct {
    11  		nodes []NodeDeets
    12  		label string
    13  	}{
    14  		{
    15  			nodes: nodes.master,
    16  			label: "com.integrationtest/master:true",
    17  		},
    18  		{
    19  			nodes: nodes.worker,
    20  			label: "com.integrationtest/worker:true",
    21  		},
    22  		{
    23  			nodes: nodes.ingress,
    24  			label: "com.integrationtest/ingress:true",
    25  		},
    26  		{
    27  			nodes: nodes.storage,
    28  			label: "com.integrationtest/storage:true",
    29  		},
    30  	}
    31  	for _, role := range tests {
    32  		for _, n := range role.nodes {
    33  			if err := runViaSSH([]string{fmt.Sprintf("sudo kubectl --kubeconfig /root/.kube/config get nodes %s -o jsonpath='{.metadata.labels}' | grep %q", n.Hostname, role.label)}, []NodeDeets{nodes.master[0]}, sshKey, 1*time.Minute); err != nil {
    34  				return fmt.Errorf("error validating node %q label: %v", n.Hostname, err)
    35  			}
    36  		}
    37  	}
    38  
    39  	return nil
    40  }