Deprecate ACS v1 classic mode support (#3647)

This commit is contained in:
Jack Francis 2018-08-10 13:35:03 -07:00 коммит произвёл GitHub
Родитель 367684bcdf
Коммит e38190b932
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
30 изменённых файлов: 20 добавлений и 1019 удалений

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

@ -59,12 +59,12 @@ Please follow these instructions before submitting a PR:
Usage is best demonstrated with an example: Usage is best demonstrated with an example:
```shell ```shell
$ vim examples/classic/kubernetes.classic.json $ vim examples/kubernetes.json
# insert your preferred, unique DNS prefix # insert your preferred, unique DNS prefix
# insert your SSH public key # insert your SSH public key
$ ./acs-engine generate examples/classic/kubernetes.classic.json $ ./acs-engine generate examples/kubernetes.json
``` ```
This produces a new directory inside `_output/` that contains an ARM template This produces a new directory inside `_output/` that contains an ARM template

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

@ -37,16 +37,6 @@
## 使用步骤 ## 使用步骤
通过创建一个容器集群来演示ACS引擎的具体用法
```shell
$ vim examples/kubernetes.classic.json
# 修改默认的DNS prefix
# 修改ssh public key
$ ./acs-engine generate examples/kubernetes.classic.json
```
This produces a new directory inside `_output/` that contains an ARM template This produces a new directory inside `_output/` that contains an ARM template
for deploying Kubernetes into Azure. (In the case of Kubernetes, some additional for deploying Kubernetes into Azure. (In the case of Kubernetes, some additional
needed assets are generated and placed in the output directory.) needed assets are generated and placed in the output directory.)

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

@ -53,7 +53,6 @@ type deployCmd struct {
forceOverwrite bool forceOverwrite bool
caCertificatePath string caCertificatePath string
caPrivateKeyPath string caPrivateKeyPath string
classicMode bool
parametersOnly bool parametersOnly bool
set []string set []string
@ -397,7 +396,7 @@ func (dc *deployCmd) run() error {
}, },
} }
templateGenerator, err := acsengine.InitializeTemplateGenerator(ctx, dc.classicMode) templateGenerator, err := acsengine.InitializeTemplateGenerator(ctx)
if err != nil { if err != nil {
log.Fatalf("failed to initialize template generator: %s", err.Error()) log.Fatalf("failed to initialize template generator: %s", err.Error())
} }

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

@ -27,7 +27,6 @@ type generateCmd struct {
outputDirectory string // can be auto-determined from clusterDefinition outputDirectory string // can be auto-determined from clusterDefinition
caCertificatePath string caCertificatePath string
caPrivateKeyPath string caPrivateKeyPath string
classicMode bool
noPrettyPrint bool noPrettyPrint bool
parametersOnly bool parametersOnly bool
set []string set []string
@ -68,7 +67,6 @@ func newGenerateCmd() *cobra.Command {
f.StringVar(&gc.caCertificatePath, "ca-certificate-path", "", "path to the CA certificate to use for Kubernetes PKI assets") f.StringVar(&gc.caCertificatePath, "ca-certificate-path", "", "path to the CA certificate to use for Kubernetes PKI assets")
f.StringVar(&gc.caPrivateKeyPath, "ca-private-key-path", "", "path to the CA private key to use for Kubernetes PKI assets") f.StringVar(&gc.caPrivateKeyPath, "ca-private-key-path", "", "path to the CA private key to use for Kubernetes PKI assets")
f.StringArrayVar(&gc.set, "set", []string{}, "set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)") f.StringArrayVar(&gc.set, "set", []string{}, "set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.BoolVar(&gc.classicMode, "classic-mode", false, "enable classic parameters and outputs")
f.BoolVar(&gc.noPrettyPrint, "no-pretty-print", false, "skip pretty printing the output") f.BoolVar(&gc.noPrettyPrint, "no-pretty-print", false, "skip pretty printing the output")
f.BoolVar(&gc.parametersOnly, "parameters-only", false, "only output parameters files") f.BoolVar(&gc.parametersOnly, "parameters-only", false, "only output parameters files")
@ -177,7 +175,7 @@ func (gc *generateCmd) run() error {
Locale: gc.locale, Locale: gc.locale,
}, },
} }
templateGenerator, err := acsengine.InitializeTemplateGenerator(ctx, gc.classicMode) templateGenerator, err := acsengine.InitializeTemplateGenerator(ctx)
if err != nil { if err != nil {
log.Fatalf("failed to initialize template generator: %s", err.Error()) log.Fatalf("failed to initialize template generator: %s", err.Error())
} }

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

@ -12,7 +12,7 @@ func TestNewGenerateCmd(t *testing.T) {
t.Fatalf("generate command should have use %s equal %s, short %s equal %s and long %s equal to %s", output.Use, generateName, output.Short, generateShortDescription, output.Long, generateLongDescription) t.Fatalf("generate command should have use %s equal %s, short %s equal %s and long %s equal to %s", output.Use, generateName, output.Short, generateShortDescription, output.Long, generateLongDescription)
} }
expectedFlags := []string{"api-model", "output-directory", "ca-certificate-path", "ca-private-key-path", "set", "classic-mode", "no-pretty-print", "parameters-only"} expectedFlags := []string{"api-model", "output-directory", "ca-certificate-path", "ca-private-key-path", "set", "no-pretty-print", "parameters-only"}
for _, f := range expectedFlags { for _, f := range expectedFlags {
if output.Flags().Lookup(f) == nil { if output.Flags().Lookup(f) == nil {
t.Fatalf("generate command should have flag %s", f) t.Fatalf("generate command should have flag %s", f)

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

@ -38,7 +38,6 @@ type scaleCmd struct {
newDesiredAgentCount int newDesiredAgentCount int
location string location string
agentPoolToScale string agentPoolToScale string
classicMode bool
masterFQDN string masterFQDN string
// derived // derived
@ -77,7 +76,6 @@ func newScaleCmd() *cobra.Command {
f.StringVarP(&sc.resourceGroupName, "resource-group", "g", "", "the resource group where the cluster is deployed") f.StringVarP(&sc.resourceGroupName, "resource-group", "g", "", "the resource group where the cluster is deployed")
f.StringVar(&sc.deploymentDirectory, "deployment-dir", "", "the location of the output from `generate`") f.StringVar(&sc.deploymentDirectory, "deployment-dir", "", "the location of the output from `generate`")
f.IntVar(&sc.newDesiredAgentCount, "new-node-count", 0, "desired number of nodes") f.IntVar(&sc.newDesiredAgentCount, "new-node-count", 0, "desired number of nodes")
f.BoolVar(&sc.classicMode, "classic-mode", false, "enable classic parameters and outputs")
f.StringVar(&sc.agentPoolToScale, "node-pool", "", "node pool to scale") f.StringVar(&sc.agentPoolToScale, "node-pool", "", "node pool to scale")
f.StringVar(&sc.masterFQDN, "master-FQDN", "", "FQDN for the master load balancer, Needed to scale down Kubernetes agent pools") f.StringVar(&sc.masterFQDN, "master-FQDN", "", "FQDN for the master load balancer, Needed to scale down Kubernetes agent pools")
@ -343,7 +341,7 @@ func (sc *scaleCmd) run(cmd *cobra.Command, args []string) error {
Locale: sc.locale, Locale: sc.locale,
}, },
} }
templateGenerator, err := acsengine.InitializeTemplateGenerator(translator, sc.classicMode) templateGenerator, err := acsengine.InitializeTemplateGenerator(translator)
if err != nil { if err != nil {
return errors.Wrap(err, "failed to initialize template generator") return errors.Wrap(err, "failed to initialize template generator")
} }

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

@ -13,7 +13,7 @@ func TestNewScaleCmd(t *testing.T) {
t.Fatalf("scale command should have use %s equal %s, short %s equal %s and long %s equal to %s", output.Use, scaleName, output.Short, scaleShortDescription, output.Long, scaleLongDescription) t.Fatalf("scale command should have use %s equal %s, short %s equal %s and long %s equal to %s", output.Use, scaleName, output.Short, scaleShortDescription, output.Long, scaleLongDescription)
} }
expectedFlags := []string{"location", "resource-group", "deployment-dir", "new-node-count", "classic-mode", "node-pool", "master-FQDN"} expectedFlags := []string{"location", "resource-group", "deployment-dir", "new-node-count", "node-pool", "master-FQDN"}
for _, f := range expectedFlags { for _, f := range expectedFlags {
if output.Flags().Lookup(f) == nil { if output.Flags().Lookup(f) == nil {
t.Fatalf("scale command should have flag %s", f) t.Fatalf("scale command should have flag %s", f)

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

@ -1,9 +0,0 @@
# Microsoft Azure Container Service Engine - Classic
## Overview
This section provides example templates that match the original versions of templates used on Azure Container Service.
Here are the examples:
1. **kubernetes.classic.json** - deploying and using [Kubernetes](../../docs/kubernetes.md)

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

@ -1,35 +0,0 @@
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes"
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v2"
},
"agentPoolProfiles": [
{
"name": "agent",
"count": 3,
"vmSize": "Standard_D2_v2",
"availabilityProfile": "AvailabilitySet"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
},
"servicePrincipalProfile": {
"clientId": "",
"secret": ""
}
}
}

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

@ -1,35 +0,0 @@
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes"
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v2"
},
"agentPoolProfiles": [
{
"name": "agent",
"count": 3,
"vmSize": "Standard_D2_v2",
"availabilityProfile": "AvailabilitySet"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
},
"servicePrincipalProfile": {
"clientId": "",
"secret": ""
}
}
}

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

@ -1,40 +0,0 @@
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorType": "Kubernetes"
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v2"
},
"agentPoolProfiles": [
{
"name": "agent",
"count": 2,
"vmSize": "Standard_DS3_v2",
"availabilityProfile": "AvailabilitySet",
"osType": "Windows"
}
],
"windowsProfile": {
"adminUsername": "azureuser",
"adminPassword": "replacepassword1234$"
},
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
},
"servicePrincipalProfile": {
"clientId": "",
"secret": ""
}
}
}

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

