From 03c3442dfc209637ba977a60e725b10aa27a31d3 Mon Sep 17 00:00:00 2001 From: Jack Francis Date: Thu, 14 Dec 2017 11:03:58 -0800 Subject: [PATCH] more general vlabs kubernetes defaults enforcement --- pkg/api/convertertoapi.go | 13 +++++++----- pkg/api/convertertoapi_test.go | 38 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/pkg/api/convertertoapi.go b/pkg/api/convertertoapi.go index 6b03043f7e..d413c4098a 100644 --- a/pkg/api/convertertoapi.go +++ b/pkg/api/convertertoapi.go @@ -564,6 +564,7 @@ func convertVLabsOrchestratorProfile(vp *vlabs.Properties, api *OrchestratorProf api.KubernetesConfig = &KubernetesConfig{} convertVLabsKubernetesConfig(vp, api.KubernetesConfig) } + setVlabsKubernetesDefaults(vp, api) api.OrchestratorVersion = common.RationalizeReleaseAndVersion( vlabscs.OrchestratorType, vlabscs.OrchestratorRelease, @@ -620,15 +621,17 @@ func convertVLabsKubernetesConfig(vp *vlabs.Properties, api *KubernetesConfig) { api.EtcdVersion = vlabs.EtcdVersion api.EtcdDiskSizeGB = vlabs.EtcdDiskSizeGB convertAddonsToAPI(vlabs, api) - setVlabsDefaultsKubernetesConfig(vp, api) } -func setVlabsDefaultsKubernetesConfig(vp *vlabs.Properties, api *KubernetesConfig) { - if api.NetworkPolicy == "" { +func setVlabsKubernetesDefaults(vp *vlabs.Properties, api *OrchestratorProfile) { + if api.KubernetesConfig == nil { + api.KubernetesConfig = &KubernetesConfig{} + } + if api.KubernetesConfig.NetworkPolicy == "" { if vp.HasWindows() { - api.NetworkPolicy = vlabs.DefaultNetworkPolicyWindows + api.KubernetesConfig.NetworkPolicy = vlabs.DefaultNetworkPolicyWindows } else { - api.NetworkPolicy = vlabs.DefaultNetworkPolicy + api.KubernetesConfig.NetworkPolicy = vlabs.DefaultNetworkPolicy } } } diff --git a/pkg/api/convertertoapi_test.go b/pkg/api/convertertoapi_test.go index c8c83fed56..d7a6019521 100644 --- a/pkg/api/convertertoapi_test.go +++ b/pkg/api/convertertoapi_test.go @@ -128,3 +128,41 @@ func TestOrchestratorVersion(t *testing.T) { t.Fatalf("incorrect OrchestratorVersion '%s'", cs.Properties.OrchestratorProfile.OrchestratorVersion) } } + +func TestKubernetesVlabsDefaults(t *testing.T) { + vp := makeKubernetesPropertiesVlabs() + ap := makeKubernetesProperties() + setVlabsKubernetesDefaults(vp, ap.OrchestratorProfile) + if ap.OrchestratorProfile.KubernetesConfig == nil { + t.Fatalf("KubernetesConfig cannot be nil after vlabs default conversion") + } + if ap.OrchestratorProfile.KubernetesConfig.NetworkPolicy != vlabs.DefaultNetworkPolicy { + t.Fatalf("vlabs defaults not applied, expected NetworkPolicy: %s, instead got: %s", vlabs.DefaultNetworkPolicy, ap.OrchestratorProfile.KubernetesConfig.NetworkPolicy) + } + + vp = makeKubernetesPropertiesVlabs() + vp.WindowsProfile = &vlabs.WindowsProfile{} + vp.AgentPoolProfiles = append(vp.AgentPoolProfiles, &vlabs.AgentPoolProfile{OSType: "Windows"}) + ap = makeKubernetesProperties() + setVlabsKubernetesDefaults(vp, ap.OrchestratorProfile) + if ap.OrchestratorProfile.KubernetesConfig == nil { + t.Fatalf("KubernetesConfig cannot be nil after vlabs default conversion") + } + if ap.OrchestratorProfile.KubernetesConfig.NetworkPolicy != vlabs.DefaultNetworkPolicyWindows { + t.Fatalf("vlabs defaults not applied, expected NetworkPolicy: %s, instead got: %s", vlabs.DefaultNetworkPolicyWindows, ap.OrchestratorProfile.KubernetesConfig.NetworkPolicy) + } +} + +func makeKubernetesProperties() *Properties { + ap := &Properties{} + ap.OrchestratorProfile = &OrchestratorProfile{} + ap.OrchestratorProfile.OrchestratorType = "Kubernetes" + return ap +} + +func makeKubernetesPropertiesVlabs() *vlabs.Properties { + vp := &vlabs.Properties{} + vp.OrchestratorProfile = &vlabs.OrchestratorProfile{} + vp.OrchestratorProfile.OrchestratorType = "Kubernetes" + return vp +}