* merge master upstream

* Revert "merge master upstream"

This reverts commit ab8d33d28a.

* merge master upstream

* Revert "merge master upstream"

This reverts commit ab8d33d28a.

* added rescheduler addon

* fix typo

* merge master upstream

* Revert "merge master upstream"

This reverts commit ab8d33d28a.

* merge master upstream

* Revert "merge master upstream"

This reverts commit ab8d33d28a.

* added rescheduler addon

* fix typo

* add rescheduler spec to mastervars

* add rescheduler spec to mastervars

* added rescheduler image to KubeConfigs

* changed to using new addon pattern

* parametrize limits/requests

* fix types test for isReschedulerEnabled

* fix var name in test

* added rescheduler limit params

* fixed pr comments

* removed extra line

* add rescheduler regression test + added docs + fixed dashboard name in docs

* typo fix
This commit is contained in:
Cecile Robert-Michon 2017-11-17 16:01:18 -08:00 коммит произвёл Jack Francis
Родитель 036c658e94
Коммит 0ec78c790f
16 изменённых файлов: 676 добавлений и 390 удалений

Просмотреть файл

@ -49,6 +49,7 @@ Here are the valid values for the orchestrator types:
|Name of addon|Enabled by default?|How many containers|Description|
|tiller|true|Delivers the Helm server-side component: tiller. See https://github.com/kubernetes/helm for more info.|
|kubernetes-dashboard|true|1|Delivers the kubernetes dashboard component. See https://github.com/kubernetes/dashboard for more info.|
|rescheduler|false|Delivers the kubernetes rescheduler component.|
To give a bit more info on the `addons` property: We've tried to expose the basic bits of data that allow useful configuration of these cluster features. Here are some example usage patterns that will unpack what `addons` provide:
@ -75,7 +76,7 @@ As you can see above, `addons` is an array child property of `kubernetesConfig`.
"enabled" : false
},
{
"name": "dashboard",
"name": "kubernetes-dashboard",
"enabled" : false
}
]

Просмотреть файл

@ -6,7 +6,7 @@
"kubernetesConfig": {
"addons": [
{
"name": "dashboard",
"name": "kubernetes-dashboard",
"enabled" : false
}
]

Просмотреть файл

@ -0,0 +1,43 @@
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes",
"kubernetesConfig": {
"addons": [
{
"name": "rescheduler",
"enabled" : true
}
]
}
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v2"
},
"agentPoolProfiles": [
{
"name": "agentpool1",
"count": 1,
"vmSize": "Standard_D2_v2",
"availabilityProfile": "AvailabilitySet"
}
],
"linuxProfile": {
"adminUsername": "azureUser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
},
"servicePrincipalProfile": {
"clientId": "",
"secret": ""
}
}
}

Просмотреть файл

@ -0,0 +1,35 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: rescheduler
namespace: kube-system
labels:
k8s-app: rescheduler
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
spec:
replicas: 1
selector:
matchLabels:
k8s-app: rescheduler
template:
metadata:
labels:
k8s-app: rescheduler
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
spec:
containers:
- image: <kubernetesReschedulerSpec>
name: rescheduler
resources:
requests:
cpu: <kubernetesReschedulerCPURequests>
memory: <kubernetesReschedulerMemoryRequests>
limits:
cpu: <kubernetesReschedulerCPULimit>
memory: <kubernetesReschedulerMemoryLimit>
command:
- sh
- -c
- '/rescheduler'

Просмотреть файл