@ -1,2 +0,0 @@
export EXPECTED_NODE_COUNT=3

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

@ -1,166 +0,0 @@
"agentEndpointDNSNamePrefix": {
"defaultValue": "UNUSED",
"metadata": {
"description": "Sets the Domain name label for the agent pool IP Address. The concatenation of the domain name label and the regional DNS zone make up the fully qualified domain name associated with the public IP address."
},
"type": "string"
},
"disablePasswordAuthentication": {
"defaultValue": true,
"metadata": {
"description": "This setting controls whether password auth is disabled for Linux VMs provisioned by this template. Default is true which disables password and makes SSH key required."
},
"type": "bool"
},
"enableNewStorageAccountNaming": {
"defaultValue": true,
"metadata": {
"description": "If true: uses DNS name prefix + Orchestrator name + Region to create storage account name to reduce name collision probability. If false: uses DNS name prefix + Orchestrator name to create storage account name to maintain template idempotency."
},
"type": "bool"
},
"enableVMDiagnostics": {
"defaultValue": true,
"metadata": {
"description": "Allows user to enable/disable boot & vm diagnostics."
},
"type": "bool"
},
"isValidation": {
"allowedValues": [
0,
1
],
"defaultValue": 0,
"metadata": {
"description": "This is testing in the validation region"
},
"type": "int"
},
"jumpboxEndpointDNSNamePrefix": {
"defaultValue": "UNUSED",
"metadata": {
"description": "Sets the Domain name label for the jumpbox. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
},
"type": "string"
},
"linuxAdminPassword": {
"defaultValue": "UNUSED",
"metadata": {
"description": "Password for the Linux Virtual Machine. Not Required. If not set, you must provide a SSH key."
},
"type": "securestring"
},
"linuxOffer": {
"defaultValue": "UNUSED",
"metadata": {
"description": "This is the offer of the image used by the linux cluster"
},
"type": "string"
},
"linuxPublisher": {
"defaultValue": "UNUSED",
"metadata": {
"description": "This is the publisher of the image used by the linux cluster"
},
"type": "string"
},
"linuxSku": {
"defaultValue": "UNUSED",
"metadata": {
"description": "This is the linux sku used by the linux cluster"
},
"type": "string"
},
"linuxVersion": {
"defaultValue": "UNUSED",
"metadata": {
"description": "This is the linux version used by the linux cluster"
},
"type": "string"
},
"masterCount": {
"allowedValues": [
1,
3,
5
],
"defaultValue": 1,
"metadata": {
"description": "The number of Mesos masters for the cluster."
},
"type": "int"
},
"oauthEnabled": {
"allowedValues": [
"true",
"false"
],
"defaultValue": "false",
"metadata": {
"description": "Enable OAuth authentication"
},
"type": "string"
},
"postInstallScriptURI": {
"defaultValue": "disabled",
"metadata": {
"description": "After installation, this specifies a script to download and install. To disabled, set value to 'disabled'."
},
"type": "string"
},
"setLinuxConfigurationForVMCreate": {
"allowedValues": [
0,
1
],
"defaultValue": 1,
"metadata": {
"description": "This setting controls whether Linux configuration with SSH Key is passed in VM PUT Payload. Defaults to 1. If SSH Key is blank, this must be set to 0."
},
"type": "int"
},
"vmsPerStorageAccount": {
"defaultValue": 5,
"metadata": {
"description": "This specifies the number of VMs per storage accounts"
},
"type": "int"
},
{{if not .HasWindows}}
"windowsAdminPassword": {
"defaultValue": "UNUSED",
"metadata": {
"description": "Password for the Windows Virtual Machine."
},
"type": "securestring"
},
"windowsAdminUsername": {
"defaultValue": "UNUSED",
"metadata": {
"description": "User name for the Windows Virtual Machine (Password Only Supported)."
},
"type": "string"
},
{{end}}
"windowsJumpboxOffer": {
"defaultValue": "UNUSED",
"metadata": {
"description": "This is the windows offer used by the windows"
},
"type": "string"
},
"windowsJumpboxPublisher": {
"defaultValue": "UNUSED",
"metadata": {
"description": "This is the windows publisher used by the windows"
},
"type": "string"
},
"windowsJumpboxSku": {
"defaultValue": "UNUSED",
"metadata": {
"description": "This is the windows sku used by the windows"
},
"type": "string"
}

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

@ -118,9 +118,6 @@
}, },
"type": "string" "type": "string"
} }
{{if GetClassicMode}}
,{{template "classicparams.t" .}}
{{end}}
{{if .LinuxProfile.HasSecrets}} {{if .LinuxProfile.HasSecrets}}
{{range $vIndex, $vault := .LinuxProfile.Secrets}} {{range $vIndex, $vault := .LinuxProfile.Secrets}}
, ,

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

