From 254fceeb0f9ad8fc77ff6a6747bbcc1dcdcffb7c Mon Sep 17 00:00:00 2001 From: Jack Francis Date: Wed, 13 Jun 2018 16:20:16 -0700 Subject: [PATCH] Azure CNI networkmonitor addon (#3198) --- .../k8s/addons/azure-cni-networkmonitor.yaml | 48 ++ parts/k8s/kubernetesagentcustomdata.yml | 1 + parts/k8s/kubernetesmastercustomdata.yml | 1 + parts/k8s/kubernetesmastervars.t | 1 + parts/k8s/kubernetesparams.t | 9 + pkg/acsengine/addons.go | 5 + pkg/acsengine/const.go | 2 + pkg/acsengine/defaults.go | 31 +- pkg/acsengine/defaults_test.go | 24 + pkg/acsengine/k8s_versions.go | 530 +++++++++--------- pkg/acsengine/k8s_versions_test.go | 209 +++---- pkg/acsengine/params_k8s.go | 9 + pkg/acsengine/types.go | 1 + 13 files changed, 508 insertions(+), 363 deletions(-) create mode 100644 parts/k8s/addons/azure-cni-networkmonitor.yaml diff --git a/parts/k8s/addons/azure-cni-networkmonitor.yaml b/parts/k8s/addons/azure-cni-networkmonitor.yaml new file mode 100644 index 0000000000..7bc3127e61 --- /dev/null +++ b/parts/k8s/addons/azure-cni-networkmonitor.yaml @@ -0,0 +1,48 @@ +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: azure-cni-networkmonitor + namespace: kube-system + labels: + app: azure-cnms + addonmanager.kubernetes.io/mode: "EnsureExists" +spec: + selector: + matchLabels: + k8s-app: azure-cnms + template: + metadata: + labels: + k8s-app: azure-cnms + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' + spec: + tolerations: + - key: CriticalAddonsOnly + operator: Exists + containers: + - name: azure-cnms + image: + securityContext: + privileged: true + env: + - name: HOSTNAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + volumeMounts: + - name: ebtables-rule-repo + mountPath: /var/run + - name: log + mountPath: /var/log + hostNetwork: true + volumes: + - name: log + hostPath: + path: /var/log + type: Directory + - name: ebtables-rule-repo + hostPath: + path: /var/run/ + type: Directory \ No newline at end of file diff --git a/parts/k8s/kubernetesagentcustomdata.yml b/parts/k8s/kubernetesagentcustomdata.yml index 0dff9d4cac..6c07c345d9 100644 --- a/parts/k8s/kubernetesagentcustomdata.yml +++ b/parts/k8s/kubernetesagentcustomdata.yml @@ -148,6 +148,7 @@ AGENT_ARTIFACTS_CONFIG_PLACEHOLDER {{if IsAzureCNI}} # SNAT outbound traffic from pods to destinations outside of VNET. iptables -t nat -A POSTROUTING -m iprange ! --dst-range 168.63.129.16 -m addrtype ! --dst-type local ! -d {{WrapAsVariable "vnetCidr"}} -j MASQUERADE + sed -i "s||{{WrapAsVariable "AzureCNINetworkMonitorImageURL"}}|g" "/etc/kubernetes/addons/azure-cni-networkmonitor.yaml" {{end}} {{if not EnablePodSecurityPolicy}} sed -i "s|apparmor_parser|d|g" "/etc/systemd/system/kubelet.service" diff --git a/parts/k8s/kubernetesmastercustomdata.yml b/parts/k8s/kubernetesmastercustomdata.yml index 9e4cdfdeea..54218f93ab 100644 --- a/parts/k8s/kubernetesmastercustomdata.yml +++ b/parts/k8s/kubernetesmastercustomdata.yml @@ -217,6 +217,7 @@ MASTER_ARTIFACTS_CONFIG_PLACEHOLDER {{if IsAzureCNI}} # SNAT outbound traffic from pods to destinations outside of VNET. iptables -t nat -A POSTROUTING -m iprange ! --dst-range 168.63.129.16 -m addrtype ! --dst-type local ! -d {{WrapAsVariable "vnetCidr"}} -j MASQUERADE + sed -i "s||{{WrapAsVariable "AzureCNINetworkMonitorImageURL"}}|g" "/etc/kubernetes/addons/azure-cni-networkmonitor.yaml" {{end}} sed -i "s||{{WrapAsVariable "kubernetesAddonManagerSpec"}}|g" "/etc/kubernetes/manifests/kube-addon-manager.yaml" sed -i "s||{{WrapAsVariable "kubernetesHyperkubeSpec"}}|g" "/etc/kubernetes/manifests/kube-apiserver.yaml" diff --git a/parts/k8s/kubernetesmastervars.t b/parts/k8s/kubernetesmastervars.t index cccaf4987e..e24b60105f 100644 --- a/parts/k8s/kubernetesmastervars.t +++ b/parts/k8s/kubernetesmastervars.t @@ -278,6 +278,7 @@ {{if IsAzureCNI}} "allocateNodeCidrs": false, + "AzureCNINetworkMonitorImageURL": "[parameters('AzureCNINetworkMonitorImageURL')]", {{else}} "allocateNodeCidrs": true, {{end}} diff --git a/parts/k8s/kubernetesparams.t b/parts/k8s/kubernetesparams.t index da020e0041..8e0cb8e409 100644 --- a/parts/k8s/kubernetesparams.t +++ b/parts/k8s/kubernetesparams.t @@ -914,3 +914,12 @@ } } {{end}} + {{if IsAzureCNI}} + ,"AzureCNINetworkMonitorImageURL": { + "defaultValue": "", + "metadata": { + "description": "Azure CNI networkmonitor Image URL" + }, + "type": "string" + } + {{end}} diff --git a/pkg/acsengine/addons.go b/pkg/acsengine/addons.go index 0b429b7b3c..83ffeced38 100644 --- a/pkg/acsengine/addons.go +++ b/pkg/acsengine/addons.go @@ -107,6 +107,11 @@ func kubernetesAddonSettingsInit(profile *api.Properties) []kubernetesFeatureSet "omsagent-daemonset.yaml", profile.OrchestratorProfile.IsContainerMonitoringEnabled(), }, + { + "azure-cni-networkmonitor.yaml", + "azure-cni-networkmonitor.yaml", + profile.OrchestratorProfile.IsAzureCNI(), + }, } } diff --git a/pkg/acsengine/const.go b/pkg/acsengine/const.go index 44f7dccea5..5ed6d8942e 100644 --- a/pkg/acsengine/const.go +++ b/pkg/acsengine/const.go @@ -140,6 +140,8 @@ const ( DefaultNVIDIADevicePluginAddonName = "nvidia-device-plugin" // ContainerMonitoringAddonName is the name of the kubernetes Container Monitoring addon deployment ContainerMonitoringAddonName = "container-monitoring" + // AzureCNINetworkMonitoringAddonName is the name of the Azure CNI networkmonitor addon + AzureCNINetworkMonitoringAddonName = "azure-cni-networkmonitor" // DefaultKubernetesKubeletMaxPods is the max pods per kubelet DefaultKubernetesKubeletMaxPods = 110 // DefaultMasterEtcdServerPort is the default etcd server port for Kubernetes master nodes diff --git a/pkg/acsengine/defaults.go b/pkg/acsengine/defaults.go index fa0fd1f540..84b6632193 100644 --- a/pkg/acsengine/defaults.go +++ b/pkg/acsengine/defaults.go @@ -34,6 +34,7 @@ var ( TillerImageBase: "gcrio.azureedge.net/kubernetes-helm/", ACIConnectorImageBase: "microsoft/", NVIDIAImageBase: "nvidia/", + AzureCNIImageBase: "containernetworking/", EtcdDownloadURLBase: "https://acs-mirror.azureedge.net/github-coreos", KubeBinariesSASURLBase: "https://acs-mirror.azureedge.net/wink8s/", WindowsPackageSASURLBase: "https://acs-mirror.azureedge.net/wink8s/", @@ -333,6 +334,16 @@ var ( }, }, } + + // DefaultAzureCNINetworkMonitorAddonsConfig is the default Azure CNI networkmonitor Kubernetes addon Config + DefaultAzureCNINetworkMonitorAddonsConfig = api.KubernetesAddon{ + Name: AzureCNINetworkMonitoringAddonName, + Containers: []api.KubernetesContainerSpec{ + { + Name: AzureCNINetworkMonitoringAddonName, + }, + }, + } ) // setPropertiesDefaults for the container Properties, returns true if certs are generated @@ -405,8 +416,9 @@ func setOrchestratorDefaults(cs *api.ContainerService) { DefaultMetricsServerAddonsConfig, DefaultNVIDIADevicePluginAddonsConfig, DefaultContainerMonitoringAddonsConfig, + DefaultAzureCNINetworkMonitorAddonsConfig, } - enforceK8sVersionAddonOverrides(o.KubernetesConfig.Addons, o) + enforceK8sAddonOverrides(o.KubernetesConfig.Addons, o) } else { // For each addon, provide default configuration if user didn't provide its own config t := getAddonsIndexByName(o.KubernetesConfig.Addons, DefaultTillerAddonName) @@ -451,6 +463,11 @@ func setOrchestratorDefaults(cs *api.ContainerService) { // Provide default acs-engine config for Container Monitoring o.KubernetesConfig.Addons = append(o.KubernetesConfig.Addons, DefaultContainerMonitoringAddonsConfig) } + aN := getAddonsIndexByName(o.KubernetesConfig.Addons, AzureCNINetworkMonitoringAddonName) + if aN < 0 { + // Provide default acs-engine config for Azure CNI containernetworking Device Plugin + o.KubernetesConfig.Addons = append(o.KubernetesConfig.Addons, DefaultAzureCNINetworkMonitorAddonsConfig) + } } if o.KubernetesConfig.KubernetesImageBase == "" { o.KubernetesConfig.KubernetesImageBase = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase @@ -554,6 +571,10 @@ func setOrchestratorDefaults(cs *api.ContainerService) { if a.OrchestratorProfile.KubernetesConfig.Addons[cm].IsEnabled(api.DefaultContainerMonitoringAddonEnabled) { a.OrchestratorProfile.KubernetesConfig.Addons[cm] = assignDefaultAddonVals(a.OrchestratorProfile.KubernetesConfig.Addons[cm], DefaultContainerMonitoringAddonsConfig) } + aN := getAddonsIndexByName(a.OrchestratorProfile.KubernetesConfig.Addons, AzureCNINetworkMonitoringAddonName) + if a.OrchestratorProfile.KubernetesConfig.Addons[aN].IsEnabled(a.OrchestratorProfile.IsAzureCNI()) { + a.OrchestratorProfile.KubernetesConfig.Addons[aN] = assignDefaultAddonVals(a.OrchestratorProfile.KubernetesConfig.Addons[aN], DefaultAzureCNINetworkMonitorAddonsConfig) + } if o.KubernetesConfig.PrivateCluster == nil { o.KubernetesConfig.PrivateCluster = &api.PrivateCluster{} @@ -1075,15 +1096,21 @@ func mapToString(valueMap map[string]string) string { return strings.TrimSuffix(buf.String(), ",") } -func enforceK8sVersionAddonOverrides(addons []api.KubernetesAddon, o *api.OrchestratorProfile) { +func enforceK8sAddonOverrides(addons []api.KubernetesAddon, o *api.OrchestratorProfile) { m := getAddonsIndexByName(o.KubernetesConfig.Addons, DefaultMetricsServerAddonName) o.KubernetesConfig.Addons[m].Enabled = k8sVersionMetricsServerAddonEnabled(o) + aN := getAddonsIndexByName(o.KubernetesConfig.Addons, AzureCNINetworkMonitoringAddonName) + o.KubernetesConfig.Addons[aN].Enabled = azureCNINetworkMonitorAddonEnabled(o) } func k8sVersionMetricsServerAddonEnabled(o *api.OrchestratorProfile) *bool { return helpers.PointerToBool(common.IsKubernetesVersionGe(o.OrchestratorVersion, "1.9.0")) } +func azureCNINetworkMonitorAddonEnabled(o *api.OrchestratorProfile) *bool { + return helpers.PointerToBool(o.IsAzureCNI()) +} + func generateEtcdEncryptionKey() string { b := make([]byte, 32) rand.Read(b) diff --git a/pkg/acsengine/defaults_test.go b/pkg/acsengine/defaults_test.go index 225fe2aade..da4fd7051b 100644 --- a/pkg/acsengine/defaults_test.go +++ b/pkg/acsengine/defaults_test.go @@ -558,7 +558,31 @@ func TestSetComponentsNetworkDefaults(t *testing.T) { } } } +} +func TestIsAzureCNINetworkmonitorAddon(t *testing.T) { + mockCS := getMockBaseContainerService("1.10.3") + properties := mockCS.Properties + properties.OrchestratorProfile.OrchestratorType = "Kubernetes" + properties.MasterProfile.Count = 1 + properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure" + setOrchestratorDefaults(&mockCS) + + i := getAddonsIndexByName(properties.OrchestratorProfile.KubernetesConfig.Addons, AzureCNINetworkMonitoringAddonName) + if !helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.Addons[i].Enabled) { + t.Fatalf("Azure CNI network plugin configuration should add Azure CNI networkmonitor addon") + } + mockCS = getMockBaseContainerService("1.10.3") + properties = mockCS.Properties + properties.OrchestratorProfile.OrchestratorType = "Kubernetes" + properties.MasterProfile.Count = 1 + properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "kubenet" + setOrchestratorDefaults(&mockCS) + + i = getAddonsIndexByName(properties.OrchestratorProfile.KubernetesConfig.Addons, AzureCNINetworkMonitoringAddonName) + if helpers.IsTrueBoolPointer(properties.OrchestratorProfile.KubernetesConfig.Addons[i].Enabled) { + t.Fatalf("Azure CNI networkmonitor addon should only be present in Azure CNI configurations") + } } func getMockAddon(name string) api.KubernetesAddon { diff --git a/pkg/acsengine/k8s_versions.go b/pkg/acsengine/k8s_versions.go index e9913fa049..b917303826 100644 --- a/pkg/acsengine/k8s_versions.go +++ b/pkg/acsengine/k8s_versions.go @@ -9,174 +9,180 @@ import ( var k8sComponentVersions = map[string]map[string]string{ "1.11": { - "dockerEngine": "1.13.*", - "dashboard": "kubernetes-dashboard-amd64:v1.8.3", - "exechealthz": "exechealthz-amd64:1.2", - "addon-resizer": "addon-resizer:1.8.1", - "heapster": "heapster-amd64:v1.5.1", - "metrics-server": "metrics-server-amd64:v0.2.1", - "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", - "addon-manager": "kube-addon-manager-amd64:v8.6", - "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", - "pause": "pause-amd64:3.1", - "tiller": "tiller:v2.8.1", - "rescheduler": "rescheduler:v0.3.1", - "aci-connector": "virtual-kubelet:latest", - ContainerMonitoringAddonName: "oms:ciprod05082018", - "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, - "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, - "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, - "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), - "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), - "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), + "dockerEngine": "1.13.*", + "dashboard": "kubernetes-dashboard-amd64:v1.8.3", + "exechealthz": "exechealthz-amd64:1.2", + "addon-resizer": "addon-resizer:1.8.1", + "heapster": "heapster-amd64:v1.5.1", + "metrics-server": "metrics-server-amd64:v0.2.1", + "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", + "addon-manager": "kube-addon-manager-amd64:v8.6", + "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", + "pause": "pause-amd64:3.1", + "tiller": "tiller:v2.8.1", + "rescheduler": "rescheduler:v0.3.1", + "aci-connector": "virtual-kubelet:latest", + ContainerMonitoringAddonName: "oms:ciprod05082018", + AzureCNINetworkMonitoringAddonName: "networkmonitor:v0.0.4", + "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, + "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, + "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, + "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, + "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), + "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, "1.10": { - "dockerEngine": "1.13.*", - "dashboard": "kubernetes-dashboard-amd64:v1.8.3", - "exechealthz": "exechealthz-amd64:1.2", - "addon-resizer": "addon-resizer:1.8.1", - "heapster": "heapster-amd64:v1.5.1", - "metrics-server": "metrics-server-amd64:v0.2.1", - "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", - "addon-manager": "kube-addon-manager-amd64:v8.6", - "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", - "pause": "pause-amd64:3.1", - "tiller": "tiller:v2.8.1", - "rescheduler": "rescheduler:v0.3.1", - "aci-connector": "virtual-kubelet:latest", - ContainerMonitoringAddonName: "oms:ciprod05082018", - "cluster-autoscaler": "cluster-autoscaler:v1.2.2", - "nvidia-device-plugin": "k8s-device-plugin:1.10", - "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, - "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, - "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, - "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), - "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), - "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), + "dockerEngine": "1.13.*", + "dashboard": "kubernetes-dashboard-amd64:v1.8.3", + "exechealthz": "exechealthz-amd64:1.2", + "addon-resizer": "addon-resizer:1.8.1", + "heapster": "heapster-amd64:v1.5.1", + "metrics-server": "metrics-server-amd64:v0.2.1", + "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", + "addon-manager": "kube-addon-manager-amd64:v8.6", + "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", + "pause": "pause-amd64:3.1", + "tiller": "tiller:v2.8.1", + "rescheduler": "rescheduler:v0.3.1", + "aci-connector": "virtual-kubelet:latest", + ContainerMonitoringAddonName: "oms:ciprod05082018", + AzureCNINetworkMonitoringAddonName: "networkmonitor:v0.0.4", + "cluster-autoscaler": "cluster-autoscaler:v1.2.2", + "nvidia-device-plugin": "k8s-device-plugin:1.10", + "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, + "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, + "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, + "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, + "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), + "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, "1.9": { - "dockerEngine": "1.13.*", - "dashboard": "kubernetes-dashboard-amd64:v1.8.3", - "exechealthz": "exechealthz-amd64:1.2", - "addon-resizer": "addon-resizer:1.8.1", - "heapster": "heapster-amd64:v1.5.1", - "metrics-server": "metrics-server-amd64:v0.2.1", - "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", - "addon-manager": "kube-addon-manager-amd64:v8.6", - "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", - "pause": "pause-amd64:3.1", - "tiller": "tiller:v2.8.1", - "rescheduler": "rescheduler:v0.3.1", - "aci-connector": "virtual-kubelet:latest", - ContainerMonitoringAddonName: "oms:ciprod05082018", - "cluster-autoscaler": "cluster-autoscaler:v1.1.2", - "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, - "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, - "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, - "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), - "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), - "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), + "dockerEngine": "1.13.*", + "dashboard": "kubernetes-dashboard-amd64:v1.8.3", + "exechealthz": "exechealthz-amd64:1.2", + "addon-resizer": "addon-resizer:1.8.1", + "heapster": "heapster-amd64:v1.5.1", + "metrics-server": "metrics-server-amd64:v0.2.1", + "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", + "addon-manager": "kube-addon-manager-amd64:v8.6", + "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", + "pause": "pause-amd64:3.1", + "tiller": "tiller:v2.8.1", + "rescheduler": "rescheduler:v0.3.1", + "aci-connector": "virtual-kubelet:latest", + ContainerMonitoringAddonName: "oms:ciprod05082018", + AzureCNINetworkMonitoringAddonName: "networkmonitor:v0.0.4", + "cluster-autoscaler": "cluster-autoscaler:v1.1.2", + "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, + "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, + "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, + "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, + "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), + "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, "1.8": { - "dockerEngine": "1.13.*", - "dashboard": "kubernetes-dashboard-amd64:v1.8.3", - "exechealthz": "exechealthz-amd64:1.2", - "addon-resizer": "addon-resizer:1.7", - "heapster": "heapster-amd64:v1.5.1", - "metrics-server": "metrics-server-amd64:v0.2.1", - "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", - "addon-manager": "kube-addon-manager-amd64:v8.6", - "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", - "pause": "pause-amd64:3.1", - "tiller": "tiller:v2.8.1", - "rescheduler": "rescheduler:v0.3.1", - "aci-connector": "virtual-kubelet:latest", - ContainerMonitoringAddonName: "oms:ciprod05082018", - "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, - "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, - "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, - "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), - "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), - "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), + "dockerEngine": "1.13.*", + "dashboard": "kubernetes-dashboard-amd64:v1.8.3", + "exechealthz": "exechealthz-amd64:1.2", + "addon-resizer": "addon-resizer:1.7", + "heapster": "heapster-amd64:v1.5.1", + "metrics-server": "metrics-server-amd64:v0.2.1", + "kube-dns": "k8s-dns-kube-dns-amd64:1.14.8", + "addon-manager": "kube-addon-manager-amd64:v8.6", + "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.8", + "pause": "pause-amd64:3.1", + "tiller": "tiller:v2.8.1", + "rescheduler": "rescheduler:v0.3.1", + "aci-connector": "virtual-kubelet:latest", + ContainerMonitoringAddonName: "oms:ciprod05082018", + AzureCNINetworkMonitoringAddonName: "networkmonitor:v0.0.4", + "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, + "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, + "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, + "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, + "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), + "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, "1.7": { - "dockerEngine": "1.13.*", - "dashboard": "kubernetes-dashboard-amd64:v1.6.3", - "exechealthz": "exechealthz-amd64:1.2", - "addon-resizer": "addon-resizer:1.7", - "heapster": "heapster-amd64:v1.5.1", - "metrics-server": "metrics-server-amd64:v0.2.1", - "kube-dns": "k8s-dns-kube-dns-amd64:1.14.5", - "addon-manager": "kube-addon-manager-amd64:v8.6", - "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5", - "pause": "pause-amd64:3.1", - "tiller": "tiller:v2.8.1", - "rescheduler": "rescheduler:v0.3.1", - "aci-connector": "virtual-kubelet:latest", - ContainerMonitoringAddonName: "oms:ciprod05082018", - "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, - "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, - "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, - "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), - "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), - "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), + "dockerEngine": "1.13.*", + "dashboard": "kubernetes-dashboard-amd64:v1.6.3", + "exechealthz": "exechealthz-amd64:1.2", + "addon-resizer": "addon-resizer:1.7", + "heapster": "heapster-amd64:v1.5.1", + "metrics-server": "metrics-server-amd64:v0.2.1", + "kube-dns": "k8s-dns-kube-dns-amd64:1.14.5", + "addon-manager": "kube-addon-manager-amd64:v8.6", + "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5", + "pause": "pause-amd64:3.1", + "tiller": "tiller:v2.8.1", + "rescheduler": "rescheduler:v0.3.1", + "aci-connector": "virtual-kubelet:latest", + ContainerMonitoringAddonName: "oms:ciprod05082018", + AzureCNINetworkMonitoringAddonName: "networkmonitor:v0.0.4", + "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, + "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, + "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, + "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, + "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), + "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, "1.6": { - "dockerEngine": "1.12.*", - "dashboard": "kubernetes-dashboard-amd64:v1.6.3", - "exechealthz": "exechealthz-amd64:1.2", - "addon-resizer": "addon-resizer:1.7", - "heapster": "heapster-amd64:v1.3.0", - "metrics-server": "metrics-server-amd64:v0.2.1", - "kube-dns": "k8s-dns-kube-dns-amd64:1.14.5", - "addon-manager": "kube-addon-manager-amd64:v6.5", - "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5", - "pause": "pause-amd64:3.0", - "tiller": "tiller:v2.8.1", - "rescheduler": "rescheduler:v0.3.1", - "aci-connector": "virtual-kubelet:latest", - "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, - "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, - "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, - "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, - "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), - "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), - "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), - "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), - "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), - "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), - "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), - "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), + "dockerEngine": "1.12.*", + "dashboard": "kubernetes-dashboard-amd64:v1.6.3", + "exechealthz": "exechealthz-amd64:1.2", + "addon-resizer": "addon-resizer:1.7", + "heapster": "heapster-amd64:v1.3.0", + "metrics-server": "metrics-server-amd64:v0.2.1", + "kube-dns": "k8s-dns-kube-dns-amd64:1.14.5", + "addon-manager": "kube-addon-manager-amd64:v6.5", + "dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5", + "pause": "pause-amd64:3.0", + "tiller": "tiller:v2.8.1", + "rescheduler": "rescheduler:v0.3.1", + "aci-connector": "virtual-kubelet:latest", + AzureCNINetworkMonitoringAddonName: "networkmonitor:v0.0.4", + "nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency, + "nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod, + "podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout, + "routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod, + "backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries), + "backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64), + "backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration), + "backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64), + "ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64), + "ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket), + "gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold), + "gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold), }, } @@ -248,26 +254,27 @@ func getK8sVersionComponents(version string, overrides map[string]string) map[st "addonresizer": k8sComponentVersions["1.11"]["addon-resizer"], "heapster": k8sComponentVersions["1.11"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.11"]["metrics-server"], - "dns": k8sComponentVersions["1.11"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.11"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.11"]["dnsmasq"], - "pause": k8sComponentVersions["1.11"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.11"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.11"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.11"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - "nodestatusfreq": k8sComponentVersions["1.11"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.11"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.11"]["podeviction"], - "routeperiod": k8sComponentVersions["1.11"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.11"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.11"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.11"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.11"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.11"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.11"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.11"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.11"]["gclowthreshold"], + "dns": k8sComponentVersions["1.11"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.11"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.11"]["dnsmasq"], + "pause": k8sComponentVersions["1.11"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.11"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.11"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.11"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.11"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.11"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.11"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.11"]["podeviction"], + "routeperiod": k8sComponentVersions["1.11"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.11"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.11"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.11"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.11"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.11"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.11"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.11"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.11"]["gclowthreshold"], } case "1.10": ret = map[string]string{ @@ -287,7 +294,8 @@ func getK8sVersionComponents(version string, overrides map[string]string) map[st DefaultTillerAddonName: k8sComponentVersions["1.10"]["tiller"], DefaultReschedulerAddonName: k8sComponentVersions["1.10"]["rescheduler"], DefaultACIConnectorAddonName: k8sComponentVersions["1.10"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], + ContainerMonitoringAddonName: k8sComponentVersions["1.10"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.10"][AzureCNINetworkMonitoringAddonName], "nodestatusfreq": k8sComponentVersions["1.10"]["nodestatusfreq"], "nodegraceperiod": k8sComponentVersions["1.10"]["nodegraceperiod"], "podeviction": k8sComponentVersions["1.10"]["podeviction"], @@ -314,27 +322,28 @@ func getK8sVersionComponents(version string, overrides map[string]string) map[st "addonresizer": k8sComponentVersions["1.9"]["addon-resizer"], "heapster": k8sComponentVersions["1.9"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.9"]["metrics-server"], - "dns": k8sComponentVersions["1.9"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.9"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.9"]["dnsmasq"], - "pause": k8sComponentVersions["1.9"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.9"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.9"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.9"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - "nodestatusfreq": k8sComponentVersions["1.9"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.9"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.9"]["podeviction"], - "routeperiod": k8sComponentVersions["1.9"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.9"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.9"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.9"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.9"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.9"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.9"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.9"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.9"]["gclowthreshold"], - DefaultClusterAutoscalerAddonName: k8sComponentVersions["1.9"]["cluster-autoscaler"], + "dns": k8sComponentVersions["1.9"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.9"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.9"]["dnsmasq"], + "pause": k8sComponentVersions["1.9"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.9"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.9"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.9"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.9"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.9"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.9"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.9"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.9"]["podeviction"], + "routeperiod": k8sComponentVersions["1.9"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.9"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.9"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.9"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.9"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.9"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.9"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.9"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.9"]["gclowthreshold"], + DefaultClusterAutoscalerAddonName: k8sComponentVersions["1.9"]["cluster-autoscaler"], } case "1.8": ret = map[string]string{ @@ -347,26 +356,27 @@ func getK8sVersionComponents(version string, overrides map[string]string) map[st "addonresizer": k8sComponentVersions["1.8"]["addon-resizer"], "heapster": k8sComponentVersions["1.8"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.8"]["metrics-server"], - "dns": k8sComponentVersions["1.8"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.8"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.8"]["dnsmasq"], - "pause": k8sComponentVersions["1.8"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.8"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.8"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.8"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - "nodestatusfreq": k8sComponentVersions["1.8"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.8"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.8"]["podeviction"], - "routeperiod": k8sComponentVersions["1.8"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.8"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.8"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.8"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.8"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.8"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.8"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.8"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.8"]["gclowthreshold"], + "dns": k8sComponentVersions["1.8"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.8"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.8"]["dnsmasq"], + "pause": k8sComponentVersions["1.8"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.8"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.8"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.8"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.8"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.8"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.8"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.8"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.8"]["podeviction"], + "routeperiod": k8sComponentVersions["1.8"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.8"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.8"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.8"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.8"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.8"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.8"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.8"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.8"]["gclowthreshold"], } case "1.7": ret = map[string]string{ @@ -377,26 +387,27 @@ func getK8sVersionComponents(version string, overrides map[string]string) map[st "addonresizer": k8sComponentVersions["1.7"]["addon-resizer"], "heapster": k8sComponentVersions["1.7"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.7"]["metrics-server"], - "dns": k8sComponentVersions["1.7"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.7"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.7"]["dnsmasq"], - "pause": k8sComponentVersions["1.7"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.7"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.7"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.7"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - "nodestatusfreq": k8sComponentVersions["1.7"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.7"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.7"]["podeviction"], - "routeperiod": k8sComponentVersions["1.7"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.7"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.7"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.7"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.7"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.7"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.7"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.7"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.7"]["gclowthreshold"], + "dns": k8sComponentVersions["1.7"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.7"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.7"]["dnsmasq"], + "pause": k8sComponentVersions["1.7"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.7"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.7"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.7"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.7"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.7"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.7"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.7"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.7"]["podeviction"], + "routeperiod": k8sComponentVersions["1.7"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.7"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.7"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.7"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.7"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.7"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.7"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.7"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.7"]["gclowthreshold"], } case "1.6": ret = map[string]string{ @@ -407,25 +418,26 @@ func getK8sVersionComponents(version string, overrides map[string]string) map[st "addonresizer": k8sComponentVersions["1.6"]["addon-resizer"], "heapster": k8sComponentVersions["1.6"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.6"]["metrics-server"], - "dns": k8sComponentVersions["1.6"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.6"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.6"]["dnsmasq"], - "pause": k8sComponentVersions["1.6"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.6"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.6"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.6"]["aci-connector"], - "nodestatusfreq": k8sComponentVersions["1.6"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.6"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.6"]["podeviction"], - "routeperiod": k8sComponentVersions["1.6"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.6"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.6"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.6"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.6"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.6"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.6"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.6"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.6"]["gclowthreshold"], + "dns": k8sComponentVersions["1.6"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.6"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.6"]["dnsmasq"], + "pause": k8sComponentVersions["1.6"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.6"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.6"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.6"]["aci-connector"], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.6"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.6"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.6"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.6"]["podeviction"], + "routeperiod": k8sComponentVersions["1.6"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.6"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.6"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.6"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.6"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.6"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.6"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.6"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.6"]["gclowthreshold"], } default: diff --git a/pkg/acsengine/k8s_versions_test.go b/pkg/acsengine/k8s_versions_test.go index 1272b3298c..a9038d0da7 100644 --- a/pkg/acsengine/k8s_versions_test.go +++ b/pkg/acsengine/k8s_versions_test.go @@ -20,26 +20,27 @@ func TestGetK8sVersionComponents(t *testing.T) { "addonresizer": k8sComponentVersions["1.11"]["addon-resizer"], "heapster": k8sComponentVersions["1.11"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.11"]["metrics-server"], - "dns": k8sComponentVersions["1.11"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.11"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.11"]["dnsmasq"], - "pause": k8sComponentVersions["1.11"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.11"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.11"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.11"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - "nodestatusfreq": k8sComponentVersions["1.11"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.11"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.11"]["podeviction"], - "routeperiod": k8sComponentVersions["1.11"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.11"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.11"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.11"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.11"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.11"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.11"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.11"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.11"]["gclowthreshold"], + "dns": k8sComponentVersions["1.11"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.11"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.11"]["dnsmasq"], + "pause": k8sComponentVersions["1.11"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.11"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.11"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.11"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.11"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.11"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.11"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.11"]["podeviction"], + "routeperiod": k8sComponentVersions["1.11"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.11"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.11"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.11"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.11"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.11"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.11"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.11"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.11"]["gclowthreshold"], } for k, v := range oneDotElevenDotZero { @@ -62,27 +63,28 @@ func TestGetK8sVersionComponents(t *testing.T) { "addonresizer": k8sComponentVersions["1.9"]["addon-resizer"], "heapster": k8sComponentVersions["1.9"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.9"]["metrics-server"], - "dns": k8sComponentVersions["1.9"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.9"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.9"]["dnsmasq"], - "pause": k8sComponentVersions["1.9"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.9"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.9"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.9"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - DefaultClusterAutoscalerAddonName: k8sComponentVersions["1.9"]["cluster-autoscaler"], - "nodestatusfreq": k8sComponentVersions["1.9"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.9"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.9"]["podeviction"], - "routeperiod": k8sComponentVersions["1.9"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.9"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.9"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.9"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.9"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.9"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.9"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.9"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.9"]["gclowthreshold"], + "dns": k8sComponentVersions["1.9"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.9"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.9"]["dnsmasq"], + "pause": k8sComponentVersions["1.9"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.9"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.9"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.9"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.9"][AzureCNINetworkMonitoringAddonName], + DefaultClusterAutoscalerAddonName: k8sComponentVersions["1.9"]["cluster-autoscaler"], + "nodestatusfreq": k8sComponentVersions["1.9"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.9"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.9"]["podeviction"], + "routeperiod": k8sComponentVersions["1.9"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.9"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.9"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.9"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.9"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.9"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.9"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.9"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.9"]["gclowthreshold"], } for k, v := range oneDotNineDotThree { @@ -105,26 +107,27 @@ func TestGetK8sVersionComponents(t *testing.T) { "addonresizer": k8sComponentVersions["1.8"]["addon-resizer"], "heapster": k8sComponentVersions["1.8"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.8"]["metrics-server"], - "dns": k8sComponentVersions["1.8"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.8"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.8"]["dnsmasq"], - "pause": k8sComponentVersions["1.8"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.8"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.8"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.8"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - "nodestatusfreq": k8sComponentVersions["1.8"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.8"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.8"]["podeviction"], - "routeperiod": k8sComponentVersions["1.8"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.8"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.8"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.8"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.8"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.8"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.8"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.8"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.8"]["gclowthreshold"], + "dns": k8sComponentVersions["1.8"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.8"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.8"]["dnsmasq"], + "pause": k8sComponentVersions["1.8"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.8"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.8"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.8"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.8"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.8"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.8"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.8"]["podeviction"], + "routeperiod": k8sComponentVersions["1.8"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.8"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.8"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.8"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.8"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.8"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.8"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.8"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.8"]["gclowthreshold"], } for k, v := range oneDotEightDotEight { if expected[k] != v { @@ -144,26 +147,27 @@ func TestGetK8sVersionComponents(t *testing.T) { "addonresizer": k8sComponentVersions["1.7"]["addon-resizer"], "heapster": k8sComponentVersions["1.7"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.7"]["metrics-server"], - "dns": k8sComponentVersions["1.7"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.7"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.7"]["dnsmasq"], - "pause": k8sComponentVersions["1.7"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.7"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.7"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.7"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - "nodestatusfreq": k8sComponentVersions["1.7"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.7"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.7"]["podeviction"], - "routeperiod": k8sComponentVersions["1.7"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.7"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.7"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.7"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.7"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.7"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.7"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.7"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.7"]["gclowthreshold"], + "dns": k8sComponentVersions["1.7"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.7"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.7"]["dnsmasq"], + "pause": k8sComponentVersions["1.7"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.7"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.7"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.7"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.7"][AzureCNINetworkMonitoringAddonName], + "nodestatusfreq": k8sComponentVersions["1.7"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.7"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.7"]["podeviction"], + "routeperiod": k8sComponentVersions["1.7"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.7"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.7"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.7"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.7"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.7"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.7"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.7"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.7"]["gclowthreshold"], } for k, v := range oneDotSevenDotZero { if expected[k] != v { @@ -185,27 +189,28 @@ func TestGetK8sVersionComponents(t *testing.T) { "addonresizer": k8sComponentVersions["1.9"]["addon-resizer"], "heapster": k8sComponentVersions["1.9"]["heapster"], DefaultMetricsServerAddonName: k8sComponentVersions["1.9"]["metrics-server"], - "dns": k8sComponentVersions["1.9"]["kube-dns"], - "addonmanager": k8sComponentVersions["1.9"]["addon-manager"], - "dnsmasq": k8sComponentVersions["1.9"]["dnsmasq"], - "pause": k8sComponentVersions["1.9"]["pause"], - DefaultTillerAddonName: k8sComponentVersions["1.9"]["tiller"], - DefaultReschedulerAddonName: k8sComponentVersions["1.9"]["rescheduler"], - DefaultACIConnectorAddonName: k8sComponentVersions["1.9"]["aci-connector"], - ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], - DefaultClusterAutoscalerAddonName: k8sComponentVersions["1.9"]["cluster-autoscaler"], - "nodestatusfreq": k8sComponentVersions["1.9"]["nodestatusfreq"], - "nodegraceperiod": k8sComponentVersions["1.9"]["nodegraceperiod"], - "podeviction": k8sComponentVersions["1.9"]["podeviction"], - "routeperiod": k8sComponentVersions["1.9"]["routeperiod"], - "backoffretries": k8sComponentVersions["1.9"]["backoffretries"], - "backoffjitter": k8sComponentVersions["1.9"]["backoffjitter"], - "backoffduration": k8sComponentVersions["1.9"]["backoffduration"], - "backoffexponent": k8sComponentVersions["1.9"]["backoffexponent"], - "ratelimitqps": k8sComponentVersions["1.9"]["ratelimitqps"], - "ratelimitbucket": k8sComponentVersions["1.9"]["ratelimitbucket"], - "gchighthreshold": k8sComponentVersions["1.9"]["gchighthreshold"], - "gclowthreshold": k8sComponentVersions["1.9"]["gclowthreshold"], + "dns": k8sComponentVersions["1.9"]["kube-dns"], + "addonmanager": k8sComponentVersions["1.9"]["addon-manager"], + "dnsmasq": k8sComponentVersions["1.9"]["dnsmasq"], + "pause": k8sComponentVersions["1.9"]["pause"], + DefaultTillerAddonName: k8sComponentVersions["1.9"]["tiller"], + DefaultReschedulerAddonName: k8sComponentVersions["1.9"]["rescheduler"], + DefaultACIConnectorAddonName: k8sComponentVersions["1.9"]["aci-connector"], + ContainerMonitoringAddonName: k8sComponentVersions["1.11"][ContainerMonitoringAddonName], + AzureCNINetworkMonitoringAddonName: k8sComponentVersions["1.9"][AzureCNINetworkMonitoringAddonName], + DefaultClusterAutoscalerAddonName: k8sComponentVersions["1.9"]["cluster-autoscaler"], + "nodestatusfreq": k8sComponentVersions["1.9"]["nodestatusfreq"], + "nodegraceperiod": k8sComponentVersions["1.9"]["nodegraceperiod"], + "podeviction": k8sComponentVersions["1.9"]["podeviction"], + "routeperiod": k8sComponentVersions["1.9"]["routeperiod"], + "backoffretries": k8sComponentVersions["1.9"]["backoffretries"], + "backoffjitter": k8sComponentVersions["1.9"]["backoffjitter"], + "backoffduration": k8sComponentVersions["1.9"]["backoffduration"], + "backoffexponent": k8sComponentVersions["1.9"]["backoffexponent"], + "ratelimitqps": k8sComponentVersions["1.9"]["ratelimitqps"], + "ratelimitbucket": k8sComponentVersions["1.9"]["ratelimitbucket"], + "gchighthreshold": k8sComponentVersions["1.9"]["gchighthreshold"], + "gclowthreshold": k8sComponentVersions["1.9"]["gclowthreshold"], } for k, v := range override { if expected[k] != v { diff --git a/pkg/acsengine/params_k8s.go b/pkg/acsengine/params_k8s.go index af89a7cd68..f50ef7b157 100644 --- a/pkg/acsengine/params_k8s.go +++ b/pkg/acsengine/params_k8s.go @@ -221,6 +221,15 @@ func assignKubernetesParameters(properties *api.Properties, parametersMap params addValue(parametersMap, "omsAgentImage", cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase+KubeConfigs[k8sVersion][ContainerMonitoringAddonName]) } } + azureCNINetworkmonitorAddon := getAddonByName(properties.OrchestratorProfile.KubernetesConfig.Addons, AzureCNINetworkMonitoringAddonName) + c = getAddonContainersIndexByName(azureCNINetworkmonitorAddon.Containers, AzureCNINetworkMonitoringAddonName) + if c > -1 { + if azureCNINetworkmonitorAddon.Containers[c].Image != "" { + addValue(parametersMap, "AzureCNINetworkMonitorImageURL", azureCNINetworkmonitorAddon.Containers[c].Image) + } else { + addValue(parametersMap, "AzureCNINetworkMonitorImageURL", cloudSpecConfig.KubernetesSpecConfig.AzureCNIImageBase+KubeConfigs[k8sVersion][AzureCNINetworkMonitoringAddonName]) + } + } addValue(parametersMap, "kubernetesKubeDNSSpec", cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase+KubeConfigs[k8sVersion]["dns"]) addValue(parametersMap, "kubernetesPodInfraContainerSpec", cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase+KubeConfigs[k8sVersion]["pause"]) addValue(parametersMap, "cloudProviderBackoff", strconv.FormatBool(properties.OrchestratorProfile.KubernetesConfig.CloudProviderBackoff)) diff --git a/pkg/acsengine/types.go b/pkg/acsengine/types.go index d1ff203630..38eb0416ce 100644 --- a/pkg/acsengine/types.go +++ b/pkg/acsengine/types.go @@ -51,6 +51,7 @@ type KubernetesSpecConfig struct { TillerImageBase string ACIConnectorImageBase string NVIDIAImageBase string + AzureCNIImageBase string EtcdDownloadURLBase string KubeBinariesSASURLBase string WindowsPackageSASURLBase string