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 }