@ -5,14 +5,12 @@
{{range .AgentPoolProfiles}}{{template "agentparams.t" .}},{{end}} {{range .AgentPoolProfiles}}{{template "agentparams.t" .}},{{end}}
{{if .HasWindows}} {{if .HasWindows}}
"dcosBinariesURL": { "dcosBinariesURL": {
{{PopulateClassicModeDefaultValue "dcosBinariesURL"}}
"metadata": { "metadata": {
"description": "The download url for dcos/mesos windows binaries." "description": "The download url for dcos/mesos windows binaries."
}, },
"type": "string" "type": "string"
}, },
"dcosBinariesVersion": { "dcosBinariesVersion": {
{{PopulateClassicModeDefaultValue "dcosBinariesVersion"}}
"metadata": { "metadata": {
"description": "DCOS windows binaries version" "description": "DCOS windows binaries version"
}, },

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

@ -5,14 +5,12 @@
{{range .AgentPoolProfiles}}{{template "agentparams.t" .}},{{end}} {{range .AgentPoolProfiles}}{{template "agentparams.t" .}},{{end}}
{{if .HasWindows}} {{if .HasWindows}}
"dcosBinariesURL": { "dcosBinariesURL": {
{{PopulateClassicModeDefaultValue "dcosBinariesURL"}}
"metadata": { "metadata": {
"description": "The download url for dcos/mesos windows binaries." "description": "The download url for dcos/mesos windows binaries."
}, },
"type": "string" "type": "string"
}, },
"dcosBinariesVersion": { "dcosBinariesVersion": {
{{PopulateClassicModeDefaultValue "dcosBinariesVersion"}}
"metadata": { "metadata": {
"description": "DCOS windows binaries version" "description": "DCOS windows binaries version"
}, },

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

@ -5,28 +5,24 @@
{{range .AgentPoolProfiles}}{{template "agentparams.t" .}},{{end}} {{range .AgentPoolProfiles}}{{template "agentparams.t" .}},{{end}}
{{if .HasWindows}} {{if .HasWindows}}
"kubeBinariesSASURL": { "kubeBinariesSASURL": {
{{PopulateClassicModeDefaultValue "kubeBinariesSASURL"}}
"metadata": { "metadata": {
"description": "The download url for kubernetes windows binaries." "description": "The download url for kubernetes windows binaries."
}, },
"type": "string" "type": "string"
}, },
"windowsPackageSASURLBase": { "windowsPackageSASURLBase": {
{{PopulateClassicModeDefaultValue "windowsPackageSASURLBase"}}
"metadata": { "metadata": {
"description": "The download url base for windows packages for kubernetes." "description": "The download url base for windows packages for kubernetes."
}, },
"type": "string" "type": "string"
}, },
"kubeBinariesVersion": { "kubeBinariesVersion": {
{{PopulateClassicModeDefaultValue "kubeBinariesVersion"}}
"metadata": { "metadata": {
"description": "Kubernetes windows binaries version" "description": "Kubernetes windows binaries version"
}, },
"type": "string" "type": "string"
}, },
"windowsTelemetryGUID": { "windowsTelemetryGUID": {
{{PopulateClassicModeDefaultValue "windowsTelemetryGUID"}}
"metadata": { "metadata": {
"description": "The GUID to set in windows agent to collect telemetry data." "description": "The GUID to set in windows agent to collect telemetry data."
}, },

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

@ -76,11 +76,7 @@
{{ end }} {{ end }}
"masterFqdnPrefix": "[tolower(parameters('masterEndpointDNSNamePrefix'))]", "masterFqdnPrefix": "[tolower(parameters('masterEndpointDNSNamePrefix'))]",
{{if not IsHostedMaster}} {{if not IsHostedMaster}}
{{if GetClassicMode}}
"masterCount": "[parameters('masterCount')]",
{{else}}
"masterCount": {{.MasterProfile.Count}}, "masterCount": {{.MasterProfile.Count}},
{{end}}
"masterOffset": "[parameters('masterOffset')]", "masterOffset": "[parameters('masterOffset')]",
{{end}} {{end}}
"apiVersionDefault": "2016-03-30", "apiVersionDefault": "2016-03-30",

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

@ -133,7 +133,6 @@
"type": "string" "type": "string"
}, },
"caPrivateKey": { "caPrivateKey": {
{{PopulateClassicModeDefaultValue "caPrivateKey"}}
"metadata": { "metadata": {
"description": "The base 64 CA private key used on the master." "description": "The base 64 CA private key used on the master."
}, },
@ -165,14 +164,12 @@
}, },
{{end}} {{end}}
"generatorCode": { "generatorCode": {
{{PopulateClassicModeDefaultValue "generatorCode"}}
"metadata": { "metadata": {
"description": "The generator code used to identify the generator" "description": "The generator code used to identify the generator"
}, },
"type": "string" "type": "string"
}, },
"orchestratorName": { "orchestratorName": {
{{PopulateClassicModeDefaultValue "orchestratorName"}}
"metadata": { "metadata": {
"description": "The orchestrator name used to identify the orchestrator. This must be no more than 3 digits in length, otherwise it will exceed Windows Naming" "description": "The orchestrator name used to identify the orchestrator. This must be no more than 3 digits in length, otherwise it will exceed Windows Naming"
}, },
@ -181,28 +178,24 @@
"type": "string" "type": "string"
}, },
"dockerBridgeCidr": { "dockerBridgeCidr": {
{{PopulateClassicModeDefaultValue "dockerBridgeCidr"}}
"metadata": { "metadata": {
"description": "Docker bridge network IP address and subnet" "description": "Docker bridge network IP address and subnet"
}, },
"type": "string" "type": "string"
}, },
"kubeClusterCidr": { "kubeClusterCidr": {
{{PopulateClassicModeDefaultValue "kubeClusterCidr"}}
"metadata": { "metadata": {
"description": "Kubernetes cluster subnet" "description": "Kubernetes cluster subnet"
}, },
"type": "string" "type": "string"
}, },
"kubeDNSServiceIP": { "kubeDNSServiceIP": {
{{PopulateClassicModeDefaultValue "kubeDNSServiceIP"}}
"metadata": { "metadata": {
"description": "Kubernetes DNS IP" "description": "Kubernetes DNS IP"
}, },
"type": "string" "type": "string"
}, },
"kubeServiceCidr": { "kubeServiceCidr": {
{{PopulateClassicModeDefaultValue "kubeServiceCidr"}}
"metadata": { "metadata": {
"description": "Kubernetes service address space" "description": "Kubernetes service address space"
}, },
@ -221,7 +214,6 @@
"type": "string" "type": "string"
}, },
"kubernetesHyperkubeSpec": { "kubernetesHyperkubeSpec": {
{{PopulateClassicModeDefaultValue "kubernetesHyperkubeSpec"}}
"metadata": { "metadata": {
"description": "The container spec for hyperkube." "description": "The container spec for hyperkube."
}, },
@ -235,154 +227,132 @@
"type": "string" "type": "string"
}, },
"kubernetesAddonManagerSpec": { "kubernetesAddonManagerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesAddonManagerSpec"}}
"metadata": { "metadata": {
"description": "The container spec for hyperkube." "description": "The container spec for hyperkube."
}, },
"type": "string" "type": "string"
}, },
"kubernetesAddonResizerSpec": { "kubernetesAddonResizerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesAddonResizerSpec"}}
"metadata": { "metadata": {
"description": "The container spec for addon-resizer." "description": "The container spec for addon-resizer."
}, },
"type": "string" "type": "string"
}, },
"kubernetesDashboardSpec": { "kubernetesDashboardSpec": {
{{PopulateClassicModeDefaultValue "kubernetesDashboardSpec"}}
"metadata": { "metadata": {
"description": "The container spec for kubernetes-dashboard-amd64." "description": "The container spec for kubernetes-dashboard-amd64."
}, },
"type": "string" "type": "string"
}, },
"kubernetesDashboardCPURequests": { "kubernetesDashboardCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesDashboardCPURequests"}}
"metadata": { "metadata": {
"description": "Dashboard CPU Requests." "description": "Dashboard CPU Requests."
}, },
"type": "string" "type": "string"
}, },
"kubernetesDashboardMemoryRequests": { "kubernetesDashboardMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesDashboardMemoryRequests"}}
"metadata": { "metadata": {
"description": "Dashboard Memory Requests." "description": "Dashboard Memory Requests."
}, },
"type": "string" "type": "string"
}, },
"kubernetesDashboardCPULimit": { "kubernetesDashboardCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesDashboardCPULimit"}}
"metadata": { "metadata": {
"description": "Dashboard CPU Limit." "description": "Dashboard CPU Limit."
}, },
"type": "string" "type": "string"
}, },
"kubernetesDashboardMemoryLimit": { "kubernetesDashboardMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesDashboardMemoryLimit"}}
"metadata": { "metadata": {
"description": "Dashboard Memory Limit." "description": "Dashboard Memory Limit."
}, },
"type": "string" "type": "string"
}, },
"kubernetesExecHealthzSpec": { "kubernetesExecHealthzSpec": {
{{PopulateClassicModeDefaultValue "kubernetesExecHealthzSpec"}}
"metadata": { "metadata": {
"description": "The container spec for exechealthz-amd64." "description": "The container spec for exechealthz-amd64."
}, },
"type": "string" "type": "string"
}, },
"kubernetesDNSSidecarSpec": { "kubernetesDNSSidecarSpec": {
{{PopulateClassicModeDefaultValue "kubernetesDNSSidecarSpec"}}
"metadata": { "metadata": {
"description": "The container spec for k8s-dns-sidecar-amd64." "description": "The container spec for k8s-dns-sidecar-amd64."
}, },
"type": "string" "type": "string"
}, },
"kubernetesHeapsterSpec": { "kubernetesHeapsterSpec": {
{{PopulateClassicModeDefaultValue "kubernetesHeapsterSpec"}}
"metadata": { "metadata": {
"description": "The container spec for heapster." "description": "The container spec for heapster."
}, },
"type": "string" "type": "string"
}, },
"kubernetesMetricsServerSpec": { "kubernetesMetricsServerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesMetricsServerSpec"}}
"metadata": { "metadata": {
"description": "The container spec for Metrics Server." "description": "The container spec for Metrics Server."
}, },
"type": "string" "type": "string"
}, },
"kubernetesNVIDIADevicePluginSpec": { "kubernetesNVIDIADevicePluginSpec": {
{{PopulateClassicModeDefaultValue "kubernetesNVIDIADevicePluginSpec"}}
"metadata": { "metadata": {
"description": "The container spec for NVIDIA Device Plugin." "description": "The container spec for NVIDIA Device Plugin."
}, },
"type": "string" "type": "string"
}, },
"kubernetesNVIDIADevicePluginCPURequests": { "kubernetesNVIDIADevicePluginCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesNVIDIADevicePluginCPURequests"}}
"metadata": { "metadata": {
"description": "NVIDIA Device Plugin CPU Requests" "description": "NVIDIA Device Plugin CPU Requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesNVIDIADevicePluginMemoryRequests": { "kubernetesNVIDIADevicePluginMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesNVIDIADevicePluginMemoryRequests"}}
"metadata": { "metadata": {
"description": "NVIDIA Device Plugin Memory Requests" "description": "NVIDIA Device Plugin Memory Requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesNVIDIADevicePluginCPULimit": { "kubernetesNVIDIADevicePluginCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesNVIDIADevicePluginCPULimit"}}
"metadata": { "metadata": {
"description": "NVIDIA Device Plugin CPU Limit" "description": "NVIDIA Device Plugin CPU Limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesNVIDIADevicePluginMemoryLimit": { "kubernetesNVIDIADevicePluginMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesNVIDIADevicePluginMemoryLimit"}}
"metadata": { "metadata": {
"description": "NVIDIA Device Plugin Memory Limit" "description": "NVIDIA Device Plugin Memory Limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesTillerSpec": { "kubernetesTillerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesTillerSpec"}}
"metadata": { "metadata": {
"description": "The container spec for Helm Tiller." "description": "The container spec for Helm Tiller."
}, },
"type": "string" "type": "string"
}, },
"kubernetesTillerCPURequests": { "kubernetesTillerCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesTillerCPURequests"}}
"metadata": { "metadata": {
"description": "Helm Tiller CPU Requests." "description": "Helm Tiller CPU Requests."
}, },
"type": "string" "type": "string"
}, },
"kubernetesTillerMemoryRequests": { "kubernetesTillerMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesTillerMemoryRequests"}}
"metadata": { "metadata": {
"description": "Helm Tiller Memory Requests." "description": "Helm Tiller Memory Requests."
}, },
"type": "string" "type": "string"
}, },
"kubernetesTillerCPULimit": { "kubernetesTillerCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesTillerCPULimit"}}
"metadata": { "metadata": {
"description": "Helm Tiller CPU Limit." "description": "Helm Tiller CPU Limit."
}, },
"type": "string" "type": "string"
}, },
"kubernetesTillerMemoryLimit": { "kubernetesTillerMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesTillerMemoryLimit"}}
"metadata": { "metadata": {
"description": "Helm Tiller Memory Limit." "description": "Helm Tiller Memory Limit."
}, },
"type": "string" "type": "string"
}, },
"kubernetesTillerMaxHistory": { "kubernetesTillerMaxHistory": {
{{PopulateClassicModeDefaultValue "kubernetesTillerMaxHistory"}}
"metadata": { "metadata": {
"description": "Helm Tiller Max History to Store. '0' for no limit." "description": "Helm Tiller Max History to Store. '0' for no limit."
}, },
@ -403,119 +373,102 @@
"type": "bool" "type": "bool"
}, },
"kubernetesACIConnectorSpec": { "kubernetesACIConnectorSpec": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorSpec"}}
"metadata": { "metadata": {
"description": "The container spec for ACI Connector." "description": "The container spec for ACI Connector."
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorNodeName": { "kubernetesACIConnectorNodeName": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorNodeName"}}
"metadata": { "metadata": {
"description": "Node name for ACI Connector." "description": "Node name for ACI Connector."
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorOS": { "kubernetesACIConnectorOS": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorOS"}}
"metadata": { "metadata": {
"description": "OS for ACI Connector." "description": "OS for ACI Connector."
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorTaint": { "kubernetesACIConnectorTaint": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorTaint"}}
"metadata": { "metadata": {
"description": "Taint for ACI Connector." "description": "Taint for ACI Connector."
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorRegion": { "kubernetesACIConnectorRegion": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorRegion"}}
"metadata": { "metadata": {
"description": "Region for ACI Connector." "description": "Region for ACI Connector."
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorCPURequests": { "kubernetesACIConnectorCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorCPURequests"}}
"metadata": { "metadata": {
"description": "ACI Connector CPU Requests" "description": "ACI Connector CPU Requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorMemoryRequests": { "kubernetesACIConnectorMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorMemoryRequests"}}
"metadata": { "metadata": {
"description": "ACI Connector Memory Requests" "description": "ACI Connector Memory Requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorCPULimit": { "kubernetesACIConnectorCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorCPULimit"}}
"metadata": { "metadata": {
"description": "ACI Connector CPU Limit" "description": "ACI Connector CPU Limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesACIConnectorMemoryLimit": { "kubernetesACIConnectorMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesACIConnectorMemoryLimit"}}
"metadata": { "metadata": {
"description": "ACI Connector Memory Limit" "description": "ACI Connector Memory Limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerSpec": { "kubernetesClusterAutoscalerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerSpec"}}
"metadata": { "metadata": {
"description": "The container spec for the cluster autoscaler." "description": "The container spec for the cluster autoscaler."
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerAzureCloud": { "kubernetesClusterAutoscalerAzureCloud": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerAzureCloud"}}
"metadata": { "metadata": {
"description": "Name of the Azure cloud for the cluster autoscaler." "description": "Name of the Azure cloud for the cluster autoscaler."
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerCPULimit": { "kubernetesClusterAutoscalerCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerCPULimit"}}
"metadata": { "metadata": {
"description": "Cluster autoscaler cpu limit" "description": "Cluster autoscaler cpu limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerMemoryLimit": { "kubernetesClusterAutoscalerMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerMemoryLimit"}}
"metadata": { "metadata": {
"description": "Cluster autoscaler memory limit" "description": "Cluster autoscaler memory limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerCPURequests": { "kubernetesClusterAutoscalerCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerCPURequests"}}
"metadata": { "metadata": {
"description": "Cluster autoscaler cpu requests" "description": "Cluster autoscaler cpu requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerMemoryRequests": { "kubernetesClusterAutoscalerMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerMemoryRequests"}}
"metadata": { "metadata": {
"description": "Cluster autoscaler memory requests" "description": "Cluster autoscaler memory requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerMinNodes": { "kubernetesClusterAutoscalerMinNodes": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerMinNodes"}}
"metadata": { "metadata": {
"description": "Cluster autoscaler min nodes" "description": "Cluster autoscaler min nodes"
}, },
"type": "string" "type": "string"
}, },
"kubernetesClusterAutoscalerMaxNodes": { "kubernetesClusterAutoscalerMaxNodes": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerMaxNodes"}}
"metadata": { "metadata": {
"description": "Cluster autoscaler max nodes" "description": "Cluster autoscaler max nodes"
}, },
@ -529,7 +482,6 @@
"type": "bool" "type": "bool"
}, },
"kubernetesClusterAutoscalerUseManagedIdentity": { "kubernetesClusterAutoscalerUseManagedIdentity": {
{{PopulateClassicModeDefaultValue "kubernetesClusterAutoscalerUseManagedIdentity"}}
"metadata": { "metadata": {
"description": "Managed identity for the cluster autoscaler addon" "description": "Managed identity for the cluster autoscaler addon"
}, },
@ -549,70 +501,60 @@
} }
}, },
"kubernetesKeyVaultFlexVolumeInstallerCPURequests": { "kubernetesKeyVaultFlexVolumeInstallerCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesKeyVaultFlexVolumeInstallerCPURequests"}}
"metadata": { "metadata": {
"description": "Key Vault FlexVolume Installer CPU Requests" "description": "Key Vault FlexVolume Installer CPU Requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesKeyVaultFlexVolumeInstallerMemoryRequests": { "kubernetesKeyVaultFlexVolumeInstallerMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesKeyVaultFlexVolumeInstallerMemoryRequests"}}
"metadata": { "metadata": {
"description": "Key Vault FlexVolume Installer Memory Requests" "description": "Key Vault FlexVolume Installer Memory Requests"
}, },
"type": "string" "type": "string"
}, },
"kubernetesKeyVaultFlexVolumeInstallerCPULimit": { "kubernetesKeyVaultFlexVolumeInstallerCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesKeyVaultFlexVolumeInstallerCPULimit"}}
"metadata": { "metadata": {
"description": "Key Vault FlexVolume Installer CPU Limit" "description": "Key Vault FlexVolume Installer CPU Limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesKeyVaultFlexVolumeInstallerMemoryLimit": { "kubernetesKeyVaultFlexVolumeInstallerMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesKeyVaultFlexVolumeInstallerMemoryLimit"}}
"metadata": { "metadata": {
"description": "Key Vault FlexVolume Installer Memory Limit" "description": "Key Vault FlexVolume Installer Memory Limit"
}, },
"type": "string" "type": "string"
}, },
"kubernetesReschedulerSpec": { "kubernetesReschedulerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerSpec"}}
"metadata": { "metadata": {
"description": "The container spec for rescheduler." "description": "The container spec for rescheduler."
}, },
"type": "string" "type": "string"
}, },
"kubernetesReschedulerCPURequests": { "kubernetesReschedulerCPURequests": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerCPURequests"}}
"metadata": { "metadata": {
"description": "Rescheduler CPU Requests." "description": "Rescheduler CPU Requests."
}, },
"type": "string" "type": "string"
}, },
"kubernetesReschedulerMemoryRequests": { "kubernetesReschedulerMemoryRequests": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerMemoryRequests"}}
"metadata": { "metadata": {
"description": "Rescheduler Memory Requests." "description": "Rescheduler Memory Requests."
}, },
"type": "string" "type": "string"
}, },
"kubernetesReschedulerCPULimit": { "kubernetesReschedulerCPULimit": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerCPULimit"}}
"metadata": { "metadata": {
"description": "Rescheduler CPU Limit." "description": "Rescheduler CPU Limit."
}, },
"type": "string" "type": "string"
}, },
"kubernetesReschedulerMemoryLimit": { "kubernetesReschedulerMemoryLimit": {
{{PopulateClassicModeDefaultValue "kubernetesReschedulerMemoryLimit"}}
"metadata": { "metadata": {
"description": "Rescheduler Memory Limit." "description": "Rescheduler Memory Limit."
}, },
"type": "string" "type": "string"
}, },
"kubernetesPodInfraContainerSpec": { "kubernetesPodInfraContainerSpec": {
{{PopulateClassicModeDefaultValue "kubernetesPodInfraContainerSpec"}}
"metadata": { "metadata": {
"description": "The container spec for pod infra." "description": "The container spec for pod infra."
}, },
@ -632,14 +574,12 @@
} }
}, },
"kubernetesKubeDNSSpec": { "kubernetesKubeDNSSpec": {
{{PopulateClassicModeDefaultValue "kubernetesKubeDNSSpec"}}
"metadata": { "metadata": {
"description": "The container spec for kubedns-amd64." "description": "The container spec for kubedns-amd64."
}, },
"type": "string" "type": "string"
}, },
"kubernetesDNSMasqSpec": { "kubernetesDNSMasqSpec": {
{{PopulateClassicModeDefaultValue "kubernetesDNSMasqSpec"}}
"metadata": { "metadata": {
"description": "The container spec for kube-dnsmasq-amd64." "description": "The container spec for kube-dnsmasq-amd64."
}, },
@ -654,7 +594,6 @@
"type": "string" "type": "string"
}, },
"dockerEngineVersion": { "dockerEngineVersion": {
{{PopulateClassicModeDefaultValue "dockerEngineVersion"}}
"metadata": { "metadata": {
"description": "The docker engine version to install." "description": "The docker engine version to install."
}, },
@ -845,21 +784,18 @@
"type": "int" "type": "int"
}, },
"etcdDiskSizeGB": { "etcdDiskSizeGB": {
{{PopulateClassicModeDefaultValue "etcdDiskSizeGB"}}
"metadata": { "metadata": {
"description": "Size in GB to allocate for etcd volume" "description": "Size in GB to allocate for etcd volume"
}, },
"type": "string" "type": "string"
}, },
"etcdDownloadURLBase": { "etcdDownloadURLBase": {
{{PopulateClassicModeDefaultValue "etcdDownloadURLBase"}}
"metadata": { "metadata": {
"description": "etcd image base URL" "description": "etcd image base URL"
}, },
"type": "string" "type": "string"
}, },
"etcdVersion": { "etcdVersion": {
{{PopulateClassicModeDefaultValue "etcdVersion"}}
"metadata": { "metadata": {
"description": "etcd version" "description": "etcd version"
}, },
@ -886,7 +822,6 @@
"type": "string" "type": "string"
}, },
"jumpboxOSDiskSizeGB": { "jumpboxOSDiskSizeGB": {
{{PopulateClassicModeDefaultValue "jumpboxOSDiskSizeGB"}}
"metadata": { "metadata": {
"description": "Size in GB to allocate to the private cluster jumpbox VM OS." "description": "Size in GB to allocate to the private cluster jumpbox VM OS."
}, },

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

@ -6,23 +6,6 @@
"value": "" "value": ""
{{end}} {{end}}
} }
{{if GetClassicMode}}
,
{{if RequiresFakeAgentOutput}}
"agentFQDN": {
"type": "string",
"value": ""
},
{{end}}
"diagnosticsStorageAccountUri": {
"type": "string",
"value": ""
},
"jumpboxFQDN": {
"type": "string",
"value": ""
}
{{end}}
{{if AnyAgentUsesAvailabilitySets}} {{if AnyAgentUsesAvailabilitySets}}
, ,
"agentStorageAccountSuffix": { "agentStorageAccountSuffix": {

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

@ -149,9 +149,6 @@
}, },
"type": "string" "type": "string"
} }
{{if GetClassicMode}}
,{{template "classicparams.t" .}}
{{end}}
{{if .LinuxProfile.HasSecrets}} {{if .LinuxProfile.HasSecrets}}
{{range $vIndex, $vault := .LinuxProfile.Secrets}} {{range $vIndex, $vault := .LinuxProfile.Secrets}}
, ,

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