@ -144,6 +144,15 @@ write_files:
content: !!binary |
MASTER_ADDON_HEAPSTER_DEPLOYMENT_B64_GZIP_STR
{{if .OrchestratorProfile.KubernetesConfig.IsReschedulerEnabled}}
- path: /etc/kubernetes/addons/kube-rescheduler-deployment.yaml
permissions: "0644"
encoding: gzip
owner: "root"
content: !!binary |
MASTER_ADDON_RESCHEDULER_DEPLOYMENT_B64_GZIP_STR
{{end}}
- path: /etc/kubernetes/addons/azure-storage-classes.yaml
permissions: "0644"
encoding: gzip
@ -283,6 +292,8 @@ write_files:
sed -i "s|<kubernetesHyperkubeSpec>|{{WrapAsVariable "kubernetesHyperkubeSpec"}}|g; s|<kubeClusterCidr>|{{WrapAsVariable "kubeClusterCidr"}}|g" "/etc/kubernetes/addons/kube-proxy-daemonset.yaml"
sed -i "s|<kubernetesKubeDNSSpec>|{{WrapAsVariable "kubernetesKubeDNSSpec"}}|g; s|<kubernetesDNSMasqSpec>|{{WrapAsVariable "kubernetesDNSMasqSpec"}}|g; s|<kubernetesExecHealthzSpec>|{{WrapAsVariable "kubernetesExecHealthzSpec"}}|g" "/etc/kubernetes/addons/kube-dns-deployment.yaml"
sed -i "s|<kubernetesHeapsterSpec>|{{WrapAsVariable "kubernetesHeapsterSpec"}}|g; s|<kubernetesAddonResizerSpec>|{{WrapAsVariable "kubernetesAddonResizerSpec"}}|g" "/etc/kubernetes/addons/kube-heapster-deployment.yaml"
sed -i "s|<kubeDNSServiceIP>|{{WrapAsVariable "kubeDNSServiceIP"}}|g" "/etc/kubernetes/addons/kube-dns-deployment.yaml"
{{if .OrchestratorProfile.KubernetesConfig.IsDashboardEnabled}}
sed -i "s|<kubernetesDashboardSpec>|{{WrapAsVariable "kubernetesDashboardSpec"}}|g" "/etc/kubernetes/addons/kubernetes-dashboard-deployment.yaml"
sed -i "s|<kubernetesDashboardCPURequests>|{{WrapAsVariable "kubernetesDashboardCPURequests"}}|g" "/etc/kubernetes/addons/kubernetes-dashboard-deployment.yaml"
@ -290,6 +301,7 @@ write_files:
sed -i "s|<kubernetesDashboardCPULimit>|{{WrapAsVariable "kubernetesDashboardCPULimit"}}|g" "/etc/kubernetes/addons/kubernetes-dashboard-deployment.yaml"
sed -i "s|<kubernetesDashboardMemoryLimit>|{{WrapAsVariable "kubernetesDashboardMemoryLimit"}}|g" "/etc/kubernetes/addons/kubernetes-dashboard-deployment.yaml"
{{end}}
{{if .OrchestratorProfile.KubernetesConfig.IsTillerEnabled}}
sed -i "s|<kubernetesTillerSpec>|{{WrapAsVariable "kubernetesTillerSpec"}}|g" "/etc/kubernetes/addons/kube-tiller-deployment.yaml"
sed -i "s|<kubernetesTillerCPURequests>|{{WrapAsVariable "kubernetesTillerCPURequests"}}|g" "/etc/kubernetes/addons/kube-tiller-deployment.yaml"
@ -297,7 +309,14 @@ write_files:
sed -i "s|<kubernetesTillerCPULimit>|{{WrapAsVariable "kubernetesTillerCPULimit"}}|g" "/etc/kubernetes/addons/kube-tiller-deployment.yaml"
sed -i "s|<kubernetesTillerMemoryLimit>|{{WrapAsVariable "kubernetesTillerMemoryLimit"}}|g" "/etc/kubernetes/addons/kube-tiller-deployment.yaml"
{{end}}
sed -i "s|<kubeDNSServiceIP>|{{WrapAsVariable "kubeDNSServiceIP"}}|g" "/etc/kubernetes/addons/kube-dns-deployment.yaml"
{{if .OrchestratorProfile.KubernetesConfig.IsReschedulerEnabled}}
sed -i "s|<kubernetesReschedulerSpec>|{{WrapAsVariable "kubernetesReschedulerSpec"}}|g" "/etc/kubernetes/addons/kube-rescheduler-deployment.yaml"
sed -i "s|<kubernetesReschedulerCPURequests>|{{WrapAsVariable "kubernetesReschedulerCPURequests"}}|g" "/etc/kubernetes/addons/kube-rescheduler-deployment.yaml"
sed -i "s|<kubernetesReschedulerMemoryRequests>|{{WrapAsVariable "kubernetesReschedulerMemoryRequests"}}|g" "/etc/kubernetes/addons/kube-rescheduler-deployment.yaml"
sed -i "s|<kubernetesReschedulerCPULimit>|{{WrapAsVariable "kubernetesReschedulerCPULimit"}}|g" "/etc/kubernetes/addons/kube-rescheduler-deployment.yaml"
sed -i "s|<kubernetesReschedulerMemoryLimit>|{{WrapAsVariable "kubernetesReschedulerMemoryLimit"}}|g" "/etc/kubernetes/addons/kube-rescheduler-deployment.yaml"
{{end}}
{{if .OrchestratorProfile.KubernetesConfig.EnableRbac }}
# If RBAC enabled then add parameters to API server and Controller manager configuration

