github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/caas/kubernetes/provider/metadata_test.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package provider_test
     5  
     6  import (
     7  	"github.com/juju/juju/caas/kubernetes/provider"
     8  	gc "gopkg.in/check.v1"
     9  	core "k8s.io/api/core/v1"
    10  )
    11  
    12  func newNode(labels map[string]string) core.Node {
    13  	n := core.Node{}
    14  	n.SetLabels(labels)
    15  	return n
    16  }
    17  
    18  var nodesTestCases = []struct {
    19  	expectedOut string
    20  	node        core.Node
    21  }{
    22  	{
    23  		expectedOut: "",
    24  		node:        newNode(map[string]string{}),
    25  	},
    26  	{
    27  		expectedOut: "",
    28  		node: newNode(map[string]string{
    29  			"cloud.google.com/gke-nodepool": "",
    30  		}),
    31  	},
    32  	{
    33  		expectedOut: "",
    34  		node: newNode(map[string]string{
    35  			"cloud.google.com/gke-os-distribution": "",
    36  		}),
    37  	},
    38  	{
    39  		expectedOut: "gce",
    40  		node: newNode(map[string]string{
    41  			"cloud.google.com/gke-nodepool":        "",
    42  			"cloud.google.com/gke-os-distribution": "",
    43  		}),
    44  	},
    45  	{
    46  		expectedOut: "azure",
    47  		node: newNode(map[string]string{
    48  			"kubernetes.azure.com/cluster": "",
    49  		}),
    50  	},
    51  	{
    52  		expectedOut: "ec2",
    53  		node: newNode(map[string]string{
    54  			"manufacturer": "amazon_ec2",
    55  		}),
    56  	},
    57  }
    58  
    59  func (s *K8sSuite) TestGetCloudProviderFromNodeMeta(c *gc.C) {
    60  	for _, v := range nodesTestCases {
    61  		c.Check(provider.GetCloudProviderFromNodeMeta(v.node), gc.Equals, v.expectedOut)
    62  	}
    63  }
    64  
    65  func (s *K8sSuite) TestK8sCloudCheckersValidationPass(c *gc.C) {
    66  	// CompileK8sCloudCheckers will panic if there is invalid requirement definition so check it by calling it.
    67  	cloudCheckers := provider.CompileK8sCloudCheckers()
    68  	c.Assert(cloudCheckers, gc.NotNil)
    69  }