@ -1,203 +0,0 @@
{{if .IsStorageAccount}}
{
"apiVersion": "[variables('apiVersionStorage')]",
"copy": {
"count": "[variables('{{.Name}}StorageAccountsCount')]",
"name": "vmLoopNode"
},
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
],
"location": "[variables('location')]",
"name": "[concat(variables('storageAccountPrefixes')[mod(copyIndex(),variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(copyIndex(),variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),copyIndex(1))]",
"properties": {
"accountType": "[variables('vmSizesMap')[variables('{{.Name}}VMSize')].storageAccountType]"
},
"type": "Microsoft.Storage/storageAccounts"
},
{{end}}
{{if IsPublic .Ports}}
{
"apiVersion": "[variables('apiVersionDefault')]",
"location": "[variables('location')]",
"name": "[variables('{{.Name}}IPAddressName')]",
"properties": {
"dnsSettings": {
"domainNameLabel": "[variables('{{.Name}}EndpointDNSNamePrefix')]"
},
"publicIPAllocationMethod": "Dynamic"
},
"type": "Microsoft.Network/publicIPAddresses"
},
{
"apiVersion": "[variables('apiVersionDefault')]",
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('{{.Name}}IPAddressName'))]"
],
"location": "[variables('location')]",
"name": "[variables('{{.Name}}LbName')]",
"properties": {
"backendAddressPools": [
{
"name": "[variables('{{.Name}}LbBackendPoolName')]"
}
],
"frontendIPConfigurations": [
{
"name": "[variables('{{.Name}}LbIPConfigName')]",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('{{.Name}}IPAddressName'))]"
}
}
}
],
"inboundNatRules": [],
"loadBalancingRules": [
{{(GetLBRules .Name .Ports)}}
],
"probes": [
{{(GetProbes .Ports)}}
]
},
"type": "Microsoft.Network/loadBalancers"
},
{{end}}
{
{{if .IsManagedDisks}}
"apiVersion": "[variables('apiVersionStorageManagedDisks')]",
{{else}}
"apiVersion": "[variables('apiVersionDefault')]",
{{end}}
"dependsOn": [
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]"
{{if .IsStorageAccount}}
,"[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountPrefixes')[mod(0,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(0,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),1)]",
"[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountPrefixes')[mod(1,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(1,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),2)]",
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(2,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(2,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),3)]",
"[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountPrefixes')[mod(3,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(3,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),4)]",
"[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountPrefixes')[mod(4,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(4,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),5)]"
{{end}}
{{if not .IsCustomVNET}}
,"[variables('vnetID')]"
{{end}}
{{if IsPublic .Ports}}
,"[variables('{{.Name}}LbID')]"
{{end}}
],
"tags":
{
"creationSource" : "[concat('acsengine-', variables('{{.Name}}VMNamePrefix'), '-vmss')]"
},
"location": "[variables('location')]",
"name": "[concat(variables('{{.Name}}VMNamePrefix'), '-vmss')]",
"properties": {
"upgradePolicy": {
"mode": "Automatic"
},
"virtualMachineProfile": {
"networkProfile": {
"networkInterfaceConfigurations": [
{
"name": "nic",
"properties": {
"ipConfigurations": [
{
"name": "nicipconfig",
"properties": {
{{if IsPublic .Ports}}
"loadBalancerBackendAddressPools": [
{
"id": "[concat(variables('{{.Name}}LbID'), '/backendAddressPools/', variables('{{.Name}}LbBackendPoolName'))]"
}
],
{{end}}
"subnet": {
"id": "[variables('{{.Name}}VnetSubnetID')]"
}
}
}
],
"primary": "true"
}
}
]
},
"osProfile": {
"adminUsername": "[variables('adminUsername')]",
"computerNamePrefix": "[variables('{{.Name}}VMNamePrefix')]",
{{if IsSwarmMode}}
{{if not .IsRHEL}}
{{GetAgentSwarmModeCustomData .}}
{{end}}
{{else}}
{{GetAgentSwarmCustomData .}}
{{end}}
"linuxConfiguration": {
"disablePasswordAuthentication": "true",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]",
"path": "[variables('sshKeyPath')]"
}
]
}
}
},
"storageProfile": {
"imageReference": {
"offer": "[variables('osImageOffer')]",
"publisher": "[variables('osImagePublisher')]",
"sku": "[variables('osImageSKU')]",
"version": "latest"
},
{{GetDataDisks .}}
"osDisk": {
"caching": "ReadWrite"
,"createOption": "FromImage"
{{if .IsStorageAccount}}
,"name": "vmssosdisk"
,"vhdContainers": [
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(0,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(0,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),1), variables('apiVersionStorage') ).primaryEndpoints.blob, 'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(1,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(1,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),2), variables('apiVersionStorage')).primaryEndpoints.blob, 'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(2,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(2,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),3), variables('apiVersionStorage')).primaryEndpoints.blob, 'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(3,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(3,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),4), variables('apiVersionStorage')).primaryEndpoints.blob, 'osdisk')]",
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(4,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(4,variables('storageAccountPrefixesCount'))],variables('storageAccountBaseClassicName'),5), variables('apiVersionStorage')).primaryEndpoints.blob, 'osdisk')]"
]
{{end}}
{{if ne .OSDiskSizeGB 0}}
,"diskSizeGB": {{.OSDiskSizeGB}}
{{end}}
}
}
{{if .IsRHEL}}
,"extensionProfile": {
"extensions": [
{
"name": "configure{{.Name}}",
"properties": {
"publisher": "Microsoft.Azure.Extensions",
"settings": {
"commandToExecute": "[variables('agentCustomScript')]",
"fileUris": [
"[concat('{{ GetConfigurationScriptRootURL }}', variables('configureClusterScriptFile'))]"
]
},
"type": "CustomScript",
"typeHandlerVersion": "2.0"
}
}
]
}
{{end}}
}
},
"sku": {
"capacity": "[variables('{{.Name}}Count')]",
"name": "[variables('{{.Name}}VMSize')]",
"tier": "[variables('{{.Name}}VMSizeTier')]"
},
"type": "Microsoft.Compute/virtualMachineScaleSets"
}

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