Просмотреть файл

@ -27,6 +27,11 @@
"kubernetesTillerMemoryRequests": "[parameters('kubernetesTillerMemoryRequests')]",
"kubernetesTillerCPULimit": "[parameters('kubernetesTillerCPULimit')]",
"kubernetesTillerMemoryLimit": "[parameters('kubernetesTillerMemoryLimit')]",
"kubernetesReschedulerSpec": "[parameters('kubernetesReschedulerSpec')]",
"kubernetesReschedulerCPURequests": "[parameters('kubernetesReschedulerCPURequests')]",
"kubernetesReschedulerMemoryRequests": "[parameters('kubernetesReschedulerMemoryRequests')]",
"kubernetesReschedulerCPULimit": "[parameters('kubernetesReschedulerCPULimit')]",
"kubernetesReschedulerMemoryLimit": "[parameters('kubernetesReschedulerMemoryLimit')]",
"kubernetesPodInfraContainerSpec": "[parameters('kubernetesPodInfraContainerSpec')]",
"kubernetesNodeStatusUpdateFrequency": "[parameters('kubernetesNodeStatusUpdateFrequency')]",
"kubernetesCtrlMgrNodeMonitorGracePeriod": "[parameters('kubernetesCtrlMgrNodeMonitorGracePeriod')]",

Просмотреть файл