@ -35,11 +35,7 @@
], ],
{{end}} {{end}}
"masterAvailabilitySet": "[concat(variables('orchestratorName'), '-master-availabilitySet-', variables('nameSuffix'))]", "masterAvailabilitySet": "[concat(variables('orchestratorName'), '-master-availabilitySet-', variables('nameSuffix'))]",
{{if GetClassicMode}}
"masterCount": "[parameters('masterCount')]",
{{else}}
"masterCount": {{.MasterProfile.Count}}, "masterCount": {{.MasterProfile.Count}},
{{end}}
{{if .MasterProfile.IsRHEL}} {{if .MasterProfile.IsRHEL}}
"masterCustomScript": "[concat('/bin/bash -c \"/bin/bash ',variables('configureClusterScriptFile'), ' ',variables('clusterInstallParameters'),' >> /var/log/azure/cluster-bootstrap.log 2>&1\"')]", "masterCustomScript": "[concat('/bin/bash -c \"/bin/bash ',variables('configureClusterScriptFile'), ' ',variables('clusterInstallParameters'),' >> /var/log/azure/cluster-bootstrap.log 2>&1\"')]",
{{else}} {{else}}

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

@ -243,7 +243,6 @@ const (
const ( const (
agentOutputs = "agentoutputs.t" agentOutputs = "agentoutputs.t"
agentParams = "agentparams.t" agentParams = "agentparams.t"
classicParams = "classicparams.t"
dcosAgentResourcesVMAS = "dcos/dcosagentresourcesvmas.t" dcosAgentResourcesVMAS = "dcos/dcosagentresourcesvmas.t"
dcosWindowsAgentResourcesVMAS = "dcos/dcosWindowsAgentResourcesVmas.t" dcosWindowsAgentResourcesVMAS = "dcos/dcosWindowsAgentResourcesVmas.t"
dcosAgentResourcesVMSS = "dcos/dcosagentresourcesvmss.t" dcosAgentResourcesVMSS = "dcos/dcosagentresourcesvmss.t"
@ -277,7 +276,6 @@ const (
swarmParams = "swarm/swarmparams.t" swarmParams = "swarm/swarmparams.t"
swarmAgentResourcesVMAS = "swarm/swarmagentresourcesvmas.t" swarmAgentResourcesVMAS = "swarm/swarmagentresourcesvmas.t"
swarmAgentResourcesVMSS = "swarm/swarmagentresourcesvmss.t" swarmAgentResourcesVMSS = "swarm/swarmagentresourcesvmss.t"
swarmAgentResourcesClassic = "swarm/swarmagentresourcesclassic.t"
swarmAgentVars = "swarm/swarmagentvars.t" swarmAgentVars = "swarm/swarmagentvars.t"
swarmMasterResources = "swarm/swarmmasterresources.t" swarmMasterResources = "swarm/swarmmasterresources.t"
swarmMasterVars = "swarm/swarmmastervars.t" swarmMasterVars = "swarm/swarmmastervars.t"

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

@ -25,12 +25,12 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
) )
var commonTemplateFiles = []string{agentOutputs, agentParams, classicParams, masterOutputs, iaasOutputs, masterParams, windowsParams} var commonTemplateFiles = []string{agentOutputs, agentParams, masterOutputs, iaasOutputs, masterParams, windowsParams}
var dcosTemplateFiles = []string{dcosBaseFile, dcosAgentResourcesVMAS, dcosAgentResourcesVMSS, dcosAgentVars, dcosMasterResources, dcosMasterVars, dcosParams, dcosWindowsAgentResourcesVMAS, dcosWindowsAgentResourcesVMSS} var dcosTemplateFiles = []string{dcosBaseFile, dcosAgentResourcesVMAS, dcosAgentResourcesVMSS, dcosAgentVars, dcosMasterResources, dcosMasterVars, dcosParams, dcosWindowsAgentResourcesVMAS, dcosWindowsAgentResourcesVMSS}
var dcos2TemplateFiles = []string{dcos2BaseFile, dcosAgentResourcesVMAS, dcosAgentResourcesVMSS, dcosAgentVars, dcos2MasterResources, dcos2BootstrapResources, dcos2MasterVars, dcosParams, dcosWindowsAgentResourcesVMAS, dcosWindowsAgentResourcesVMSS, dcos2BootstrapVars, dcos2BootstrapParams} var dcos2TemplateFiles = []string{dcos2BaseFile, dcosAgentResourcesVMAS, dcosAgentResourcesVMSS, dcosAgentVars, dcos2MasterResources, dcos2BootstrapResources, dcos2MasterVars, dcosParams, dcosWindowsAgentResourcesVMAS, dcosWindowsAgentResourcesVMSS, dcos2BootstrapVars, dcos2BootstrapParams}
var kubernetesTemplateFiles = []string{kubernetesBaseFile, kubernetesAgentResourcesVMAS, kubernetesAgentResourcesVMSS, kubernetesAgentVars, kubernetesMasterResources, kubernetesMasterVars, kubernetesParams, kubernetesWinAgentVars, kubernetesWinAgentVarsVMSS} var kubernetesTemplateFiles = []string{kubernetesBaseFile, kubernetesAgentResourcesVMAS, kubernetesAgentResourcesVMSS, kubernetesAgentVars, kubernetesMasterResources, kubernetesMasterVars, kubernetesParams, kubernetesWinAgentVars, kubernetesWinAgentVarsVMSS}
var swarmTemplateFiles = []string{swarmBaseFile, swarmParams, swarmAgentResourcesVMAS, swarmAgentVars, swarmAgentResourcesVMSS, swarmAgentResourcesClassic, swarmBaseFile, swarmMasterResources, swarmMasterVars, swarmWinAgentResourcesVMAS, swarmWinAgentResourcesVMSS} var swarmTemplateFiles = []string{swarmBaseFile, swarmParams, swarmAgentResourcesVMAS, swarmAgentVars, swarmAgentResourcesVMSS, swarmBaseFile, swarmMasterResources, swarmMasterVars, swarmWinAgentResourcesVMAS, swarmWinAgentResourcesVMSS}
var swarmModeTemplateFiles = []string{swarmBaseFile, swarmParams, swarmAgentResourcesVMAS, swarmAgentVars, swarmAgentResourcesVMSS, swarmAgentResourcesClassic, swarmBaseFile, swarmMasterResources, swarmMasterVars, swarmWinAgentResourcesVMAS, swarmWinAgentResourcesVMSS} var swarmModeTemplateFiles = []string{swarmBaseFile, swarmParams, swarmAgentResourcesVMAS, swarmAgentVars, swarmAgentResourcesVMSS, swarmBaseFile, swarmMasterResources, swarmMasterVars, swarmWinAgentResourcesVMAS, swarmWinAgentResourcesVMSS}
var openshiftTemplateFiles = append( var openshiftTemplateFiles = append(
kubernetesTemplateFiles, kubernetesTemplateFiles,
openshiftInfraResources, openshiftInfraResources,

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

@ -57,11 +57,6 @@ func TestExpected(t *testing.T) {
addTestCertificateProfile(containerService.Properties.CertificateProfile) addTestCertificateProfile(containerService.Properties.CertificateProfile)
} }
isClassicMode := false
if strings.Contains(tuple.APIModelFilename, "_classicmode") {
isClassicMode = true
}
// test the output container service 3 times: // test the output container service 3 times:
// 1. first time tests loaded containerService // 1. first time tests loaded containerService
// 2. second time tests generated containerService // 2. second time tests generated containerService
@ -71,7 +66,7 @@ func TestExpected(t *testing.T) {
Locale: locale, Locale: locale,
}, },
} }
templateGenerator, e3 := InitializeTemplateGenerator(ctx, isClassicMode) templateGenerator, e3 := InitializeTemplateGenerator(ctx)
if e3 != nil { if e3 != nil {
t.Error(e3.Error()) t.Error(e3.Error())
continue continue
@ -284,7 +279,7 @@ func TestTemplateOutputPresence(t *testing.T) {
}, },
} }
templateGenerator, err := InitializeTemplateGenerator(ctx, false) templateGenerator, err := InitializeTemplateGenerator(ctx)
if err != nil { if err != nil {
t.Fatalf("Failed to initialize template generator: %v", err) t.Fatalf("Failed to initialize template generator: %v", err)

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

@ -9,7 +9,7 @@ import (
"github.com/Azure/acs-engine/pkg/api/common" "github.com/Azure/acs-engine/pkg/api/common"
) )
func getParameters(cs *api.ContainerService, isClassicMode bool, generatorCode string, acsengineVersion string) (paramsMap, error) { func getParameters(cs *api.ContainerService, generatorCode string, acsengineVersion string) (paramsMap, error) {
properties := cs.Properties properties := cs.Properties
location := cs.Location location := cs.Location
parametersMap := paramsMap{} parametersMap := paramsMap{}
@ -64,9 +64,6 @@ func getParameters(cs *api.ContainerService, isClassicMode bool, generatorCode s
} }
addValue(parametersMap, "firstConsecutiveStaticIP", properties.MasterProfile.FirstConsecutiveStaticIP) addValue(parametersMap, "firstConsecutiveStaticIP", properties.MasterProfile.FirstConsecutiveStaticIP)
addValue(parametersMap, "masterVMSize", properties.MasterProfile.VMSize) addValue(parametersMap, "masterVMSize", properties.MasterProfile.VMSize)
if isClassicMode {
addValue(parametersMap, "masterCount", properties.MasterProfile.Count)
}
} }
if properties.HostedMasterProfile != nil { if properties.HostedMasterProfile != nil {
addValue(parametersMap, "masterSubnet", properties.HostedMasterProfile.Subnet) addValue(parametersMap, "masterSubnet", properties.HostedMasterProfile.Subnet)

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

@ -20,15 +20,13 @@ import (
// TemplateGenerator represents the object that performs the template generation. // TemplateGenerator represents the object that performs the template generation.
type TemplateGenerator struct { type TemplateGenerator struct {
ClassicMode bool Translator *i18n.Translator
Translator *i18n.Translator
} }
// InitializeTemplateGenerator creates a new template generator object // InitializeTemplateGenerator creates a new template generator object
func InitializeTemplateGenerator(ctx Context, classicMode bool) (*TemplateGenerator, error) { func InitializeTemplateGenerator(ctx Context) (*TemplateGenerator, error) {
t := &TemplateGenerator{ t := &TemplateGenerator{
ClassicMode: classicMode, Translator: ctx.Translator,
Translator: ctx.Translator,
} }
if err := t.verifyFiles(); err != nil { if err := t.verifyFiles(); err != nil {
@ -99,7 +97,7 @@ func (t *TemplateGenerator) GenerateTemplate(containerService *api.ContainerServ
templateRaw = b.String() templateRaw = b.String()
var parametersMap paramsMap var parametersMap paramsMap
if parametersMap, err = getParameters(containerService, t.ClassicMode, generatorCode, acsengineVersion); err != nil { if parametersMap, err = getParameters(containerService, generatorCode, acsengineVersion); err != nil {
return templateRaw, parametersRaw, certsGenerated, err return templateRaw, parametersRaw, certsGenerated, err
} }
@ -426,17 +424,13 @@ func (t *TemplateGenerator) getTemplateFuncMap(cs *api.ContainerService) templat
return agentPreprovisionExtensionParameters return agentPreprovisionExtensionParameters
}, },
"GetMasterAllowedSizes": func() string { "GetMasterAllowedSizes": func() string {
if t.ClassicMode { if cs.Properties.OrchestratorProfile.OrchestratorType == api.DCOS {
return GetClassicAllowedSizes()
} else if cs.Properties.OrchestratorProfile.OrchestratorType == api.DCOS {
return GetDCOSMasterAllowedSizes() return GetDCOSMasterAllowedSizes()
} }
return GetMasterAgentAllowedSizes() return GetMasterAgentAllowedSizes()
}, },
"GetAgentAllowedSizes": func() string { "GetAgentAllowedSizes": func() string {
if t.ClassicMode { if cs.Properties.OrchestratorProfile.IsKubernetes() || cs.Properties.OrchestratorProfile.IsOpenShift() {
return GetClassicAllowedSizes()
} else if cs.Properties.OrchestratorProfile.IsKubernetes() || cs.Properties.OrchestratorProfile.IsOpenShift() {
return GetKubernetesAgentAllowedSizes() return GetKubernetesAgentAllowedSizes()
} }
return GetMasterAgentAllowedSizes() return GetMasterAgentAllowedSizes()
@ -448,14 +442,8 @@ func (t *TemplateGenerator) getTemplateFuncMap(cs *api.ContainerService) templat
return getSwarmVersions(api.DockerCEVersion, api.DockerCEDockerComposeVersion) return getSwarmVersions(api.DockerCEVersion, api.DockerCEDockerComposeVersion)
}, },
"GetSizeMap": func() string { "GetSizeMap": func() string {
if t.ClassicMode {
return GetClassicSizeMap()
}
return GetSizeMap() return GetSizeMap()
}, },
"GetClassicMode": func() bool {
return t.ClassicMode
},
"Base64": func(s string) string { "Base64": func(s string) string {
return base64.StdEncoding.EncodeToString([]byte(s)) return base64.StdEncoding.EncodeToString([]byte(s))
}, },
@ -747,371 +735,6 @@ func (t *TemplateGenerator) getTemplateFuncMap(cs *api.ContainerService) templat
"GetMasterEtcdClientPort": func() int { "GetMasterEtcdClientPort": func() int {
return DefaultMasterEtcdClientPort return DefaultMasterEtcdClientPort
}, },
"PopulateClassicModeDefaultValue": func(attr string) string {
var val string
if !t.ClassicMode {
val = ""
} else {
k8sVersion := cs.Properties.OrchestratorProfile.OrchestratorVersion
cloudSpecConfig := getCloudSpecConfig(cs.Location)
tillerAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultTillerAddonName)
tC := getAddonContainersIndexByName(tillerAddon.Containers, DefaultTillerAddonName)
aciConnectorAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultACIConnectorAddonName)
aC := getAddonContainersIndexByName(aciConnectorAddon.Containers, DefaultACIConnectorAddonName)
clusterAutoscalerAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultClusterAutoscalerAddonName)
aS := getAddonContainersIndexByName(clusterAutoscalerAddon.Containers, DefaultClusterAutoscalerAddonName)
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)
metricsServerAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultMetricsServerAddonName)
mC := getAddonContainersIndexByName(metricsServerAddon.Containers, DefaultMetricsServerAddonName)
nvidiaDevicePluginAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, NVIDIADevicePluginAddonName)
nC := getAddonContainersIndexByName(nvidiaDevicePluginAddon.Containers, NVIDIADevicePluginAddonName)
kvFlexVolumeAddon := getAddonByName(cs.Properties.OrchestratorProfile.KubernetesConfig.Addons, DefaultKeyVaultFlexVolumeAddonName)
kC := getAddonContainersIndexByName(kvFlexVolumeAddon.Containers, DefaultKeyVaultFlexVolumeAddonName)
switch attr {
case "kubernetesHyperkubeSpec":
val = cs.Properties.OrchestratorProfile.KubernetesConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["hyperkube"]
if cs.Properties.OrchestratorProfile.KubernetesConfig.CustomHyperkubeImage != "" {
val = cs.Properties.OrchestratorProfile.KubernetesConfig.CustomHyperkubeImage
}
case "dockerEngineVersion":
val = cs.Properties.OrchestratorProfile.KubernetesConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["dockerEngineVersion"]
if cs.Properties.OrchestratorProfile.KubernetesConfig.DockerEngineVersion != "" {
val = cs.Properties.OrchestratorProfile.KubernetesConfig.DockerEngineVersion
}
case "kubernetesAddonManagerSpec":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["addonmanager"]
case "kubernetesAddonResizerSpec":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["addonresizer"]
case "kubernetesDashboardSpec":
if dC > -1 {
if dashboardAddon.Containers[dC].Image != "" {
val = dashboardAddon.Containers[dC].Image
}
} else {
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion][DefaultDashboardAddonName]
}
case "kubernetesDashboardCPURequests":
if dC > -1 {
val = dashboardAddon.Containers[dC].CPURequests
} else {
val = ""
}
case "kubernetesDashboardMemoryRequests":
if dC > -1 {
val = dashboardAddon.Containers[dC].MemoryRequests
} else {
val = ""
}
case "kubernetesDashboardCPULimit":
if dC > -1 {
val = dashboardAddon.Containers[dC].CPULimits
} else {
val = ""
}
case "kubernetesDashboardMemoryLimit":
if dC > -1 {
val = dashboardAddon.Containers[dC].MemoryLimits
} else {
val = ""
}
case "kubernetesDNSMasqSpec":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["dnsmasq"]
case "kubernetesExecHealthzSpec":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["exechealthz"]
case "kubernetesDNSSidecarSpec":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["k8s-dns-sidecar"]
case "kubernetesHeapsterSpec":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["heapster"]
case "kubernetesACIConnectorSpec":
if aC > -1 {
if aciConnectorAddon.Containers[aC].Image != "" {
val = aciConnectorAddon.Containers[aC].Image
} else {
val = cloudSpecConfig.KubernetesSpecConfig.ACIConnectorImageBase + KubeConfigs[k8sVersion][DefaultACIConnectorAddonName]
}
}
case "kubernetesACIConnectorNodeName":
if aC > -1 {
val = aciConnectorAddon.Config["nodeName"]
} else {
val = ""
}
case "kubernetesACIConnectorOS":
if aC > -1 {
val = aciConnectorAddon.Config["os"]
} else {
val = ""
}
case "kubernetesACIConnectorTaint":
if aC > -1 {
val = aciConnectorAddon.Config["taint"]
} else {
val = ""
}
case "kubernetesACIConnectorRegion":
if aC > -1 {
val = aciConnectorAddon.Config["region"]
} else {
val = ""
}
case "kubernetesACIConnectorCPURequests":
if aC > -1 {
val = aciConnectorAddon.Containers[aC].CPURequests
} else {
val = ""
}
case "kubernetesACIConnectorMemoryRequests":
if aC > -1 {
val = aciConnectorAddon.Containers[aC].MemoryRequests
} else {
val = ""
}
case "kubernetesACIConnectorCPULimit":
if aC > -1 {
val = aciConnectorAddon.Containers[aC].CPULimits
} else {
val = ""
}
case "kubernetesACIConnectorMemoryLimit":
if aC > -1 {
val = aciConnectorAddon.Containers[aC].MemoryLimits
} else {
val = ""
}
case "kubernetesClusterAutoscalerSpec":
if aS > -1 {
if clusterAutoscalerAddon.Containers[aS].Image != "" {
val = clusterAutoscalerAddon.Containers[aS].Image
} else {
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion][DefaultClusterAutoscalerAddonName]
}
}
case "kubernetesClusterAutoscalerAzureCloud":
if aS > -1 {
val = cloudSpecConfig.CloudName
} else {
val = ""
}
case "kubernetesClusterAutoscalerCPURequests":
if aS > -1 {
val = clusterAutoscalerAddon.Containers[aC].CPURequests
} else {
val = ""
}
case "kubernetesClusterAutoscalerMemoryRequests":
if aS > -1 {
val = clusterAutoscalerAddon.Containers[aC].MemoryRequests
} else {
val = ""
}
case "kubernetesClusterAutoscalerCPULimit":
if aS > -1 {
val = clusterAutoscalerAddon.Containers[aC].CPULimits
} else {
val = ""
}
case "kubernetesClusterAutoscalerMemoryLimit":
if aS > -1 {
val = clusterAutoscalerAddon.Containers[aC].MemoryLimits
} else {
val = ""
}
case "kubernetesClusterAutoscalerUseManagedIdentity":
if aS > -1 {
if cs.Properties.OrchestratorProfile.KubernetesConfig != nil && cs.Properties.OrchestratorProfile.KubernetesConfig.UseManagedIdentity {
val = strings.ToLower(strconv.FormatBool(cs.Properties.OrchestratorProfile.KubernetesConfig.UseManagedIdentity))
} else {
val = "false"
}
}
case "kubernetesKeyVaultFlexVolumeInstallerCPURequests":
if kC > -1 {
val = kvFlexVolumeAddon.Containers[kC].CPURequests
} else {
val = ""
}
case "kubernetesKeyVaultFlexVolumeInstallerMemoryRequests":
if kC > -1 {
val = kvFlexVolumeAddon.Containers[kC].MemoryRequests
} else {
val = ""
}
case "kubernetesKeyVaultFlexVolumeInstallerCPULimit":
if kC > -1 {
val = kvFlexVolumeAddon.Containers[kC].CPULimits
} else {
val = ""
}
case "kubernetesKeyVaultFlexVolumeInstallerMemoryLimit":
if kC > -1 {
val = kvFlexVolumeAddon.Containers[kC].MemoryLimits
} else {
val = ""
}
case "kubernetesTillerSpec":
if tC > -1 {
if tillerAddon.Containers[tC].Image != "" {
val = tillerAddon.Containers[tC].Image
} else {
val = cloudSpecConfig.KubernetesSpecConfig.TillerImageBase + KubeConfigs[k8sVersion][DefaultTillerAddonName]
}
}
case "kubernetesTillerCPURequests":
if tC > -1 {
val = tillerAddon.Containers[tC].CPURequests
} else {
val = ""
}
case "kubernetesTillerMemoryRequests":
if tC > -1 {
val = tillerAddon.Containers[tC].MemoryRequests
} else {
val = ""
}
case "kubernetesTillerCPULimit":
if tC > -1 {
val = tillerAddon.Containers[tC].CPULimits
} else {
val = ""
}
case "kubernetesTillerMemoryLimit":
if tC > -1 {
val = tillerAddon.Containers[tC].MemoryLimits
} else {
val = ""
}
case "kubernetesTillerMaxHistory":
if tC > -1 {
if _, ok := tillerAddon.Config["max-history"]; ok {
val = tillerAddon.Config["max-history"]
} else {
val = "0"
}
} else {
val = "0"
}
case "kubernetesMetricsServerSpec":
if mC > -1 {
if metricsServerAddon.Containers[mC].Image != "" {
val = metricsServerAddon.Containers[mC].Image
}
} else {
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion][DefaultMetricsServerAddonName]
}
case "kubernetesNVIDIADevicePluginSpec":
if nC > -1 {
if nvidiaDevicePluginAddon.Containers[nC].Image != "" {
val = nvidiaDevicePluginAddon.Containers[nC].Image
}
} else {
val = cloudSpecConfig.KubernetesSpecConfig.NVIDIAImageBase + KubeConfigs[k8sVersion][NVIDIADevicePluginAddonName]
}
case "kubernetesNVIDIADevicePluginCPURequests":
if nC > -1 {
val = nvidiaDevicePluginAddon.Containers[aC].CPURequests
} else {
val = ""
}
case "kubernetesNVIDIADevicePluginMemoryRequests":
if nC > -1 {
val = nvidiaDevicePluginAddon.Containers[aC].MemoryRequests
} else {
val = ""
}
case "kubernetesNVIDIADevicePluginCPULimit":
if nC > -1 {
val = nvidiaDevicePluginAddon.Containers[aC].CPULimits
} else {
val = ""
}
case "kubernetesNVIDIADevicePluginMemoryLimit":
if nC > -1 {
val = nvidiaDevicePluginAddon.Containers[aC].MemoryLimits
} 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":
val = cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[k8sVersion]["pause"]
case "kubeBinariesSASURL":
val = cloudSpecConfig.KubernetesSpecConfig.KubeBinariesSASURLBase + KubeConfigs[k8sVersion]["windowszip"]
case "windowsPackageSASURLBase":
val = cloudSpecConfig.KubernetesSpecConfig.WindowsPackageSASURLBase
case "kubeClusterCidr":
val = DefaultKubernetesClusterSubnet
case "kubeDNSServiceIP":
val = DefaultKubernetesDNSServiceIP
case "kubeServiceCidr":
val = DefaultKubernetesServiceCIDR
case "kubeBinariesVersion":
val = cs.Properties.OrchestratorProfile.OrchestratorVersion
case "windowsTelemetryGUID":
val = cloudSpecConfig.KubernetesSpecConfig.WindowsTelemetryGUID
case "caPrivateKey":
// The base64 encoded "NotAvailable"
val = "Tm90QXZhaWxhYmxlCg=="
case "dockerBridgeCidr":
val = DefaultDockerBridgeSubnet
case "gchighthreshold":
val = strconv.Itoa(cs.Properties.OrchestratorProfile.KubernetesConfig.GCHighThreshold)
case "gclowthreshold":
val = strconv.Itoa(cs.Properties.OrchestratorProfile.KubernetesConfig.GCLowThreshold)
case "generatorCode":
val = DefaultGeneratorCode
case "orchestratorName":
val = DefaultOrchestratorName
case "etcdImageBase":
val = cloudSpecConfig.KubernetesSpecConfig.EtcdDownloadURLBase
case "etcdVersion":
val = cs.Properties.OrchestratorProfile.KubernetesConfig.EtcdVersion
case "etcdEncryptionKey":
val = cs.Properties.OrchestratorProfile.KubernetesConfig.EtcdEncryptionKey
case "etcdDiskSizeGB":
val = cs.Properties.OrchestratorProfile.KubernetesConfig.EtcdDiskSizeGB
case "jumpboxOSDiskSizeGB":
val = strconv.Itoa(cs.Properties.OrchestratorProfile.KubernetesConfig.PrivateCluster.JumpboxProfile.OSDiskSizeGB)
default:
val = ""
}
}
return fmt.Sprintf("\"defaultValue\": \"%s\",", val)
},
"UseCloudControllerManager": func() bool { "UseCloudControllerManager": func() bool {
return cs.Properties.OrchestratorProfile.KubernetesConfig.UseCloudControllerManager != nil && *cs.Properties.OrchestratorProfile.KubernetesConfig.UseCloudControllerManager return cs.Properties.OrchestratorProfile.KubernetesConfig.UseCloudControllerManager != nil && *cs.Properties.OrchestratorProfile.KubernetesConfig.UseCloudControllerManager
}, },

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

@ -386,9 +386,6 @@ type ImageReference struct {
ResourceGroup string `json:"resourceGroup,omitempty"` ResourceGroup string `json:"resourceGroup,omitempty"`
} }
// ClassicAgentPoolProfileType represents types of classic profiles
type ClassicAgentPoolProfileType string
// ExtensionProfile represents an extension definition // ExtensionProfile represents an extension definition
type ExtensionProfile struct { type ExtensionProfile struct {
Name string `json:"name"` Name string `json:"name"`

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

@ -485,7 +485,7 @@ func (ku *Upgrader) generateUpgradeTemplate(upgradeContainerService *api.Contain
ctx := acsengine.Context{ ctx := acsengine.Context{
Translator: ku.Translator, Translator: ku.Translator,
} }
templateGenerator, err := acsengine.InitializeTemplateGenerator(ctx, false) templateGenerator, err := acsengine.InitializeTemplateGenerator(ctx)
if err != nil { if err != nil {
return nil, nil, ku.Translator.Errorf("failed to initialize template generator: %s", err.Error()) return nil, nil, ku.Translator.Errorf("failed to initialize template generator: %s", err.Error())
} }