@ -225,6 +225,41 @@
},
"type": "string"
},
"kubernetesReschedulerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerSpec"}}
"metadata": {
"description": "The container spec for rescheduler."
},
"type": "string"
},
"kubernetesReschedulerCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerCPURequests"}}
"metadata": {
"description": "Rescheduler CPU Requests."
},
"type": "string"
},
"kubernetesReschedulerMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerMemoryRequests"}}
"metadata": {
"description": "Rescheduler Memory Requests."
},
"type": "string"
},
"kubernetesReschedulerCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerCPULimit"}}
"metadata": {
"description": "Rescheduler CPU Limit."
},
"type": "string"
},
"kubernetesReschedulerMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerMemoryLimit"}}
"metadata": {
"description": "Rescheduler Memory Limit."
},
"type": "string"
},
"kubernetesPodInfraContainerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesPodInfraContainerSpec"}}
"metadata": {

Просмотреть файл

@ -87,6 +87,10 @@ const (
DefaultEtcdVersion = "2.2.5"
// DefaultEtcdDiskSize specifies the default size for Kubernetes master etcd disk volumes in GB
DefaultEtcdDiskSize = "128"
// DefaultReschedulerImage defines the rescheduler deployment version on Kubernetes Clusters
DefaultReschedulerImage = "rescheduler:v0.3.1"
// DefaultReschedulerAddonName is the name of the rescheduler addon deployment
DefaultReschedulerAddonName = "rescheduler"
)
const (

Просмотреть файл

@ -161,7 +161,7 @@ var (
// DefaultTillerAddonsConfig is the default tiller Kubernetes addon Config
DefaultTillerAddonsConfig = api.KubernetesAddon{
Name: DefaultTillerAddonName,
Enabled: pointerToBool(true),
Enabled: pointerToBool(api.DefaultTillerAddonEnabled),
Containers: []api.KubernetesContainerSpec{
{
Name: DefaultTillerAddonName,
@ -176,7 +176,7 @@ var (
// DefaultDashboardAddonsConfig is the default kubernetes-dashboard addon Config
DefaultDashboardAddonsConfig = api.KubernetesAddon{
Name: DefaultDashboardAddonName,
Enabled: pointerToBool(true),
Enabled: pointerToBool(api.DefaultDashboardAddonEnabled),
Containers: []api.KubernetesContainerSpec{
{
Name: DefaultDashboardAddonName,
@ -187,6 +187,21 @@ var (
},
},
}
// DefaultReschedulerAddonsConfig is the default rescheduler Kubernetes addon Config
DefaultReschedulerAddonsConfig = api.KubernetesAddon{
Name: DefaultReschedulerAddonName,
Enabled: pointerToBool(api.DefaultReschedulerAddonEnabled),
Containers: []api.KubernetesContainerSpec{
{
Name: DefaultReschedulerAddonName,
CPURequests: "10m",
MemoryRequests: "100Mi",
CPULimits: "10m",
MemoryLimits: "100Mi",
},
},
}
)
// SetPropertiesDefaults for the container Properties, returns true if certs are generated
@ -236,6 +251,7 @@ func setOrchestratorDefaults(cs *api.ContainerService) {
o.KubernetesConfig.Addons = []api.KubernetesAddon{
DefaultTillerAddonsConfig,
DefaultDashboardAddonsConfig,
DefaultReschedulerAddonsConfig,
}
} else {
// For each addon, provide default configuration if user didn't provide its own config
@ -249,6 +265,11 @@ func setOrchestratorDefaults(cs *api.ContainerService) {
// Provide default acs-engine config for Dashboard
o.KubernetesConfig.Addons = append(o.KubernetesConfig.Addons, DefaultDashboardAddonsConfig)
}
r := getAddonsIndexByName(o.KubernetesConfig.Addons, DefaultReschedulerAddonName)
if r < 0 {
// Provide default acs-engine config for Rescheduler
o.KubernetesConfig.Addons = append(o.KubernetesConfig.Addons, DefaultReschedulerAddonsConfig)
}
}
if o.KubernetesConfig.KubernetesImageBase == "" {
o.KubernetesConfig.KubernetesImageBase = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase
@ -346,6 +367,10 @@ func setOrchestratorDefaults(cs *api.ContainerService) {
if a.OrchestratorProfile.KubernetesConfig.Addons[d].IsEnabled(api.DefaultDashboardAddonEnabled) {
a.OrchestratorProfile.KubernetesConfig.Addons[d] = assignDefaultAddonVals(a.OrchestratorProfile.KubernetesConfig.Addons[d], DefaultDashboardAddonsConfig)
}
r := getAddonsIndexByName(a.OrchestratorProfile.KubernetesConfig.Addons, DefaultReschedulerAddonName)
if a.OrchestratorProfile.KubernetesConfig.Addons[r].IsEnabled(api.DefaultReschedulerAddonEnabled) {
a.OrchestratorProfile.KubernetesConfig.Addons[r] = assignDefaultAddonVals(a.OrchestratorProfile.KubernetesConfig.Addons[r], DefaultReschedulerAddonsConfig)
}
if "" == a.OrchestratorProfile.KubernetesConfig.EtcdDiskSizeGB {
a.OrchestratorProfile.KubernetesConfig.EtcdDiskSizeGB = DefaultEtcdDiskSize

Просмотреть файл

@ -121,6 +121,7 @@ var kubernetesAddonYamls = map[string]string{
"MASTER_ADDON_KUBERNETES_DASHBOARD_DEPLOYMENT_B64_GZIP_STR": "kubernetesmasteraddons-kubernetes-dashboard-deployment.yaml",
"MASTER_ADDON_AZURE_STORAGE_CLASSES_B64_GZIP_STR": "kubernetesmasteraddons-azure-storage-classes.yaml",
"MASTER_ADDON_TILLER_DEPLOYMENT_B64_GZIP_STR": "kubernetesmasteraddons-tiller-deployment.yaml",
"MASTER_ADDON_RESCHEDULER_DEPLOYMENT_B64_GZIP_STR": "kubernetesmasteraddons-kube-rescheduler-deployment.yaml",
}
var kubernetesAddonYamls15 = map[string]string{
@ -574,7 +575,20 @@ func getParameters(cs *api.ContainerService, isClassicMode bool, generatorCode s
if dashboardAddon.Containers[c].Image != "" {
addValue(parametersMap, "kubernetesDashboardSpec", dashboardAddon.Containers[c].Image)
} else {
addValue(parametersMap, "kubernetesDashboardSpec", cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase+KubeConfigs[k8sVersion]["dashboard"])
addValue(parametersMap, "kubernetesDashboardSpec", cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase+KubeConfigs[k8sVersion][DefaultDashboardAddonName])
}
}
reschedulerAddon := getAddonByName(properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultReschedulerAddonName)
c = getAddonContainersIndexByName(reschedulerAddon.Containers, DefaultReschedulerAddonName)
if c > -1 {
addValue(parametersMap, "kubernetesReschedulerCPURequests", reschedulerAddon.Containers[c].CPURequests)
addValue(parametersMap, "kubernetesReschedulerCPULimit", reschedulerAddon.Containers[c].CPULimits)
addValue(parametersMap, "kubernetesReschedulerMemoryRequests", reschedulerAddon.Containers[c].MemoryRequests)
addValue(parametersMap, "kubernetesReschedulerMemoryLimit", reschedulerAddon.Containers[c].MemoryLimits)
if reschedulerAddon.Containers[c].Image != "" {
addValue(parametersMap, "kubernetesReschedulerSpec", dashboardAddon.Containers[c].Image)
} else {
addValue(parametersMap, "kubernetesReschedulerSpec", cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase+KubeConfigs[k8sVersion][DefaultReschedulerAddonName])
}
}
addValue(parametersMap, "kubernetesKubeDNSSpec", cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase+KubeConfigs[k8sVersion]["dns"])
@ -977,6 +991,9 @@ func (t *TemplateGenerator) getTemplateFuncMap(cs *api.ContainerService) templat
if !profile.OrchestratorProfile.KubernetesConfig.IsDashboardEnabled() {
delete(addonYamls, "MASTER_ADDON_KUBERNETES_DASHBOARD_DEPLOYMENT_B64_GZIP_STR")
}
if !profile.OrchestratorProfile.KubernetesConfig.IsReschedulerEnabled() {
delete(addonYamls, "MASTER_ADDON_RESCHEDULER_DEPLOYMENT_B64_GZIP_STR")
}
for placeholder, filename := range addonYamls {
addonTextContents := getBase64CustomScript(filename)
str = strings.Replace(str, placeholder, addonTextContents, -1)
@ -1191,6 +1208,8 @@ func (t *TemplateGenerator) getTemplateFuncMap(cs *api.ContainerService) templat
tC := getAddonContainersIndexByName(tillerAddon.Containers, DefaultTillerAddonName)
dashboardAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultDashboardAddonName)
dC := getAddonContainersIndexByName(dashboardAddon.Containers, DefaultDashboardAddonName)
reschedulerAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultReschedulerAddonName)
rC := getAddonContainersIndexByName(reschedulerAddon.Containers, DefaultReschedulerAddonName)
switch attr {
case "kubernetesHyperkubeSpec":
val = cs.Properties.OrchestratorProfile.KubernetesConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["hyperkube"]
@ -1207,7 +1226,7 @@ func (t *TemplateGenerator) getTemplateFuncMap(cs *api.ContainerService) templat
val = dashboardAddon.Containers[dC].Image
}
} else {
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["dashboard"]
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion][DefaultDashboardAddonName]
}
case "kubernetesDashboardCPURequests":
if dC > -1 {
@ -1271,6 +1290,38 @@ func (t *TemplateGenerator) getTemplateFuncMap(cs *api.ContainerService) templat
} else {
val = ""
}
case "kubernetesReschedulerSpec":
if rC > -1 {
if reschedulerAddon.Containers[rC].Image != "" {
val = reschedulerAddon.Containers[rC].Image
}
} else {
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion][DefaultReschedulerAddonName]
}
case "kubernetesReschedulerCPURequests":
if rC > -1 {
val = reschedulerAddon.Containers[rC].CPURequests
} else {
val = ""
}
case "kubernetesReschedulerMemoryRequests":
if rC > -1 {
val = reschedulerAddon.Containers[rC].MemoryRequests
} else {
val = ""
}
case "kubernetesReschedulerCPULimit":
if rC > -1 {
val = reschedulerAddon.Containers[rC].CPULimits
} else {
val = ""
}
case "kubernetesReschedulerMemoryLimit":
if rC > -1 {
val = reschedulerAddon.Containers[rC].MemoryLimits
} else {
val = ""
}
case "kubernetesKubeDNSSpec":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["dns"]
case "kubernetesPodInfraContainerSpec":

Просмотреть файл

@ -9,408 +9,423 @@ import (
// KubeConfigs represents Docker images used for Kubernetes components based on Kubernetes versions (major.minor.patch)
var KubeConfigs = map[string]map[string]string{
common.KubernetesVersion1Dot8Dot2: {
"hyperkube": "hyperkube-amd64:v1.8.2",
"dashboard": "kubernetes-dashboard-amd64:v1.7.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.8.2-2int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.8.2",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.7.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.8.2-2int.zip",
"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),
},
common.KubernetesVersion1Dot8Dot1: {
"hyperkube": "hyperkube-amd64:v1.8.1",
"dashboard": "kubernetes-dashboard-amd64:v1.7.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.8.1-2int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.8.1",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.7.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.8.1-2int.zip",
"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),
},
common.KubernetesVersion1Dot8Dot0: {
"hyperkube": "hyperkube-amd64:v1.8.0",
"dashboard": "kubernetes-dashboard-amd64:v1.7.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.8.0-2int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.8.0",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.7.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.8.0-2int.zip",
"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),
},
common.KubernetesVersion1Dot7Dot10: {
"hyperkube": "hyperkube-amd64:v1.7.10",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.7.10-1int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.7.10",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.7.10-1int.zip",
"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),
},
common.KubernetesVersion1Dot7Dot9: {
"hyperkube": "hyperkube-amd64:v1.7.9",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.7.9-2int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.7.9",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.7.9-2int.zip",
"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),
},
common.KubernetesVersion1Dot7Dot7: {
"hyperkube": "hyperkube-amd64:v1.7.7",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.7.7-2int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.7.7",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.7.7-2int.zip",
"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),
},
common.KubernetesVersion1Dot7Dot5: {
"hyperkube": "hyperkube-amd64:v1.7.5",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.7.5-4int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.7.5",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.2",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.7.5-4int.zip",
"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),
},
common.KubernetesVersion1Dot7Dot4: {
"hyperkube": "hyperkube-amd64:v1.7.4",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.1",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.7.4-2int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.7.4",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.1",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.7.4-2int.zip",
"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),
},
common.KubernetesVersion1Dot7Dot2: {
"hyperkube": "hyperkube-amd64:v1.7.2",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.1",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"windowszip": "v1.7.2-1int.zip",
"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),
"hyperkube": "hyperkube-amd64:v1.7.2",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.4.1",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"windowszip": "v1.7.2-1int.zip",
"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),
},
common.KubernetesVersion1Dot7Dot1: {
"hyperkube": "hyperkube-amd64:v1.7.1",
"dashboard": "kubernetes-dashboard-amd64:v1.6.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster:v1.4.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"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),
"hyperkube": "hyperkube-amd64:v1.7.1",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster:v1.4.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"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),
},
common.KubernetesVersion1Dot7Dot0: {
"hyperkube": "hyperkube-amd64:v1.7.0",
"dashboard": "kubernetes-dashboard-amd64:v1.6.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster:v1.4.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"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),
"hyperkube": "hyperkube-amd64:v1.7.0",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster:v1.4.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"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),
},
common.KubernetesVersion1Dot6Dot12: {
"hyperkube": "hyperkube-amd64:v1.6.12",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"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),
"hyperkube": "hyperkube-amd64:v1.6.12",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"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),
},
common.KubernetesVersion1Dot6Dot11: {
"hyperkube": "hyperkube-amd64:v1.6.11",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"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),
"hyperkube": "hyperkube-amd64:v1.6.11",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.5",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.5",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"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),
},
common.KubernetesVersion1Dot6Dot9: {
"hyperkube": "hyperkube-amd64:v1.6.9",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"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),
"hyperkube": "hyperkube-amd64:v1.6.9",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"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),
},
common.KubernetesVersion1Dot6Dot6: {
"hyperkube": "hyperkube-amd64:v1.6.6",
"dashboard": "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
"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),
"hyperkube": "hyperkube-amd64:v1.6.6",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.6.3",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.7",
"heapster": "heapster-amd64:v1.3.0",
"dns": "k8s-dns-kube-dns-amd64:1.14.4",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "k8s-dns-dnsmasq-nanny-amd64:1.14.4",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: DefaultTillerImage,
DefaultReschedulerAddonName: DefaultReschedulerImage,
"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),
},
common.KubernetesVersion1Dot5Dot8: {
"hyperkube": "hyperkube-amd64:v1.5.8",
"dashboard": "kubernetes-dashboard-amd64:v1.5.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.6",
"heapster": "heapster:v1.2.0",
"dns": "kubedns-amd64:1.7",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "kube-dnsmasq-amd64:1.3",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: "tiller:v2.5.1",
"nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency,
"nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod,
"podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout,
"routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod,
"gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold),
"gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold),
"hyperkube": "hyperkube-amd64:v1.5.8",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.5.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.6",
"heapster": "heapster:v1.2.0",
"dns": "kubedns-amd64:1.7",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "kube-dnsmasq-amd64:1.3",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: "tiller:v2.5.1",
"nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency,
"nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod,
"podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout,
"routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod,
"gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold),
"gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold),
},
common.KubernetesVersion1Dot5Dot7: {
"hyperkube": "hyperkube-amd64:v1.5.7",
"dashboard": "kubernetes-dashboard-amd64:v1.5.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.6",
"heapster": "heapster:v1.2.0",
"dns": "kubedns-amd64:1.7",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "kube-dnsmasq-amd64:1.3",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: "tiller:v2.5.1",
"nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency,
"nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod,
"podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout,
"routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod,
"gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold),
"gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold),
"hyperkube": "hyperkube-amd64:v1.5.7",
DefaultDashboardAddonName: "kubernetes-dashboard-amd64:v1.5.1",
"exechealthz": "exechealthz-amd64:1.2",
"addonresizer": "addon-resizer:1.6",
"heapster": "heapster:v1.2.0",
"dns": "kubedns-amd64:1.7",
"addonmanager": "kube-addon-manager-amd64:v6.4-beta.2",
"dnsmasq": "kube-dnsmasq-amd64:1.3",
"pause": "pause-amd64:3.0",
DefaultTillerAddonName: "tiller:v2.5.1",
"nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency,
"nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod,
"podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout,
"routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod,
"gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold),
"gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold),
},
}

Просмотреть файл

@ -87,4 +87,12 @@ const (
DefaultTillerAddonEnabled = true
// DefaultDashboardAddonEnabled determines the acs-engine provided default for enabling kubernetes-dashboard addon
DefaultDashboardAddonEnabled = true
// DefaultReschedulerAddonEnabled determines the acs-engine provided default for enabling kubernetes-rescheduler addon
DefaultReschedulerAddonEnabled = false
// DefaultTillerAddonName is the name of the tiller addon deployment
DefaultTillerAddonName = "tiller"
// DefaultDashboardAddonName is the name of the kubernetes-dashboard addon deployment
DefaultDashboardAddonName = "kubernetes-dashboard"
// DefaultReschedulerAddonName is the name of the rescheduler addon deployment
DefaultReschedulerAddonName = "rescheduler"
)

Просмотреть файл

@ -587,7 +587,7 @@ func (o *OrchestratorProfile) GetAPIServerEtcdAPIVersion() string {
func (k *KubernetesConfig) IsTillerEnabled() bool {
var tillerAddon KubernetesAddon
for i := range k.Addons {
if k.Addons[i].Name == "tiller" {
if k.Addons[i].Name == DefaultTillerAddonName {
tillerAddon = k.Addons[i]
}
}
@ -598,9 +598,20 @@ func (k *KubernetesConfig) IsTillerEnabled() bool {
func (k *KubernetesConfig) IsDashboardEnabled() bool {
var dashboardAddon KubernetesAddon
for i := range k.Addons {
if k.Addons[i].Name == "kubernetes-dashboard" {
if k.Addons[i].Name == DefaultDashboardAddonName {
dashboardAddon = k.Addons[i]
}
}
return dashboardAddon.IsEnabled(DefaultDashboardAddonEnabled)
}
// IsReschedulerEnabled checks if the rescheduler addon is enabled
func (k *KubernetesConfig) IsReschedulerEnabled() bool {
var reschedulerAddon KubernetesAddon
for i := range k.Addons {
if k.Addons[i].Name == DefaultReschedulerAddonName {
reschedulerAddon = k.Addons[i]
}
}
return reschedulerAddon.IsEnabled(DefaultReschedulerAddonEnabled)
}

Просмотреть файл

@ -94,17 +94,17 @@ func TestIsTillerEnabled(t *testing.T) {
if e != DefaultTillerAddonEnabled {
t.Fatalf("KubernetesConfig.IsTillerEnabled() should return %t when no tiller addon has been specified, instead returned %t", DefaultTillerAddonEnabled, e)
}
c.Addons = append(c.Addons, getMockAddon("tiller"))
c.Addons = append(c.Addons, getMockAddon(DefaultTillerAddonName))
e = c.IsTillerEnabled()
if e != true {
t.Fatalf("KubernetesConfig.IsTillerEnabled() should return true when a custom tiller addon has been specified, instead returned %t", e)
}
f := false
b := false
c = KubernetesConfig{
Addons: []KubernetesAddon{
{
Name: "tiller",
Enabled: &f,
Name: DefaultTillerAddonName,
Enabled: &b,
},
},
}
@ -124,17 +124,17 @@ func TestIsDashboardEnabled(t *testing.T) {
if e != DefaultDashboardAddonEnabled {
t.Fatalf("KubernetesConfig.IsDashboardEnabled() should return %t when no kubernetes-dashboard addon has been specified, instead returned %t", DefaultDashboardAddonEnabled, e)
}
c.Addons = append(c.Addons, getMockAddon("kubernetes-dashboard"))
c.Addons = append(c.Addons, getMockAddon(DefaultDashboardAddonName))
e = c.IsDashboardEnabled()
if e != true {
t.Fatalf("KubernetesConfig.IsDashboardEnabled() should return true when a custom kubernetes-dashboard addon has been specified, instead returned %t", e)
}
f := false
b := false
c = KubernetesConfig{
Addons: []KubernetesAddon{
{
Name: "kubernetes-dashboard",
Enabled: &f,
Name: DefaultDashboardAddonName,
Enabled: &b,
},
},
}
@ -144,6 +144,36 @@ func TestIsDashboardEnabled(t *testing.T) {
}
}
func TestIsReschedulerEnabled(t *testing.T) {
c := KubernetesConfig{
Addons: []KubernetesAddon{
getMockAddon("addon"),
},
}
e := c.IsReschedulerEnabled()
if e != DefaultReschedulerAddonEnabled {
t.Fatalf("KubernetesConfig.IsReschedulerEnabled() should return %t when no rescheduler addon has been specified, instead returned %t", DefaultReschedulerAddonEnabled, e)
}
c.Addons = append(c.Addons, getMockAddon(DefaultReschedulerAddonName))
e = c.IsReschedulerEnabled()
if e != false {
t.Fatalf("KubernetesConfig.IsReschedulerEnabled() should return true when a custom rescheduler addon has been specified, instead returned %t", e)
}
b := true
c = KubernetesConfig{
Addons: []KubernetesAddon{
{
Name: DefaultReschedulerAddonName,
Enabled: &b,
},
},
}
e = c.IsReschedulerEnabled()
if e != true {
t.Fatalf("KubernetesConfig.IsReschedulerEnabled() should return false when a custom rescheduler addon has been specified as enabled, instead returned %t", e)
}
}
func getMockAddon(name string) KubernetesAddon {
return KubernetesAddon{
Name: name,

Просмотреть файл

@ -81,6 +81,10 @@
"cluster_definition": "kubernetes-config/kubernetes-no-dashboard.json",
"category": "config"
},
{
"cluster_definition": "kubernetes-config/kubernetes-rescheduler.json",
"category": "config"
},
{
"cluster_definition": "v20170131/swarmmode.json",
"category": "version"
@ -106,4 +110,4 @@
"category": "distro"
}
]
}
}

Просмотреть файл

@ -102,7 +102,7 @@ fi
###### Check existence and status of essential pods
# we test other essential pods (kube-dns, kube-proxy) separately
pods="heapster kube-addon-manager kube-apiserver kube-controller-manager kube-scheduler tiller"
pods="heapster rescheduler kube-addon-manager kube-apiserver kube-controller-manager kube-scheduler tiller"
log "Checking $pods"
count=60