зеркало из https://github.com/Azure/aks-engine.git
chore: deprecate support for creating new 1.16 clusters (#4256)
This commit is contained in:
Родитель
b9178286da
Коммит
6a8a5af4a6
|
@ -6,7 +6,7 @@ defaultEnv = [
|
|||
VALIDATE_CPU_LOAD: false,
|
||||
] + params
|
||||
|
||||
def k8sVersions = ["1.16", "1.17", "1.18", "1.19", "1.20", "1.21"]
|
||||
def k8sVersions = ["1.17", "1.18", "1.19", "1.20", "1.21"]
|
||||
def latestReleasedVersion = "1.20"
|
||||
def tasks = [:]
|
||||
def testConfigs = []
|
||||
|
|
|
@ -577,11 +577,6 @@ func TestExampleAPIModels(t *testing.T) {
|
|||
apiModelPath: "../examples/kubernetes-msi-userassigned/kube-vmss.json",
|
||||
setArgs: defaultSet,
|
||||
},
|
||||
{
|
||||
name: "1.16 example",
|
||||
apiModelPath: "../examples/kubernetes-releases/kubernetes1.16.json",
|
||||
setArgs: defaultSet,
|
||||
},
|
||||
{
|
||||
name: "1.17 example",
|
||||
apiModelPath: "../examples/kubernetes-releases/kubernetes1.17.json",
|
||||
|
|
|
@ -232,7 +232,7 @@ func TestGetLogsInit(t *testing.T) {
|
|||
glc: &getLogsCmd{
|
||||
linuxScriptPath: "",
|
||||
windowsScriptPath: "",
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
hasWindows: true,
|
||||
isSSHEnabled: true,
|
||||
|
@ -243,7 +243,7 @@ func TestGetLogsInit(t *testing.T) {
|
|||
glc: &getLogsCmd{
|
||||
linuxScriptPath: existingFile,
|
||||
windowsScriptPath: existingFile,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
hasWindows: true,
|
||||
isSSHEnabled: true,
|
||||
|
@ -254,7 +254,7 @@ func TestGetLogsInit(t *testing.T) {
|
|||
glc: &getLogsCmd{
|
||||
linuxScriptPath: existingFile,
|
||||
windowsScriptPath: existingFile,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
hasWindows: true,
|
||||
isSSHEnabled: false,
|
||||
|
@ -265,7 +265,7 @@ func TestGetLogsInit(t *testing.T) {
|
|||
glc: &getLogsCmd{
|
||||
linuxScriptPath: existingFile,
|
||||
windowsScriptPath: existingFile,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
hasWindows: false,
|
||||
isSSHEnabled: false,
|
||||
|
@ -276,7 +276,7 @@ func TestGetLogsInit(t *testing.T) {
|
|||
glc: &getLogsCmd{
|
||||
linuxScriptPath: missingFile,
|
||||
windowsScriptPath: existingFile,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
hasWindows: false,
|
||||
isSSHEnabled: false,
|
||||
|
@ -287,7 +287,7 @@ func TestGetLogsInit(t *testing.T) {
|
|||
glc: &getLogsCmd{
|
||||
linuxScriptPath: existingFile,
|
||||
windowsScriptPath: missingFile,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
hasWindows: false,
|
||||
isSSHEnabled: false,
|
||||
|
@ -345,7 +345,7 @@ func TestGetLogsGetClusterNodes(t *testing.T) {
|
|||
{
|
||||
glc: &getLogsCmd{
|
||||
controlPlaneOnly: false,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
isWindowsSSHEnabled: true,
|
||||
nodeList: []string{"k8s-master-22998975-0", "k8s-agentpool1-22998975-0", "windows10"},
|
||||
|
@ -356,7 +356,7 @@ func TestGetLogsGetClusterNodes(t *testing.T) {
|
|||
{
|
||||
glc: &getLogsCmd{
|
||||
controlPlaneOnly: true,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
isWindowsSSHEnabled: true,
|
||||
nodeList: []string{"k8s-master-22998975-0", "k8s-agentpool1-22998975-0", "windows10"},
|
||||
|
@ -367,7 +367,7 @@ func TestGetLogsGetClusterNodes(t *testing.T) {
|
|||
{
|
||||
glc: &getLogsCmd{
|
||||
controlPlaneOnly: false,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
isWindowsSSHEnabled: false,
|
||||
nodeList: []string{"k8s-master-22998975-0", "k8s-agentpool1-22998975-0", "windows10"},
|
||||
|
@ -378,7 +378,7 @@ func TestGetLogsGetClusterNodes(t *testing.T) {
|
|||
{
|
||||
glc: &getLogsCmd{
|
||||
controlPlaneOnly: false,
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
},
|
||||
isWindowsSSHEnabled: true,
|
||||
nodeList: []string{"k8s-master-22998975-0", "k8s-agentpool1-22998975-0", "windows10"},
|
||||
|
@ -426,7 +426,7 @@ func TestGetLogsGetClusterNodeScripts(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
glc: &getLogsCmd{
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
linuxVHDScript: linuxVHDScript,
|
||||
linuxCustomScript: linuxCustomScript,
|
||||
windowsVHDScript: windowsVHDScript,
|
||||
|
@ -443,7 +443,7 @@ func TestGetLogsGetClusterNodeScripts(t *testing.T) {
|
|||
},
|
||||
{
|
||||
glc: &getLogsCmd{
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
linuxVHDScript: linuxVHDScript,
|
||||
linuxCustomScript: linuxCustomScript,
|
||||
windowsVHDScript: windowsVHDScript,
|
||||
|
@ -460,7 +460,7 @@ func TestGetLogsGetClusterNodeScripts(t *testing.T) {
|
|||
},
|
||||
{
|
||||
glc: &getLogsCmd{
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
linuxVHDScript: linuxVHDScript,
|
||||
windowsVHDScript: windowsVHDScript,
|
||||
},
|
||||
|
@ -475,7 +475,7 @@ func TestGetLogsGetClusterNodeScripts(t *testing.T) {
|
|||
},
|
||||
{
|
||||
glc: &getLogsCmd{
|
||||
cs: api.CreateMockContainerService("test", "1.11.11", 1, 1, false),
|
||||
cs: api.CreateMockContainerService("test", "", 1, 1, false),
|
||||
linuxVHDScript: linuxVHDScript,
|
||||
windowsVHDScript: windowsVHDScript,
|
||||
},
|
||||
|
|
|
@ -587,7 +587,7 @@ func TestWriteArtifacts(t *testing.T) {
|
|||
t.Parallel()
|
||||
g := NewGomegaWithT(t)
|
||||
|
||||
cs := api.CreateMockContainerService("testcluster", "1.16.14", 3, 2, false)
|
||||
cs := api.CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
_, err := cs.SetPropertiesDefaults(api.PropertiesDefaultsParams{
|
||||
IsScale: false,
|
||||
IsUpgrade: false,
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/Azure/aks-engine/pkg/api/common"
|
||||
|
@ -150,14 +151,15 @@ func TestCreateUpgradeCommand(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestUpgradeShouldFailForSameVersion(t *testing.T) {
|
||||
versionToUse := common.RationalizeReleaseAndVersion(api.Kubernetes, "", "", false, false, false)
|
||||
setupValidVersions(map[string]bool{
|
||||
"1.10.13": true,
|
||||
versionToUse: true,
|
||||
})
|
||||
g := NewGomegaWithT(t)
|
||||
upgradeCmd := &upgradeCmd{
|
||||
resourceGroupName: "rg",
|
||||
apiModelPath: "./not/used",
|
||||
upgradeVersion: "1.10.13",
|
||||
upgradeVersion: versionToUse,
|
||||
location: "centralus",
|
||||
timeoutInMinutes: 60,
|
||||
cordonDrainTimeoutInMinutes: 60,
|
||||
|
@ -165,12 +167,12 @@ func TestUpgradeShouldFailForSameVersion(t *testing.T) {
|
|||
client: &armhelpers.MockAKSEngineClient{},
|
||||
}
|
||||
|
||||
containerServiceMock := api.CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
containerServiceMock := api.CreateMockContainerService("testcluster", versionToUse, 3, 2, false)
|
||||
containerServiceMock.Location = "centralus"
|
||||
upgradeCmd.containerService = containerServiceMock
|
||||
err := upgradeCmd.initialize()
|
||||
g.Expect(err).To(HaveOccurred())
|
||||
g.Expect(err.Error()).To(ContainSubstring("upgrading from Kubernetes version 1.10.13 to version 1.10.13 is not supported"))
|
||||
g.Expect(err.Error()).To(ContainSubstring(fmt.Sprintf("upgrading from Kubernetes version %s to version %s is not supported", versionToUse, versionToUse)))
|
||||
resetValidVersions()
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"addons": [
|
||||
{
|
||||
|
|
|
@ -7,7 +7,6 @@ This is the [NVIDIA Device Plugin](https://github.com/NVIDIA/k8s-device-plugin)
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"addons": [
|
||||
{
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorVersion": "1.16.14",
|
||||
"kubernetesConfig": {
|
||||
"enableRbac" : true,
|
||||
"enableAggregatedAPIs": true,
|
||||
|
|
|
@ -55,4 +55,3 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"addons": [
|
||||
{
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 5,
|
||||
"dnsPrefix": "",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useManagedIdentity": true,
|
||||
"userAssignedID": "aksenginetestid"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useManagedIdentity": true,
|
||||
"userAssignedID": "aksenginetestid"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useManagedIdentity": true,
|
||||
"userAssignedID": "aksenginetestid"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"kubeletConfig" : {
|
||||
"--feature-gates": "MountPropagation=true,DebugContainers=true"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useManagedIdentity": true,
|
||||
"kubeProxyMode" : "ipvs"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useCloudControllerManager": true
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.17",
|
||||
"kubernetesConfig": {
|
||||
"networkPlugin": "kubenet",
|
||||
"containerRuntime": "containerd",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.17",
|
||||
"kubernetesConfig": {
|
||||
"containerRuntime": "docker",
|
||||
"containerRuntimeConfig": {
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"enableEncryptionWithExternalKms": true,
|
||||
"keyVaultSku": "Premium"
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.17",
|
||||
"kubernetesConfig": {
|
||||
"loadBalancerSku": "Standard",
|
||||
"excludeMasterFromStandardLB": true,
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"loadBalancerSku": "Standard",
|
||||
"excludeMasterFromStandardLB": true
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"networkPlugin": "kubenet",
|
||||
"containerRuntime": "containerd"
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "",
|
||||
"vmSize": "Standard_D2_v3"
|
||||
},
|
||||
"agentPoolProfiles": [
|
||||
{
|
||||
"name": "agentpool1",
|
||||
"count": 3,
|
||||
"vmSize": "Standard_D2_v3"
|
||||
}
|
||||
],
|
||||
"linuxProfile": {
|
||||
"adminUsername": "azureuser",
|
||||
"ssh": {
|
||||
"publicKeys": [
|
||||
{
|
||||
"keyData": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useManagedIdentity": true
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useManagedIdentity": true
|
||||
}
|
||||
|
|
|
@ -15,9 +15,6 @@ Here is an [example of a Kubernetes cluster with Availability Zones support](../
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.13"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 5,
|
||||
"dnsPrefix": "",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"cloudProviderBackoff": true,
|
||||
"cloudProviderBackoffRetries": 6,
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useManagedIdentity": true
|
||||
}
|
||||
|
|
|
@ -47,14 +47,13 @@ The kubernetes-cilium deployment template enables Cilium networking and policies
|
|||
}
|
||||
```
|
||||
|
||||
> Note: To execute the `cilium` command that is running inside of the pods, you will need remove the `DenyEscalatingExec` when specifying the Admission Control Values. If running Kubernetes with the `orchestratorRelease` newer than 1.9 use `--enable-admission-plugins` instead of `--admission-control` as illustrated below:
|
||||
> Note: To execute the `cilium` command that is running inside of the pods, you will need remove the `DenyEscalatingExec` when specifying the Admission Control Values. In addition, use `--enable-admission-plugins` instead of `--admission-control` as illustrated below:
|
||||
|
||||
```json
|
||||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.10",
|
||||
"kubernetesConfig": {
|
||||
"networkPlugin": "cilium",
|
||||
"networkPolicy": "cilium",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"networkPolicy": "antrea"
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"networkPolicy": "cilium"
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.17",
|
||||
"kubernetesConfig": {
|
||||
"apiServerConfig": {
|
||||
"--service-account-api-audiences": "api,istio-ca",
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
{
|
||||
"apiVersion": "2016-09-30",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorType": "Kubernetes"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": ""
|
||||
},
|
||||
"agentPoolProfiles": [
|
||||
{
|
||||
"name": "agentpool1",
|
||||
"count": 3,
|
||||
"vmSize": "Standard_D2_v3"
|
||||
},
|
||||
{
|
||||
"name": "agentpool2",
|
||||
"count": 3,
|
||||
"vmSize": "Standard_D2_v3"
|
||||
}
|
||||
],
|
||||
"linuxProfile": {
|
||||
"adminUsername": "azureuser",
|
||||
"ssh": {
|
||||
"publicKeys": [
|
||||
{
|
||||
"keyData": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"servicePrincipalProfile": {
|
||||
"clientId": "",
|
||||
"secret": ""
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
{
|
||||
"apiVersion": "2017-01-31",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorType": "Kubernetes"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": ""
|
||||
},
|
||||
"agentPoolProfiles": [
|
||||
{
|
||||
"name": "agentpool1",
|
||||
"count": 3,
|
||||
"vmSize": "Standard_D2_v3"
|
||||
},
|
||||
{
|
||||
"name": "agentpool2",
|
||||
"count": 3,
|
||||
"vmSize": "Standard_D2_v3",
|
||||
"osType": "Windows"
|
||||
}
|
||||
],
|
||||
"windowsProfile": {
|
||||
"adminUsername": "azureuser",
|
||||
"adminPassword": "replacepassword1234$"
|
||||
},
|
||||
"linuxProfile": {
|
||||
"adminUsername": "azureuser",
|
||||
"ssh": {
|
||||
"publicKeys": [
|
||||
{
|
||||
"keyData": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"servicePrincipalProfile": {
|
||||
"clientId": "",
|
||||
"secret": ""
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
{
|
||||
"apiVersion": "2017-07-01",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorType": "Kubernetes",
|
||||
"orchestratorVersion": "1.6.11"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "",
|
||||
"vmSize": "Standard_D2_v3"
|
||||
},
|
||||
"agentPoolProfiles": [
|
||||
{
|
||||
"name": "agentpool1",
|
||||
"count": 1,
|
||||
"vmSize": "Standard_D2_v3"
|
||||
},
|
||||
{
|
||||
"name": "agentpool2",
|
||||
"count": 1,
|
||||
"vmSize": "Standard_D3_v2",
|
||||
"osType": "Windows"
|
||||
}
|
||||
],
|
||||
"linuxProfile": {
|
||||
"adminUsername": "azureuser",
|
||||
"ssh": {
|
||||
"publicKeys": [
|
||||
{
|
||||
"keyData": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"windowsProfile": {
|
||||
"adminUsername": "azureuser",
|
||||
"adminPassword": "replacepassword1234$"
|
||||
},
|
||||
"servicePrincipalProfile": {
|
||||
"clientId": "",
|
||||
"secret": ""
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.18",
|
||||
"kubernetesConfig": {
|
||||
"networkPlugin": "azure",
|
||||
"containerRuntime": "containerd",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.18",
|
||||
"kubernetesConfig": {
|
||||
"networkPlugin": "kubenet",
|
||||
"containerRuntime": "containerd",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"networkPlugin": "azure",
|
||||
"containerRuntime": "containerd",
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "",
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.18"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "",
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
"enableWinDSR": true
|
||||
},
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.19",
|
||||
"kubernetesConfig": {
|
||||
"networkPlugin": "azure",
|
||||
"useManagedIdentity": false
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "",
|
||||
|
|
|
@ -46,7 +46,6 @@ func TestLoadContainerServiceWithEmptyLocationCustomCloud(t *testing.T) {
|
|||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorType": "Kubernetes",
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"kubernetesImageBase": "msazurestackqa/",
|
||||
"useInstanceMetadata": false,
|
||||
|
@ -136,7 +135,6 @@ func TestLoadContainerServiceWithEmptyLocationCustomCloud(t *testing.T) {
|
|||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorType": "Kubernetes",
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"kubernetesImageBase": "msazurestackqa/",
|
||||
"useInstanceMetadata": false,
|
||||
|
|
|
@ -172,8 +172,8 @@ var AllKubernetesSupportedVersions = map[string]bool{
|
|||
"1.16.11": false,
|
||||
"1.16.12": false,
|
||||
"1.16.13": false,
|
||||
"1.16.14": true,
|
||||
"1.16.15": true,
|
||||
"1.16.14": false,
|
||||
"1.16.15": false,
|
||||
"1.17.0-alpha.1": false,
|
||||
"1.17.0-alpha.2": false,
|
||||
"1.17.0-alpha.3": false,
|
||||
|
@ -263,8 +263,8 @@ var AllKubernetesSupportedVersionsAzureStack = map[string]bool{
|
|||
"1.16.10": false,
|
||||
"1.16.11": false,
|
||||
"1.16.13": false,
|
||||
"1.16.14": true,
|
||||
"1.16.15": true,
|
||||
"1.16.14": false,
|
||||
"1.16.15": false,
|
||||
"1.17.4": false,
|
||||
"1.17.5": false,
|
||||
"1.17.6": false,
|
||||
|
@ -285,8 +285,8 @@ var AllKubernetesWindowsSupportedVersionsAzureStack = map[string]bool{
|
|||
"1.16.10": false,
|
||||
"1.16.11": false,
|
||||
"1.16.13": false,
|
||||
"1.16.14": true,
|
||||
"1.16.15": true,
|
||||
"1.16.14": false,
|
||||
"1.16.15": false,
|
||||
"1.17.4": false,
|
||||
"1.17.5": false,
|
||||
"1.17.6": false,
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
package common
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
@ -668,11 +671,19 @@ func Test_IsSupportedKubernetesVersion(t *testing.T) {
|
|||
}
|
||||
|
||||
func Test_IsValidMinVersion(t *testing.T) {
|
||||
orchestratorRelease := "1.16"
|
||||
defaultVersion := RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false)
|
||||
verSlice := strings.Split(defaultVersion, ".")
|
||||
minorVersionInt, err := strconv.Atoi(verSlice[1])
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error during string to int conversion")
|
||||
}
|
||||
orchestratorRelease := verSlice[0] + "." + verSlice[1]
|
||||
orchestratorReleaseNext := verSlice[0] + "." + strconv.Itoa(minorVersionInt+1)
|
||||
orchestratorReleasePrior := verSlice[0] + "." + strconv.Itoa(minorVersionInt-1)
|
||||
orchestratorVersion := ""
|
||||
|
||||
t.Run("Minimum version is valid", func(t *testing.T) {
|
||||
minVersion := "1.16.0"
|
||||
minVersion := orchestratorRelease + ".0"
|
||||
_, err := IsValidMinVersion(Kubernetes, orchestratorRelease, orchestratorVersion, minVersion)
|
||||
if err != nil {
|
||||
t.Errorf("version should be valid: %v", err)
|
||||
|
@ -680,7 +691,7 @@ func Test_IsValidMinVersion(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Minimum version is invalid", func(t *testing.T) {
|
||||
minVersion := "v1.16.0"
|
||||
minVersion := "v" + orchestratorRelease + ".0"
|
||||
_, err := IsValidMinVersion(Kubernetes, orchestratorRelease, orchestratorVersion, minVersion)
|
||||
if err == nil {
|
||||
t.Errorf("version should be invalid: %v", err)
|
||||
|
@ -688,7 +699,7 @@ func Test_IsValidMinVersion(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Kubernetes release is higher than required version", func(t *testing.T) {
|
||||
minVersion := "1.13.0"
|
||||
minVersion := orchestratorReleasePrior + ".0"
|
||||
isValidVersion, _ := IsValidMinVersion(Kubernetes, orchestratorRelease, orchestratorVersion, minVersion)
|
||||
if !isValidVersion {
|
||||
t.Errorf("minimum version should be valid")
|
||||
|
@ -696,7 +707,7 @@ func Test_IsValidMinVersion(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Kubernetes release is lower than minimum required version", func(t *testing.T) {
|
||||
minVersion := "1.17.0"
|
||||
minVersion := orchestratorReleaseNext + ".0"
|
||||
isValidVersion, _ := IsValidMinVersion(Kubernetes, orchestratorRelease, orchestratorVersion, minVersion)
|
||||
if isValidVersion {
|
||||
t.Errorf("version should be not valid")
|
||||
|
@ -704,8 +715,10 @@ func Test_IsValidMinVersion(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Kubernetes version is higher than required version", func(t *testing.T) {
|
||||
orchestratorVersion = "1.16.14"
|
||||
minVersion := "1.13.0"
|
||||
orchestratorVersion = defaultVersion
|
||||
minVersion := orchestratorReleasePrior + ".0"
|
||||
fmt.Println(orchestratorVersion)
|
||||
fmt.Println(minVersion)
|
||||
isValidVersion, _ := IsValidMinVersion(Kubernetes, "", orchestratorVersion, minVersion)
|
||||
if !isValidVersion {
|
||||
t.Errorf("minimum version should be valid")
|
||||
|
@ -713,8 +726,8 @@ func Test_IsValidMinVersion(t *testing.T) {
|
|||
})
|
||||
|
||||
t.Run("Kubernetes version is lower than minimum required version", func(t *testing.T) {
|
||||
orchestratorVersion = "1.15.2"
|
||||
minVersion := "1.15.4"
|
||||
orchestratorVersion = orchestratorRelease + ".2"
|
||||
minVersion := orchestratorRelease + ".4"
|
||||
isValidVersion, _ := IsValidMinVersion(Kubernetes, "", orchestratorVersion, minVersion)
|
||||
if isValidVersion {
|
||||
t.Errorf("version should be not valid")
|
||||
|
|
|
@ -97,11 +97,7 @@ func (cs *ContainerService) setAPIServerConfig() {
|
|||
|
||||
// RBAC configuration
|
||||
if to.Bool(o.KubernetesConfig.EnableRbac) {
|
||||
if common.IsKubernetesVersionGe(o.OrchestratorVersion, "1.7.0") {
|
||||
defaultAPIServerConfig["--authorization-mode"] = "Node,RBAC"
|
||||
} else {
|
||||
defaultAPIServerConfig["--authorization-mode"] = "RBAC"
|
||||
}
|
||||
}
|
||||
|
||||
if common.IsKubernetesVersionGe(o.OrchestratorVersion, "1.20.0-alpha.1") {
|
||||
|
@ -113,12 +109,6 @@ func (cs *ContainerService) setAPIServerConfig() {
|
|||
admissionControlKey, admissionControlValues := getDefaultAdmissionControls(cs)
|
||||
defaultAPIServerConfig[admissionControlKey] = admissionControlValues
|
||||
|
||||
// Enable VolumeSnapshotDataSource feature gate for Azure Disk CSI Driver
|
||||
// which is disabled from 1.13 to 1.16 by default
|
||||
if !common.IsKubernetesVersionGe(o.OrchestratorVersion, "1.17.0") {
|
||||
addDefaultFeatureGates(defaultAPIServerConfig, o.OrchestratorVersion, "1.13.0", "VolumeSnapshotDataSource=true")
|
||||
}
|
||||
|
||||
// If no user-configurable apiserver config values exists, use the defaults
|
||||
if o.KubernetesConfig.APIServerConfig == nil {
|
||||
o.KubernetesConfig.APIServerConfig = defaultAPIServerConfig
|
||||
|
|
|
@ -166,7 +166,7 @@ func TestAPIServerConfigHasAadProfile(t *testing.T) {
|
|||
}
|
||||
|
||||
// Test OIDC user overrides
|
||||
cs = CreateMockContainerService("testcluster", "1.7.12", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.AADProfile = &AADProfile{
|
||||
ServerAppID: "test-id",
|
||||
TenantID: "test-tenant",
|
||||
|
@ -261,16 +261,6 @@ func TestAPIServerConfigEnableRbac(t *testing.T) {
|
|||
a["--authorization-mode"])
|
||||
}
|
||||
|
||||
// Test EnableRbac = true with 1.6 cluster
|
||||
cs = CreateMockContainerService("testcluster", "1.6.11", 3, 2, false)
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.EnableRbac = to.BoolPtr(true)
|
||||
cs.setAPIServerConfig()
|
||||
a = cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--authorization-mode"] != "RBAC" {
|
||||
t.Fatalf("got unexpected '--authorization-mode' API server config value for 1.6 cluster with EnableRbac=true: %s",
|
||||
a["--authorization-mode"])
|
||||
}
|
||||
|
||||
// Test EnableRbac = false
|
||||
cs = CreateMockContainerService("testcluster", defaultTestClusterVer, 3, 2, false)
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.EnableRbac = to.BoolPtr(false)
|
||||
|
@ -280,16 +270,6 @@ func TestAPIServerConfigEnableRbac(t *testing.T) {
|
|||
t.Fatalf("got unexpected '--authorization-mode' API server config value for EnableRbac=false: %s",
|
||||
a["--authorization-mode"])
|
||||
}
|
||||
|
||||
// Test EnableRbac = false with 1.6 cluster
|
||||
cs = CreateMockContainerService("testcluster", "1.6.11", 3, 2, false)
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.EnableRbac = to.BoolPtr(false)
|
||||
cs.setAPIServerConfig()
|
||||
a = cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if _, ok := a["--authorization-mode"]; ok {
|
||||
t.Fatalf("got unexpected '--authorization-mode' API server config value for 1.6 cluster with EnableRbac=false: %s",
|
||||
a["--authorization-mode"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPIServerConfigDisableRbac(t *testing.T) {
|
||||
|
@ -305,7 +285,7 @@ func TestAPIServerConfigDisableRbac(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAPIServerServiceAccountFlags(t *testing.T) {
|
||||
cs := CreateMockContainerService("testcluster", "1.20.0-alpha.3", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "1.20", "", false, false, false), 3, 2, false)
|
||||
cs.setAPIServerConfig()
|
||||
a := cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--service-account-issuer"] != "kubernetes.default.svc" {
|
||||
|
@ -317,7 +297,7 @@ func TestAPIServerServiceAccountFlags(t *testing.T) {
|
|||
a["--service-account-signing-key-file"])
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.19.0", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "1.19", "", false, false, false), 3, 2, false)
|
||||
cs.setAPIServerConfig()
|
||||
a = cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--service-account-issuer"] != "" {
|
||||
|
@ -418,7 +398,7 @@ func TestAPIServerConfigEnableProfiling(t *testing.T) {
|
|||
|
||||
func TestAPIServerConfigRepairMalformedUpdates(t *testing.T) {
|
||||
// Test default
|
||||
cs := CreateMockContainerService("testcluster", "1.18.2", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.setAPIServerConfig()
|
||||
a := cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if _, ok := a["--repair-malformed-updates"]; ok {
|
||||
|
@ -430,7 +410,7 @@ func TestAPIServerConfigRepairMalformedUpdates(t *testing.T) {
|
|||
func TestAPIServerAuditPolicyBackCompatOverride(t *testing.T) {
|
||||
// Validate that we statically override "--audit-policy-file" values of "/etc/kubernetes/manifests/audit-policy.yaml" for back-compat
|
||||
auditPolicyKey := "--audit-policy-file"
|
||||
cs := CreateMockContainerService("testcluster", "1.10.8", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig = map[string]string{}
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig[auditPolicyKey] = "/etc/kubernetes/manifests/audit-policy.yaml"
|
||||
cs.setAPIServerConfig()
|
||||
|
@ -471,7 +451,7 @@ func TestAPIServerWeakCipherSuites(t *testing.T) {
|
|||
|
||||
func TestAPIServerCosmosEtcd(t *testing.T) {
|
||||
// Test default
|
||||
cs := CreateMockContainerService("testcluster", "1.18.2", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.setAPIServerConfig()
|
||||
a := cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--etcd-cafile"] != "/etc/kubernetes/certs/ca.crt" {
|
||||
|
@ -483,7 +463,7 @@ func TestAPIServerCosmosEtcd(t *testing.T) {
|
|||
a["--etcd-servers"])
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.18.2", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.MasterProfile.CosmosEtcd = to.BoolPtr(true)
|
||||
cs.Properties.MasterProfile.DNSPrefix = "my-cosmos"
|
||||
cs.setAPIServerConfig()
|
||||
|
@ -495,27 +475,17 @@ func TestAPIServerCosmosEtcd(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAPIServerFeatureGates(t *testing.T) {
|
||||
// Test 1.13 <= k8s <= 1.16
|
||||
cs := CreateMockContainerService("testcluster", "1.15.12", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", defaultTestClusterVer, 3, 2, false)
|
||||
cs.setAPIServerConfig()
|
||||
a := cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--feature-gates"] != "VolumeSnapshotDataSource=true" {
|
||||
t.Fatalf("got unexpected '--feature-gates' API server config value for k8s v%s: %s",
|
||||
"1.15.12", a["--feature-gates"])
|
||||
}
|
||||
|
||||
// Test k8s >= 1.17
|
||||
cs = CreateMockContainerService("testcluster", defaultTestClusterVer, 3, 2, false)
|
||||
cs.setAPIServerConfig()
|
||||
a = cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--feature-gates"] != "" {
|
||||
t.Fatalf("got unexpected '--feature-gates' API server config value for k8s v%s: %s",
|
||||
"1.17.0", a["--feature-gates"])
|
||||
defaultTestClusterVer, a["--feature-gates"])
|
||||
}
|
||||
}
|
||||
|
||||
func TestAPIServerIPv6Only(t *testing.T) {
|
||||
cs := CreateMockContainerService("testcluster", "1.18.0", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.FeatureFlags = &FeatureFlags{EnableIPv6Only: true}
|
||||
cs.setAPIServerConfig()
|
||||
|
||||
|
@ -535,23 +505,23 @@ func TestAPIServerIPv6Only(t *testing.T) {
|
|||
|
||||
func TestAPIServerAnonymousAuth(t *testing.T) {
|
||||
// Validate anonymous-auth default is false
|
||||
cs := CreateMockContainerService("testcluster", "1.15.12", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.setAPIServerConfig()
|
||||
a := cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--anonymous-auth"] != "false" {
|
||||
t.Fatalf("got unexpected '--anonymous-auth' API server config value for k8s v%s: %s",
|
||||
"1.15.12", a["--anonymous-auth"])
|
||||
t.Fatalf("got unexpected '--anonymous-auth' API server config value: %s",
|
||||
a["--anonymous-auth"])
|
||||
}
|
||||
|
||||
// Validate anonymous-auth enabled
|
||||
cs = CreateMockContainerService("testcluster", "1.15.12", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig = map[string]string{
|
||||
"--anonymous-auth": "true",
|
||||
}
|
||||
cs.setAPIServerConfig()
|
||||
a = cs.Properties.OrchestratorProfile.KubernetesConfig.APIServerConfig
|
||||
if a["--anonymous-auth"] != "true" {
|
||||
t.Fatalf("got unexpected '--anonymous-auth' API server config value for k8s v%s: %s",
|
||||
"1.15.12", a["--anonymous-auth"])
|
||||
t.Fatalf("got unexpected '--anonymous-auth' API server config value: %s",
|
||||
a["--anonymous-auth"])
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,8 +6,6 @@ package api
|
|||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/Azure/aks-engine/pkg/api/common"
|
||||
)
|
||||
|
||||
func (cs *ContainerService) setCloudControllerManagerConfig() {
|
||||
|
@ -32,11 +30,8 @@ func (cs *ContainerService) setCloudControllerManagerConfig() {
|
|||
"--v": "2",
|
||||
}
|
||||
|
||||
// Add new arguments for Azure cloud-controller-manager component.
|
||||
if common.IsKubernetesVersionGe(o.OrchestratorVersion, "1.16.0") {
|
||||
// Disable cloud-node controller
|
||||
staticCloudControllerManagerConfig["--controllers"] = "*,-cloud-node"
|
||||
}
|
||||
|
||||
// Set --cluster-name based on appropriate DNS prefix
|
||||
if cs.Properties.MasterProfile != nil {
|
||||
|
|
|
@ -5,10 +5,12 @@ package api
|
|||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/Azure/aks-engine/pkg/api/common"
|
||||
)
|
||||
|
||||
func TestCloudControllerManagerConfig(t *testing.T) {
|
||||
k8sVersion := "1.16.1"
|
||||
k8sVersion := common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, true)
|
||||
cs := CreateMockContainerService("testcluster", k8sVersion, 3, 2, false)
|
||||
cs.setCloudControllerManagerConfig()
|
||||
cm := cs.Properties.OrchestratorProfile.KubernetesConfig.CloudControllerManagerConfig
|
||||
|
@ -16,13 +18,4 @@ func TestCloudControllerManagerConfig(t *testing.T) {
|
|||
t.Fatalf("got unexpected '--controllers' Cloud Controller Manager config value for Kubernetes %s: %s",
|
||||
k8sVersion, cm["--controllers"])
|
||||
}
|
||||
|
||||
k8sVersion = "1.15.4"
|
||||
cs = CreateMockContainerService("testcluster", k8sVersion, 3, 2, false)
|
||||
cs.setCloudControllerManagerConfig()
|
||||
cm = cs.Properties.OrchestratorProfile.KubernetesConfig.CloudControllerManagerConfig
|
||||
if val, ok := cm["--controllers"]; ok {
|
||||
t.Fatalf("got unexpected '--controllers' Cloud Controller Manager config value for Kubernetes %s: %s",
|
||||
k8sVersion, val)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -171,7 +171,7 @@ func TestKubeletConfigDefaults(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.8.6", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
// TODO test all default overrides
|
||||
overrideVal := "/etc/override"
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig = map[string]string{
|
||||
|
@ -186,7 +186,7 @@ func TestKubeletConfigDefaults(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.16.0", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.setKubeletConfig(false)
|
||||
kubeletConfig = cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig
|
||||
expectedKeys := []string{
|
||||
|
@ -245,7 +245,7 @@ func getDefaultLinuxKubeletConfig(cs *ContainerService) map[string]string {
|
|||
}
|
||||
|
||||
func TestKubeletConfigAzureStackDefaults(t *testing.T) {
|
||||
cs := CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "1.16", "", false, false, false), 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false), 3, 2, false)
|
||||
cs.Properties.CustomCloudProfile = &CustomCloudProfile{}
|
||||
winProfile := &AgentPoolProfile{}
|
||||
winProfile.Count = 1
|
||||
|
@ -362,7 +362,7 @@ func TestKubeletConfigAzureStackDefaults(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.8.6", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
// TODO test all default overrides
|
||||
overrideVal := "/etc/override"
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig = map[string]string{
|
||||
|
@ -377,7 +377,7 @@ func TestKubeletConfigAzureStackDefaults(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.16.0", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false), 3, 2, false)
|
||||
cs.setKubeletConfig(false)
|
||||
kubeletConfig = cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig
|
||||
expectedKeys := []string{
|
||||
|
@ -391,7 +391,7 @@ func TestKubeletConfigAzureStackDefaults(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestKubeletConfigDefaultsRemovals(t *testing.T) {
|
||||
cs := CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "1.16", "", false, false, false), 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false), 3, 2, false)
|
||||
poolProfile := &AgentPoolProfile{}
|
||||
poolProfile.Count = 1
|
||||
poolProfile.Name = "agentpool2"
|
||||
|
@ -409,7 +409,7 @@ func TestKubeletConfigDefaultsRemovals(t *testing.T) {
|
|||
key)
|
||||
}
|
||||
}
|
||||
cs = CreateMockContainerService("testcluster", "1.16.0-beta.1", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.AgentPoolProfiles = append(cs.Properties.AgentPoolProfiles, poolProfile)
|
||||
cs.setKubeletConfig(false)
|
||||
kubeletConfig = cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig
|
||||
|
@ -549,7 +549,7 @@ func TestKubeletConfigEnableSecureKubelet(t *testing.T) {
|
|||
}
|
||||
|
||||
// Test default (EnableSecureKubelet = false) for Windows
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 1, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 1, false)
|
||||
p := GetK8sDefaultProperties(true)
|
||||
cs.Properties = p
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.EnableSecureKubelet = to.BoolPtr(false)
|
||||
|
@ -566,7 +566,7 @@ func TestKubeletConfigEnableSecureKubelet(t *testing.T) {
|
|||
}
|
||||
|
||||
// Test explicit EnableSecureKubelet = false for Windows
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 1, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 1, false)
|
||||
p = GetK8sDefaultProperties(true)
|
||||
cs.Properties = p
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.EnableSecureKubelet = to.BoolPtr(false)
|
||||
|
@ -583,7 +583,7 @@ func TestKubeletConfigEnableSecureKubelet(t *testing.T) {
|
|||
}
|
||||
|
||||
// Test EnableSecureKubelet = true for Windows
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 1, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 1, false)
|
||||
p = GetK8sDefaultProperties(true)
|
||||
cs.Properties = p
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.EnableSecureKubelet = to.BoolPtr(true)
|
||||
|
@ -712,7 +712,7 @@ func TestKubeletIPMasqAgentEnabledOrDisabled(t *testing.T) {
|
|||
|
||||
func TestEnforceNodeAllocatable(t *testing.T) {
|
||||
// Validate default
|
||||
cs := CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.setKubeletConfig(false)
|
||||
k := cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig
|
||||
if k["--enforce-node-allocatable"] != "pods" {
|
||||
|
@ -721,7 +721,7 @@ func TestEnforceNodeAllocatable(t *testing.T) {
|
|||
}
|
||||
|
||||
// Validate that --enforce-node-allocatable is overridable
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig = &KubernetesConfig{
|
||||
KubeletConfig: map[string]string{
|
||||
"--enforce-node-allocatable": "kube-reserved/system-reserved",
|
||||
|
@ -737,7 +737,7 @@ func TestEnforceNodeAllocatable(t *testing.T) {
|
|||
|
||||
func TestProtectKernelDefaults(t *testing.T) {
|
||||
// Validate default
|
||||
cs := CreateMockContainerService("testcluster", "1.12.7", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
_, err := cs.SetPropertiesDefaults(PropertiesDefaultsParams{
|
||||
IsScale: false,
|
||||
IsUpgrade: false,
|
||||
|
@ -761,7 +761,7 @@ func TestProtectKernelDefaults(t *testing.T) {
|
|||
for _, distro := range DistroValues {
|
||||
switch distro {
|
||||
case AKSUbuntu1604, AKSUbuntu1804:
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.MasterProfile.Distro = distro
|
||||
cs.Properties.AgentPoolProfiles[0].Distro = distro
|
||||
_, err = cs.SetPropertiesDefaults(PropertiesDefaultsParams{
|
||||
|
@ -785,7 +785,7 @@ func TestProtectKernelDefaults(t *testing.T) {
|
|||
|
||||
// Validate that --protect-kernel-defaults is not enabled for relevant distros
|
||||
case Ubuntu, Ubuntu1804, Ubuntu1804Gen2, ACC1604, Flatcar:
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
if distro == Flatcar {
|
||||
cs.Properties.MasterProfile.Distro = Ubuntu1804
|
||||
} else {
|
||||
|
@ -814,7 +814,7 @@ func TestProtectKernelDefaults(t *testing.T) {
|
|||
}
|
||||
|
||||
// Validate that --protect-kernel-defaults is not enabled for Windows
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.MasterProfile.Distro = AKSUbuntu1604
|
||||
cs.Properties.AgentPoolProfiles[0].OSType = Windows
|
||||
_, err = cs.SetPropertiesDefaults(PropertiesDefaultsParams{
|
||||
|
@ -840,7 +840,7 @@ func TestProtectKernelDefaults(t *testing.T) {
|
|||
for _, distro := range DistroValues {
|
||||
switch distro {
|
||||
case Ubuntu, Ubuntu1804, Ubuntu1804Gen2, AKSUbuntu1604, AKSUbuntu1804:
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.MasterProfile.Distro = "ubuntu"
|
||||
cs.Properties.AgentPoolProfiles[0].Distro = "ubuntu"
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig = &KubernetesConfig{
|
||||
|
@ -967,7 +967,7 @@ func TestKubeletConfigDefaultFeatureGates(t *testing.T) {
|
|||
}
|
||||
|
||||
// test user-overrides
|
||||
cs = CreateMockContainerService("testcluster", "1.20.0", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
k = cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig
|
||||
k["--feature-gates"] = "DynamicKubeletConfig=true,ExecProbeTimeout=true"
|
||||
cs.setKubeletConfig(false)
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
)
|
||||
|
||||
func TestSchedulerDefaultConfig(t *testing.T) {
|
||||
cs := CreateMockContainerService("testcluster", "1.9.6", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.setSchedulerConfig()
|
||||
s := cs.Properties.OrchestratorProfile.KubernetesConfig.SchedulerConfig
|
||||
for key, val := range staticSchedulerConfig {
|
||||
|
@ -26,7 +26,7 @@ func TestSchedulerDefaultConfig(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSchedulerUserConfig(t *testing.T) {
|
||||
cs := CreateMockContainerService("testcluster", "1.9.6", 3, 2, true)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, true)
|
||||
assignmentMap := map[string]string{
|
||||
"--scheduler-name": "my-custom-name",
|
||||
"--feature-gates": "APIListChunking=true,APIResponseCompression=true,Accelerators=true,AdvancedAuditing=true",
|
||||
|
@ -42,7 +42,7 @@ func TestSchedulerUserConfig(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSchedulerStaticConfig(t *testing.T) {
|
||||
cs := CreateMockContainerService("testcluster", "1.9.6", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig.SchedulerConfig = map[string]string{
|
||||
"--kubeconfig": "user-override",
|
||||
"--leader-elect": "user-override",
|
||||
|
|
|
@ -231,7 +231,7 @@ func TestAddonsIndexByName(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestAssignDefaultAddonImages(t *testing.T) {
|
||||
kubernetesVersion := "1.16.14"
|
||||
kubernetesVersion := common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false)
|
||||
k8sComponents := GetK8sComponentsByVersionMap(&KubernetesConfig{KubernetesImageBaseType: common.KubernetesImageBaseTypeMCR})[kubernetesVersion]
|
||||
customImage := "myimage"
|
||||
specConfig := AzureCloudSpecEnvMap["AzurePublicCloud"].KubernetesSpecConfig
|
||||
|
@ -3161,15 +3161,8 @@ func TestEnableAggregatedAPIs(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestCloudControllerManagerEnabled(t *testing.T) {
|
||||
// test that 1.16 defaults to false
|
||||
cs := CreateMockContainerService("testcluster", "1.16.1", 3, 2, false)
|
||||
cs.setOrchestratorDefaults(false, false)
|
||||
if cs.Properties.OrchestratorProfile.KubernetesConfig.UseCloudControllerManager == to.BoolPtr(true) {
|
||||
t.Fatal("expected UseCloudControllerManager to default to false")
|
||||
}
|
||||
|
||||
// test that 1.17 defaults to false
|
||||
cs = CreateMockContainerService("testcluster", "1.17.0", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", common.RationalizeReleaseAndVersion(Kubernetes, "1.17", "", false, false, false), 3, 2, false)
|
||||
cs.setOrchestratorDefaults(false, false)
|
||||
if cs.Properties.OrchestratorProfile.KubernetesConfig.UseCloudControllerManager == to.BoolPtr(true) {
|
||||
t.Fatal("expected UseCloudControllerManager to default to false")
|
||||
|
@ -4255,7 +4248,7 @@ func TestPreserveNodesProperties(t *testing.T) {
|
|||
|
||||
func TestUbuntu1804Flags(t *testing.T) {
|
||||
// Validate --resolv-conf is missing with 16.04 distro and present with 18.04
|
||||
cs := CreateMockContainerService("testcluster", "1.17.4", 3, 2, false)
|
||||
cs := CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.MasterProfile.Distro = AKSUbuntu1604
|
||||
cs.Properties.AgentPoolProfiles[0].Distro = AKSUbuntu1804
|
||||
cs.Properties.AgentPoolProfiles[0].OSType = Linux
|
||||
|
@ -4278,7 +4271,7 @@ func TestUbuntu1804Flags(t *testing.T) {
|
|||
ka["--resolv-conf"], "/run/systemd/resolve/resolv.conf")
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.17.4", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.MasterProfile.Distro = Ubuntu1804
|
||||
cs.Properties.AgentPoolProfiles[0].Distro = Ubuntu
|
||||
cs.Properties.AgentPoolProfiles[0].OSType = Linux
|
||||
|
@ -4301,7 +4294,7 @@ func TestUbuntu1804Flags(t *testing.T) {
|
|||
ka["--resolv-conf"])
|
||||
}
|
||||
|
||||
cs = CreateMockContainerService("testcluster", "1.10.13", 3, 2, false)
|
||||
cs = CreateMockContainerService("testcluster", "", 3, 2, false)
|
||||
cs.Properties.MasterProfile.Distro = Ubuntu
|
||||
cs.Properties.AgentPoolProfiles[0].Distro = ""
|
||||
cs.Properties.AgentPoolProfiles[0].OSType = Windows
|
||||
|
|
|
@ -53,7 +53,11 @@ func CreateMockContainerService(containerServiceName, orchestratorVersion string
|
|||
|
||||
cs.Properties.OrchestratorProfile = &OrchestratorProfile{}
|
||||
cs.Properties.OrchestratorProfile.OrchestratorType = Kubernetes
|
||||
if orchestratorVersion == "" {
|
||||
cs.Properties.OrchestratorProfile.OrchestratorVersion = common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false)
|
||||
} else {
|
||||
cs.Properties.OrchestratorProfile.OrchestratorVersion = orchestratorVersion
|
||||
}
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig = &KubernetesConfig{
|
||||
EnableSecureKubelet: to.BoolPtr(DefaultSecureKubeletEnabled),
|
||||
EnableRbac: to.BoolPtr(DefaultRBACEnabled),
|
||||
|
|
|
@ -6772,6 +6772,7 @@ func TestPropertiesIsIPMasqAgentDisabled(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGetProvisionScriptParametersCommon(t *testing.T) {
|
||||
k8sVersion := common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false)
|
||||
cases := []struct {
|
||||
name string
|
||||
cs *ContainerService
|
||||
|
@ -6780,7 +6781,7 @@ func TestGetProvisionScriptParametersCommon(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
name: "Default container service with no ARM variables",
|
||||
cs: CreateMockContainerService("testcluster", "1.16.8", 1, 3, true),
|
||||
cs: CreateMockContainerService("testcluster", k8sVersion, 1, 3, true),
|
||||
input: ProvisionScriptParametersInput{
|
||||
Location: "westus",
|
||||
ResourceGroup: "fakerg",
|
||||
|
@ -6792,11 +6793,11 @@ func TestGetProvisionScriptParametersCommon(t *testing.T) {
|
|||
KubeletPrivateKey: "fakekubeletkey",
|
||||
ClusterKeyVaultName: "",
|
||||
},
|
||||
expected: "ADMINUSER=azureuser APISERVER_PUBLIC_KEY=fakecert AUTHENTICATION_METHOD=client_secret CLOUDPROVIDER_BACKOFF=false CLOUDPROVIDER_BACKOFF_DURATION=0 CLOUDPROVIDER_BACKOFF_EXPONENT=0 CLOUDPROVIDER_BACKOFF_JITTER=0 CLOUDPROVIDER_BACKOFF_MODE= CLOUDPROVIDER_BACKOFF_RETRIES=0 CLOUDPROVIDER_RATELIMIT=false CLOUDPROVIDER_RATELIMIT_BUCKET=0 CLOUDPROVIDER_RATELIMIT_BUCKET_WRITE=0 CLOUDPROVIDER_RATELIMIT_QPS=0 CLOUDPROVIDER_RATELIMIT_QPS_WRITE=0 CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/cni-plugins/" + CNIPluginVer + "/binaries/cni-plugins-linux-amd64-" + CNIPluginVer + ".tgz CONTAINERD_DOWNLOAD_URL_BASE=https://storage.googleapis.com/cri-containerd-release/ CONTAINERD_VERSION=" + DefaultContainerdVersion + " CONTAINER_RUNTIME=docker CUSTOM_HYPERKUBE_IMAGE= ENABLE_MULTIPLE_STANDARD_LOAD_BALANCERS=false ETCD_DOWNLOAD_URL=mcr.microsoft.com/oss/etcd-io/ ETCD_VERSION=" + DefaultEtcdVersion + " EXCLUDE_MASTER_FROM_STANDARD_LB=false HYPERKUBE_URL=hyperkube-amd64:v1.16.8 IDENTITY_SYSTEM=azure_ad IS_IPV6_ENABLED=false KMS_PROVIDER_VAULT_NAME= KUBELET_PRIVATE_KEY=fakekubeletkey KUBERNETES_VERSION=1.16.8 KUBE_BINARY_URL= LOAD_BALANCER_DISABLE_OUTBOUND_SNAT=false LOAD_BALANCER_SKU=Basic LOCATION=westus MAXIMUM_LOADBALANCER_RULE_COUNT=0 MOBY_VERSION=" + DefaultMobyVersion + " MS_APT_REPO=" + DefaultMicrosoftAptRepositoryURL + " NETWORK_API_VERSION=2018-08-01 NETWORK_MODE= NETWORK_PLUGIN=kubenet NETWORK_POLICY= NETWORK_SECURITY_GROUP=" + common.LegacyControlPlaneVMPrefix + "-22998975-nsg PRIMARY_AVAILABILITY_SET=agentpool1-availabilitySet-22998975 PRIMARY_SCALE_SET= RESOURCE_GROUP=fakerg ROUTE_TABLE=" + common.LegacyControlPlaneVMPrefix + "-22998975-routetable SERVICE_PRINCIPAL_CLIENT_ID=fakeclientID SERVICE_PRINCIPAL_CLIENT_SECRET=fakeclientSecret SUBNET=k8s-subnet SUBSCRIPTION_ID=fakesubID TAGS= TENANT_ID=faketenantID USE_INSTANCE_METADATA=false USE_MANAGED_IDENTITY_EXTENSION=false VIRTUAL_NETWORK=k8s-vnet-22998975 VIRTUAL_NETWORK_RESOURCE_GROUP= VM_TYPE=standard VNET_CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/azure-cni/" + AzureCniPluginVerLinux + "/binaries/azure-vnet-cni-linux-amd64-" + AzureCniPluginVerLinux + ".tgz ",
|
||||
expected: "ADMINUSER=azureuser APISERVER_PUBLIC_KEY=fakecert AUTHENTICATION_METHOD=client_secret CLOUDPROVIDER_BACKOFF=false CLOUDPROVIDER_BACKOFF_DURATION=0 CLOUDPROVIDER_BACKOFF_EXPONENT=0 CLOUDPROVIDER_BACKOFF_JITTER=0 CLOUDPROVIDER_BACKOFF_MODE= CLOUDPROVIDER_BACKOFF_RETRIES=0 CLOUDPROVIDER_RATELIMIT=false CLOUDPROVIDER_RATELIMIT_BUCKET=0 CLOUDPROVIDER_RATELIMIT_BUCKET_WRITE=0 CLOUDPROVIDER_RATELIMIT_QPS=0 CLOUDPROVIDER_RATELIMIT_QPS_WRITE=0 CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/cni-plugins/" + CNIPluginVer + "/binaries/cni-plugins-linux-amd64-" + CNIPluginVer + ".tgz CONTAINERD_DOWNLOAD_URL_BASE=https://storage.googleapis.com/cri-containerd-release/ CONTAINERD_VERSION=" + DefaultContainerdVersion + " CONTAINER_RUNTIME=docker CUSTOM_HYPERKUBE_IMAGE= ENABLE_MULTIPLE_STANDARD_LOAD_BALANCERS=false ETCD_DOWNLOAD_URL=mcr.microsoft.com/oss/etcd-io/ ETCD_VERSION=" + DefaultEtcdVersion + " EXCLUDE_MASTER_FROM_STANDARD_LB=false HYPERKUBE_URL= IDENTITY_SYSTEM=azure_ad IS_IPV6_ENABLED=false KMS_PROVIDER_VAULT_NAME= KUBELET_PRIVATE_KEY=fakekubeletkey KUBERNETES_VERSION=" + k8sVersion + " KUBE_BINARY_URL= LOAD_BALANCER_DISABLE_OUTBOUND_SNAT=false LOAD_BALANCER_SKU=Basic LOCATION=westus MAXIMUM_LOADBALANCER_RULE_COUNT=0 MOBY_VERSION=" + DefaultMobyVersion + " MS_APT_REPO=" + DefaultMicrosoftAptRepositoryURL + " NETWORK_API_VERSION=2018-08-01 NETWORK_MODE= NETWORK_PLUGIN=kubenet NETWORK_POLICY= NETWORK_SECURITY_GROUP=" + common.LegacyControlPlaneVMPrefix + "-22998975-nsg PRIMARY_AVAILABILITY_SET=agentpool1-availabilitySet-22998975 PRIMARY_SCALE_SET= RESOURCE_GROUP=fakerg ROUTE_TABLE=" + common.LegacyControlPlaneVMPrefix + "-22998975-routetable SERVICE_PRINCIPAL_CLIENT_ID=fakeclientID SERVICE_PRINCIPAL_CLIENT_SECRET=fakeclientSecret SUBNET=k8s-subnet SUBSCRIPTION_ID=fakesubID TAGS= TENANT_ID=faketenantID USE_INSTANCE_METADATA=false USE_MANAGED_IDENTITY_EXTENSION=false VIRTUAL_NETWORK=k8s-vnet-22998975 VIRTUAL_NETWORK_RESOURCE_GROUP= VM_TYPE=standard VNET_CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/azure-cni/" + AzureCniPluginVerLinux + "/binaries/azure-vnet-cni-linux-amd64-" + AzureCniPluginVerLinux + ".tgz ",
|
||||
},
|
||||
{
|
||||
name: "With ARM variables",
|
||||
cs: CreateMockContainerService("testcluster", "1.16.8", 1, 3, true),
|
||||
cs: CreateMockContainerService("testcluster", k8sVersion, 1, 3, true),
|
||||
input: ProvisionScriptParametersInput{
|
||||
Location: common.WrapAsARMVariable("location"),
|
||||
ResourceGroup: common.WrapAsARMVariable("resourceGroup"),
|
||||
|
@ -6808,7 +6809,7 @@ func TestGetProvisionScriptParametersCommon(t *testing.T) {
|
|||
KubeletPrivateKey: common.WrapAsParameter("clientPrivateKey"),
|
||||
ClusterKeyVaultName: common.WrapAsARMVariable("clusterKeyvaultName"),
|
||||
},
|
||||
expected: "ADMINUSER=azureuser APISERVER_PUBLIC_KEY=',parameters('apiServerCertificate'),' AUTHENTICATION_METHOD=client_secret CLOUDPROVIDER_BACKOFF=false CLOUDPROVIDER_BACKOFF_DURATION=0 CLOUDPROVIDER_BACKOFF_EXPONENT=0 CLOUDPROVIDER_BACKOFF_JITTER=0 CLOUDPROVIDER_BACKOFF_MODE= CLOUDPROVIDER_BACKOFF_RETRIES=0 CLOUDPROVIDER_RATELIMIT=false CLOUDPROVIDER_RATELIMIT_BUCKET=0 CLOUDPROVIDER_RATELIMIT_BUCKET_WRITE=0 CLOUDPROVIDER_RATELIMIT_QPS=0 CLOUDPROVIDER_RATELIMIT_QPS_WRITE=0 CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/cni-plugins/" + CNIPluginVer + "/binaries/cni-plugins-linux-amd64-" + CNIPluginVer + ".tgz CONTAINERD_DOWNLOAD_URL_BASE=https://storage.googleapis.com/cri-containerd-release/ CONTAINERD_VERSION=" + DefaultContainerdVersion + " CONTAINER_RUNTIME=docker CUSTOM_HYPERKUBE_IMAGE= ENABLE_MULTIPLE_STANDARD_LOAD_BALANCERS=false ETCD_DOWNLOAD_URL=mcr.microsoft.com/oss/etcd-io/ ETCD_VERSION=" + DefaultEtcdVersion + " EXCLUDE_MASTER_FROM_STANDARD_LB=false HYPERKUBE_URL=hyperkube-amd64:v1.16.8 IDENTITY_SYSTEM=azure_ad IS_IPV6_ENABLED=false KMS_PROVIDER_VAULT_NAME=',variables('clusterKeyvaultName'),' KUBELET_PRIVATE_KEY=',parameters('clientPrivateKey'),' KUBERNETES_VERSION=1.16.8 KUBE_BINARY_URL= LOAD_BALANCER_DISABLE_OUTBOUND_SNAT=false LOAD_BALANCER_SKU=Basic LOCATION=',variables('location'),' MAXIMUM_LOADBALANCER_RULE_COUNT=0 MOBY_VERSION=" + DefaultMobyVersion + " MS_APT_REPO=" + DefaultMicrosoftAptRepositoryURL + " NETWORK_API_VERSION=2018-08-01 NETWORK_MODE= NETWORK_PLUGIN=kubenet NETWORK_POLICY= NETWORK_SECURITY_GROUP=" + common.LegacyControlPlaneVMPrefix + "-22998975-nsg PRIMARY_AVAILABILITY_SET=agentpool1-availabilitySet-22998975 PRIMARY_SCALE_SET= RESOURCE_GROUP=',variables('resourceGroup'),' ROUTE_TABLE=" + common.LegacyControlPlaneVMPrefix + "-22998975-routetable SERVICE_PRINCIPAL_CLIENT_ID=',variables('servicePrincipalClientId'),' SERVICE_PRINCIPAL_CLIENT_SECRET=',variables('singleQuote'),'',variables('servicePrincipalClientSecret'),'',variables('singleQuote'),' SUBNET=k8s-subnet SUBSCRIPTION_ID=',variables('subscriptionId'),' TAGS= TENANT_ID=',variables('tenantID'),' USE_INSTANCE_METADATA=false USE_MANAGED_IDENTITY_EXTENSION=false VIRTUAL_NETWORK=k8s-vnet-22998975 VIRTUAL_NETWORK_RESOURCE_GROUP= VM_TYPE=standard VNET_CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/azure-cni/" + AzureCniPluginVerLinux + "/binaries/azure-vnet-cni-linux-amd64-" + AzureCniPluginVerLinux + ".tgz ",
|
||||
expected: "ADMINUSER=azureuser APISERVER_PUBLIC_KEY=',parameters('apiServerCertificate'),' AUTHENTICATION_METHOD=client_secret CLOUDPROVIDER_BACKOFF=false CLOUDPROVIDER_BACKOFF_DURATION=0 CLOUDPROVIDER_BACKOFF_EXPONENT=0 CLOUDPROVIDER_BACKOFF_JITTER=0 CLOUDPROVIDER_BACKOFF_MODE= CLOUDPROVIDER_BACKOFF_RETRIES=0 CLOUDPROVIDER_RATELIMIT=false CLOUDPROVIDER_RATELIMIT_BUCKET=0 CLOUDPROVIDER_RATELIMIT_BUCKET_WRITE=0 CLOUDPROVIDER_RATELIMIT_QPS=0 CLOUDPROVIDER_RATELIMIT_QPS_WRITE=0 CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/cni-plugins/" + CNIPluginVer + "/binaries/cni-plugins-linux-amd64-" + CNIPluginVer + ".tgz CONTAINERD_DOWNLOAD_URL_BASE=https://storage.googleapis.com/cri-containerd-release/ CONTAINERD_VERSION=" + DefaultContainerdVersion + " CONTAINER_RUNTIME=docker CUSTOM_HYPERKUBE_IMAGE= ENABLE_MULTIPLE_STANDARD_LOAD_BALANCERS=false ETCD_DOWNLOAD_URL=mcr.microsoft.com/oss/etcd-io/ ETCD_VERSION=" + DefaultEtcdVersion + " EXCLUDE_MASTER_FROM_STANDARD_LB=false HYPERKUBE_URL= IDENTITY_SYSTEM=azure_ad IS_IPV6_ENABLED=false KMS_PROVIDER_VAULT_NAME=',variables('clusterKeyvaultName'),' KUBELET_PRIVATE_KEY=',parameters('clientPrivateKey'),' KUBERNETES_VERSION=" + k8sVersion + " KUBE_BINARY_URL= LOAD_BALANCER_DISABLE_OUTBOUND_SNAT=false LOAD_BALANCER_SKU=Basic LOCATION=',variables('location'),' MAXIMUM_LOADBALANCER_RULE_COUNT=0 MOBY_VERSION=" + DefaultMobyVersion + " MS_APT_REPO=" + DefaultMicrosoftAptRepositoryURL + " NETWORK_API_VERSION=2018-08-01 NETWORK_MODE= NETWORK_PLUGIN=kubenet NETWORK_POLICY= NETWORK_SECURITY_GROUP=" + common.LegacyControlPlaneVMPrefix + "-22998975-nsg PRIMARY_AVAILABILITY_SET=agentpool1-availabilitySet-22998975 PRIMARY_SCALE_SET= RESOURCE_GROUP=',variables('resourceGroup'),' ROUTE_TABLE=" + common.LegacyControlPlaneVMPrefix + "-22998975-routetable SERVICE_PRINCIPAL_CLIENT_ID=',variables('servicePrincipalClientId'),' SERVICE_PRINCIPAL_CLIENT_SECRET=',variables('singleQuote'),'',variables('servicePrincipalClientSecret'),'',variables('singleQuote'),' SUBNET=k8s-subnet SUBSCRIPTION_ID=',variables('subscriptionId'),' TAGS= TENANT_ID=',variables('tenantID'),' USE_INSTANCE_METADATA=false USE_MANAGED_IDENTITY_EXTENSION=false VIRTUAL_NETWORK=k8s-vnet-22998975 VIRTUAL_NETWORK_RESOURCE_GROUP= VM_TYPE=standard VNET_CNI_PLUGINS_URL=https://kubernetesartifacts.azureedge.net/azure-cni/" + AzureCniPluginVerLinux + "/binaries/azure-vnet-cni-linux-amd64-" + AzureCniPluginVerLinux + ".tgz ",
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -229,10 +229,6 @@ func (a *Properties) ValidateOrchestratorProfile(isUpdate bool) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
minVersion, err := semver.Make("1.7.0")
|
||||
if err != nil {
|
||||
return errors.New("could not validate version")
|
||||
}
|
||||
|
||||
if o.KubernetesConfig.EnableAggregatedAPIs {
|
||||
if !o.KubernetesConfig.IsRBACEnabled() {
|
||||
|
@ -241,10 +237,6 @@ func (a *Properties) ValidateOrchestratorProfile(isUpdate bool) error {
|
|||
}
|
||||
|
||||
if to.Bool(o.KubernetesConfig.EnableDataEncryptionAtRest) {
|
||||
if sv.LT(minVersion) {
|
||||
return errors.Errorf("enableDataEncryptionAtRest is only available in Kubernetes version %s or greater; unable to validate for Kubernetes version %s",
|
||||
minVersion.String(), o.OrchestratorVersion)
|
||||
}
|
||||
if o.KubernetesConfig.EtcdEncryptionKey != "" {
|
||||
_, err = base64.StdEncoding.DecodeString(o.KubernetesConfig.EtcdEncryptionKey)
|
||||
if err != nil {
|
||||
|
@ -254,30 +246,11 @@ func (a *Properties) ValidateOrchestratorProfile(isUpdate bool) error {
|
|||
}
|
||||
|
||||
if to.Bool(o.KubernetesConfig.EnableEncryptionWithExternalKms) {
|
||||
minVersion, err := semver.Make("1.10.0")
|
||||
if err != nil {
|
||||
return errors.Errorf("could not validate version")
|
||||
}
|
||||
if sv.LT(minVersion) {
|
||||
return errors.Errorf("enableEncryptionWithExternalKms is only available in Kubernetes version %s or greater; unable to validate for Kubernetes version %s",
|
||||
minVersion.String(), o.OrchestratorVersion)
|
||||
}
|
||||
if to.Bool(a.OrchestratorProfile.KubernetesConfig.UseManagedIdentity) && a.OrchestratorProfile.KubernetesConfig.UserAssignedID == "" {
|
||||
log.Warnf("Clusters with enableEncryptionWithExternalKms=true and system-assigned identity are not upgradable! You will not be able to upgrade your cluster using `aks-engine upgrade`")
|
||||
}
|
||||
}
|
||||
|
||||
if o.KubernetesConfig.EnableRbac != nil && !o.KubernetesConfig.IsRBACEnabled() {
|
||||
minVersionNotAllowed, err := semver.Make("1.15.0")
|
||||
if err != nil {
|
||||
return errors.Errorf("could not validate version")
|
||||
}
|
||||
if !sv.LT(minVersionNotAllowed) {
|
||||
return errors.Errorf("RBAC support is required for Kubernetes version %s or greater; unable to build Kubernetes v%s cluster with enableRbac=false",
|
||||
minVersionNotAllowed.String(), o.OrchestratorVersion)
|
||||
}
|
||||
}
|
||||
|
||||
if to.Bool(o.KubernetesConfig.EnablePodSecurityPolicy) {
|
||||
log.Warnf("EnablePodSecurityPolicy is deprecated in favor of the addon pod-security-policy.")
|
||||
if !o.KubernetesConfig.IsRBACEnabled() {
|
||||
|
@ -295,14 +268,6 @@ func (a *Properties) ValidateOrchestratorProfile(isUpdate bool) error {
|
|||
}
|
||||
|
||||
if o.KubernetesConfig.LoadBalancerSku == StandardLoadBalancerSku {
|
||||
minVersion, err := semver.Make("1.11.0")
|
||||
if err != nil {
|
||||
return errors.Errorf("could not validate version")
|
||||
}
|
||||
if sv.LT(minVersion) {
|
||||
return errors.Errorf("loadBalancerSku is only available in Kubernetes version %s or greater; unable to validate for Kubernetes version %s",
|
||||
minVersion.String(), o.OrchestratorVersion)
|
||||
}
|
||||
if !to.Bool(a.OrchestratorProfile.KubernetesConfig.ExcludeMasterFromStandardLB) {
|
||||
return errors.Errorf("standard loadBalancerSku should exclude master nodes. Please set KubernetesConfig \"ExcludeMasterFromStandardLB\" to \"true\"")
|
||||
}
|
||||
|
@ -663,7 +628,6 @@ func (a *Properties) validateLinuxProfile() error {
|
|||
func (a *Properties) validateAddons(isUpdate bool) error {
|
||||
if a.OrchestratorProfile.KubernetesConfig != nil && a.OrchestratorProfile.KubernetesConfig.Addons != nil {
|
||||
var isAvailabilitySets bool
|
||||
var hasNSeriesSKU bool
|
||||
var kubeDNSEnabled bool
|
||||
var corednsEnabled bool
|
||||
var keyvaultFlexvolumeEnabled, csiSecretsStoreEnabled bool
|
||||
|
@ -672,10 +636,6 @@ func (a *Properties) validateAddons(isUpdate bool) error {
|
|||
if agentPool.IsAvailabilitySets() {
|
||||
isAvailabilitySets = true
|
||||
}
|
||||
|
||||
if agentPool.IsNSeriesSKU() {
|
||||
hasNSeriesSKU = true
|
||||
}
|
||||
}
|
||||
for _, addon := range a.OrchestratorProfile.KubernetesConfig.Addons {
|
||||
if addon.Data != "" {
|
||||
|
@ -727,14 +687,6 @@ func (a *Properties) validateAddons(isUpdate bool) error {
|
|||
}
|
||||
}
|
||||
}
|
||||
case "nvidia-device-plugin":
|
||||
isValidVersion, err := common.IsValidMinVersion(a.OrchestratorProfile.OrchestratorType, a.OrchestratorProfile.OrchestratorRelease, a.OrchestratorProfile.OrchestratorVersion, "1.10.0")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if hasNSeriesSKU && !isValidVersion {
|
||||
return errors.New("NVIDIA Device Plugin add-on can only be used Kubernetes 1.10 or above. Please specify \"orchestratorRelease\": \"1.10\"")
|
||||
}
|
||||
case "aad":
|
||||
if !a.HasAADAdminGroupID() {
|
||||
return errors.New("aad addon can't be enabled without a valid aadProfile w/ adminGroupID")
|
||||
|
@ -801,14 +753,6 @@ func (a *Properties) validateAddons(isUpdate bool) error {
|
|||
} else {
|
||||
return errors.Errorf("%s addon is deprecated for new clusters", common.FlannelAddonName)
|
||||
}
|
||||
case "azure-policy":
|
||||
isValidVersion, err := common.IsValidMinVersion(a.OrchestratorProfile.OrchestratorType, a.OrchestratorProfile.OrchestratorRelease, a.OrchestratorProfile.OrchestratorVersion, "1.14.0")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !isValidVersion {
|
||||
return errors.New("Azure Policy add-on can only be used with Kubernetes v1.14 and above. Please specify a compatible version")
|
||||
}
|
||||
case common.KubeDNSAddonName:
|
||||
kubeDNSEnabled = true
|
||||
case common.CoreDNSAddonName:
|
||||
|
|
|
@ -83,7 +83,7 @@ func Test_OrchestratorProfile_Validate(t *testing.T) {
|
|||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EnableAggregatedAPIs: true,
|
||||
EnableRbac: &falseVal,
|
||||
|
@ -92,35 +92,11 @@ func Test_OrchestratorProfile_Validate(t *testing.T) {
|
|||
},
|
||||
expectedError: "enableAggregatedAPIs requires the enableRbac feature as a prerequisite",
|
||||
},
|
||||
"should error when KubernetesConfig has enableRBAC disabled for >= 1.15": {
|
||||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: common.GetLatestPatchVersion("1.15", common.GetAllSupportedKubernetesVersions(false, false, false)),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EnableRbac: &falseVal,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedError: fmt.Sprintf("RBAC support is required for Kubernetes version 1.15.0 or greater; unable to build Kubernetes v%s cluster with enableRbac=false", common.GetLatestPatchVersion("1.15", common.GetAllSupportedKubernetesVersions(false, false, false))),
|
||||
},
|
||||
"should error when KubernetesConfig has enableDataEncryptionAtRest enabled with invalid version": {
|
||||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.6.9",
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EnableDataEncryptionAtRest: &trueVal,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedError: "enableDataEncryptionAtRest is only available in Kubernetes version 1.7.0 or greater; unable to validate for Kubernetes version 1.6.9",
|
||||
},
|
||||
"should error when KubernetesConfig has enableDataEncryptionAtRest enabled with invalid encryption key": {
|
||||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EnableDataEncryptionAtRest: &trueVal,
|
||||
EtcdEncryptionKey: "fakeEncryptionKey",
|
||||
|
@ -129,35 +105,11 @@ func Test_OrchestratorProfile_Validate(t *testing.T) {
|
|||
},
|
||||
expectedError: "etcdEncryptionKey must be base64 encoded. Please provide a valid base64 encoded value or leave the etcdEncryptionKey empty to auto-generate the value",
|
||||
},
|
||||
"should error when KubernetesConfig has enableEncryptionWithExternalKms enabled with invalid version": {
|
||||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.6.9",
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EnableEncryptionWithExternalKms: &trueVal,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedError: "enableEncryptionWithExternalKms is only available in Kubernetes version 1.10.0 or greater; unable to validate for Kubernetes version 1.6.9",
|
||||
},
|
||||
"should error when KubernetesConfig has Standard loadBalancerSku with invalid version": {
|
||||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.6.9",
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
LoadBalancerSku: StandardLoadBalancerSku,
|
||||
},
|
||||
},
|
||||
},
|
||||
expectedError: "loadBalancerSku is only available in Kubernetes version 1.11.0 or greater; unable to validate for Kubernetes version 1.6.9",
|
||||
},
|
||||
"should error when KubernetesConfig has Basic loadBalancerSku with loadBalancerOutboundIPs config": {
|
||||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.18.15",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
LoadBalancerSku: BasicLoadBalancerSku,
|
||||
ExcludeMasterFromStandardLB: to.BoolPtr(true),
|
||||
|
@ -171,7 +123,7 @@ func Test_OrchestratorProfile_Validate(t *testing.T) {
|
|||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.18.15",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
LoadBalancerOutboundIPs: to.IntPtr(17),
|
||||
},
|
||||
|
@ -183,7 +135,7 @@ func Test_OrchestratorProfile_Validate(t *testing.T) {
|
|||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EnablePodSecurityPolicy: &trueVal,
|
||||
},
|
||||
|
@ -220,7 +172,7 @@ func Test_OrchestratorProfile_Validate(t *testing.T) {
|
|||
properties: &Properties{
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: "Kubernetes",
|
||||
OrchestratorVersion: "v1.16.14",
|
||||
OrchestratorVersion: "v" + common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -2335,20 +2287,6 @@ func Test_Properties_ValidateAddons(t *testing.T) {
|
|||
)
|
||||
}
|
||||
|
||||
p.OrchestratorProfile.OrchestratorRelease = "1.12"
|
||||
if err := p.validateAddons(false); err == nil {
|
||||
t.Errorf(
|
||||
"should error on azure-policy with k8s < 1.14",
|
||||
)
|
||||
}
|
||||
|
||||
p.OrchestratorProfile.OrchestratorRelease = "1.18"
|
||||
if err := p.validateAddons(false); err != nil {
|
||||
t.Errorf(
|
||||
"should not error on azure-policy with k8s >= 1.14",
|
||||
)
|
||||
}
|
||||
|
||||
p.OrchestratorProfile.KubernetesConfig.UseManagedIdentity = to.BoolPtr(true)
|
||||
if err := p.validateAddons(false); err != nil {
|
||||
t.Errorf(
|
||||
|
@ -2524,32 +2462,6 @@ func Test_Properties_ValidateAddons(t *testing.T) {
|
|||
)
|
||||
}
|
||||
|
||||
p.AgentPoolProfiles = []*AgentPoolProfile{
|
||||
{
|
||||
VMSize: "Standard_NC6",
|
||||
},
|
||||
}
|
||||
p.OrchestratorProfile.KubernetesConfig = &KubernetesConfig{
|
||||
Addons: []KubernetesAddon{
|
||||
{
|
||||
Name: "nvidia-device-plugin",
|
||||
Enabled: to.BoolPtr(true),
|
||||
},
|
||||
},
|
||||
}
|
||||
p.OrchestratorProfile.OrchestratorRelease = "1.9"
|
||||
if err := p.validateAddons(false); err == nil {
|
||||
t.Errorf(
|
||||
"should error on nvidia-device-plugin with k8s < 1.10",
|
||||
)
|
||||
}
|
||||
|
||||
p.OrchestratorProfile.OrchestratorRelease = "1.16"
|
||||
if err := p.validateAddons(false); err != nil {
|
||||
t.Errorf(
|
||||
"should not error on nvidia-device-plugin with k8s >= 1.12",
|
||||
)
|
||||
}
|
||||
p.OrchestratorProfile.KubernetesConfig = &KubernetesConfig{
|
||||
Addons: []KubernetesAddon{
|
||||
{
|
||||
|
@ -3073,7 +2985,7 @@ func TestValidateImageNameAndGroup(t *testing.T) {
|
|||
func TestProperties_ValidateManagedIdentity(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
orchestratorRelease string
|
||||
orchestratorVersion string
|
||||
useManagedIdentity bool
|
||||
userAssignedID string
|
||||
masterProfile MasterProfile
|
||||
|
@ -3082,7 +2994,7 @@ func TestProperties_ValidateManagedIdentity(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
name: "use managed identity with master vmas",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
useManagedIdentity: true,
|
||||
masterProfile: MasterProfile{
|
||||
DNSPrefix: "dummy",
|
||||
|
@ -3098,7 +3010,7 @@ func TestProperties_ValidateManagedIdentity(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "use master VMSS with empty user assigned ID",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
useManagedIdentity: true,
|
||||
masterProfile: MasterProfile{
|
||||
DNSPrefix: "dummy",
|
||||
|
@ -3124,7 +3036,7 @@ func TestProperties_ValidateManagedIdentity(t *testing.T) {
|
|||
cs.Properties.MasterProfile = &test.masterProfile
|
||||
cs.Properties.MasterProfile.VMSize = "Standard_DS2_v2"
|
||||
cs.Properties.OrchestratorProfile = &OrchestratorProfile{
|
||||
OrchestratorRelease: test.orchestratorRelease,
|
||||
OrchestratorVersion: test.orchestratorVersion,
|
||||
OrchestratorType: Kubernetes,
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
UseManagedIdentity: to.BoolPtr(test.useManagedIdentity),
|
||||
|
@ -3146,7 +3058,6 @@ func TestMasterProfileValidate(t *testing.T) {
|
|||
name string
|
||||
orchestratorType string
|
||||
orchestratorVersion string
|
||||
orchestratorRelease string
|
||||
useInstanceMetadata bool
|
||||
masterProfile MasterProfile
|
||||
agentPoolProfiles []*AgentPoolProfile
|
||||
|
@ -3189,7 +3100,7 @@ func TestMasterProfileValidate(t *testing.T) {
|
|||
{
|
||||
name: "Master Profile with VMSS and storage account",
|
||||
orchestratorType: Kubernetes,
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
masterProfile: MasterProfile{
|
||||
DNSPrefix: "dummy",
|
||||
Count: 3,
|
||||
|
@ -3201,7 +3112,7 @@ func TestMasterProfileValidate(t *testing.T) {
|
|||
{
|
||||
name: "Master Profile with VMSS and agent profiles with VMAS",
|
||||
orchestratorType: Kubernetes,
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
masterProfile: MasterProfile{
|
||||
DNSPrefix: "dummy",
|
||||
Count: 3,
|
||||
|
@ -3262,7 +3173,6 @@ func TestMasterProfileValidate(t *testing.T) {
|
|||
cs.Properties.OrchestratorProfile = &OrchestratorProfile{
|
||||
OrchestratorType: test.orchestratorType,
|
||||
OrchestratorVersion: test.orchestratorVersion,
|
||||
OrchestratorRelease: test.orchestratorRelease,
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
UseInstanceMetadata: to.BoolPtr(test.useInstanceMetadata),
|
||||
},
|
||||
|
@ -3280,7 +3190,7 @@ func TestMasterProfileValidate(t *testing.T) {
|
|||
func TestProperties_ValidateZones(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
orchestratorRelease string
|
||||
orchestratorVersion string
|
||||
loadBalancerSku string
|
||||
excludeMasterFromStandardLB bool
|
||||
masterProfile *MasterProfile
|
||||
|
@ -3290,7 +3200,7 @@ func TestProperties_ValidateZones(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
name: "Agent profile with zones vmas",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 5,
|
||||
DNSPrefix: "foo",
|
||||
|
@ -3312,7 +3222,7 @@ func TestProperties_ValidateZones(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "Master profile with zones and Agent profile without zones",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 5,
|
||||
DNSPrefix: "foo",
|
||||
|
@ -3333,7 +3243,7 @@ func TestProperties_ValidateZones(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "Master profile without zones and Agent profile with zones",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
DNSPrefix: "foo",
|
||||
|
@ -3354,7 +3264,7 @@ func TestProperties_ValidateZones(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "all zones and basic loadbalancer",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: BasicLoadBalancerSku,
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 5,
|
||||
|
@ -3377,7 +3287,7 @@ func TestProperties_ValidateZones(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "all zones with standard loadbalancer and false excludeMasterFromStandardLB",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: StandardLoadBalancerSku,
|
||||
excludeMasterFromStandardLB: false,
|
||||
masterProfile: &MasterProfile{
|
||||
|
@ -3408,7 +3318,7 @@ func TestProperties_ValidateZones(t *testing.T) {
|
|||
cs := getK8sDefaultContainerService(true)
|
||||
cs.Properties.MasterProfile = test.masterProfile
|
||||
cs.Properties.AgentPoolProfiles = test.agentProfiles
|
||||
cs.Properties.OrchestratorProfile.OrchestratorRelease = test.orchestratorRelease
|
||||
cs.Properties.OrchestratorProfile.OrchestratorVersion = test.orchestratorVersion
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig = &KubernetesConfig{
|
||||
LoadBalancerSku: test.loadBalancerSku,
|
||||
ExcludeMasterFromStandardLB: to.BoolPtr(test.excludeMasterFromStandardLB),
|
||||
|
@ -3579,7 +3489,7 @@ func ExampleProperties_validateZones() {
|
|||
func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
orchestratorRelease string
|
||||
orchestratorVersion string
|
||||
loadBalancerSku string
|
||||
masterProfile *MasterProfile
|
||||
agentProfiles []*AgentPoolProfile
|
||||
|
@ -3589,7 +3499,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
name: "lowercase basic LB",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: "basic",
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
|
@ -3609,7 +3519,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "Basic LB",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: BasicLoadBalancerSku,
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
|
@ -3620,7 +3530,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "lowercase standard LB",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: "standard",
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
|
@ -3631,7 +3541,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "Standard LB without master excluded",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: StandardLoadBalancerSku,
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
|
@ -3644,7 +3554,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "Standard LB",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: StandardLoadBalancerSku,
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
|
@ -3656,7 +3566,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "empty string LB value",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: "",
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
|
@ -3667,7 +3577,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "invalid LB string value",
|
||||
orchestratorRelease: "1.16",
|
||||
orchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
loadBalancerSku: "foo",
|
||||
masterProfile: &MasterProfile{
|
||||
Count: 3,
|
||||
|
@ -3687,7 +3597,7 @@ func TestProperties_ValidateLoadBalancer(t *testing.T) {
|
|||
cs := getK8sDefaultContainerService(true)
|
||||
cs.Properties.MasterProfile = test.masterProfile
|
||||
cs.Properties.AgentPoolProfiles = test.agentProfiles
|
||||
cs.Properties.OrchestratorProfile.OrchestratorRelease = test.orchestratorRelease
|
||||
cs.Properties.OrchestratorProfile.OrchestratorVersion = test.orchestratorVersion
|
||||
cs.Properties.OrchestratorProfile.KubernetesConfig = &KubernetesConfig{
|
||||
LoadBalancerSku: test.loadBalancerSku,
|
||||
ExcludeMasterFromStandardLB: to.BoolPtr(test.excludeMasterFromStandardLB),
|
||||
|
@ -3774,7 +3684,7 @@ func TestProperties_ValidateSinglePlacementGroup(t *testing.T) {
|
|||
t.Run(test.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
cs := getK8sDefaultContainerService(true)
|
||||
cs.Properties.OrchestratorProfile.OrchestratorRelease = "1.16"
|
||||
cs.Properties.OrchestratorProfile.OrchestratorVersion = common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false)
|
||||
cs.Properties.MasterProfile = test.masterProfile
|
||||
cs.Properties.AgentPoolProfiles = test.agentPoolProfiles
|
||||
err := cs.Validate(true)
|
||||
|
@ -4063,7 +3973,7 @@ func TestProperties_ValidateVNET(t *testing.T) {
|
|||
t.Run(test.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
cs := getK8sDefaultContainerService(true)
|
||||
cs.Properties.OrchestratorProfile.OrchestratorRelease = "1.16"
|
||||
cs.Properties.OrchestratorProfile.OrchestratorVersion = common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false)
|
||||
cs.Properties.MasterProfile = test.masterProfile
|
||||
cs.Properties.AgentPoolProfiles = test.agentPoolProfiles
|
||||
err := cs.Validate(true)
|
||||
|
@ -4683,7 +4593,7 @@ func TestValidateLocation(t *testing.T) {
|
|||
},
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: Kubernetes,
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
UseInstanceMetadata: to.BoolPtr(trueVal),
|
||||
},
|
||||
|
@ -4704,7 +4614,7 @@ func TestValidateLocation(t *testing.T) {
|
|||
},
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: Kubernetes,
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EtcdDiskSizeGB: "1024",
|
||||
},
|
||||
|
@ -4725,7 +4635,7 @@ func TestValidateLocation(t *testing.T) {
|
|||
},
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: Kubernetes,
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
KubernetesConfig: &KubernetesConfig{
|
||||
EtcdDiskSizeGB: "1024GB",
|
||||
},
|
||||
|
@ -4746,7 +4656,7 @@ func TestValidateLocation(t *testing.T) {
|
|||
},
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: Kubernetes,
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
},
|
||||
AgentPoolProfiles: []*AgentPoolProfile{
|
||||
{
|
||||
|
@ -4772,7 +4682,7 @@ func TestValidateLocation(t *testing.T) {
|
|||
},
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: Kubernetes,
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
},
|
||||
AgentPoolProfiles: []*AgentPoolProfile{
|
||||
{
|
||||
|
@ -4838,7 +4748,7 @@ func TestValidateAcceleratedNetworkingEnabledWindows(t *testing.T) {
|
|||
},
|
||||
OrchestratorProfile: &OrchestratorProfile{
|
||||
OrchestratorType: Kubernetes,
|
||||
OrchestratorVersion: "1.16.14",
|
||||
OrchestratorVersion: common.RationalizeReleaseAndVersion(Kubernetes, "", "", false, false, false),
|
||||
},
|
||||
AgentPoolProfiles: []*AgentPoolProfile{
|
||||
{
|
||||
|
|
|
@ -655,7 +655,7 @@ func TestTemplateGenerator_GetKubernetesLinuxNodeCustomDataJSONObject(t *testing
|
|||
{
|
||||
Name: "VMSSWithNoAgentPool",
|
||||
CSFactory: func() api.ContainerService {
|
||||
cs := api.CreateMockContainerService("VMSSWithNoAgentPool", "1.10.13", 3, 0, false)
|
||||
cs := api.CreateMockContainerService("VMSSWithNoAgentPool", "", 3, 0, false)
|
||||
cs.Properties.AgentPoolProfiles = []*api.AgentPoolProfile{
|
||||
{
|
||||
Name: "pool1",
|
||||
|
@ -672,7 +672,7 @@ func TestTemplateGenerator_GetKubernetesLinuxNodeCustomDataJSONObject(t *testing
|
|||
{
|
||||
Name: "VMSSWithNoLinuxProfile",
|
||||
CSFactory: func() api.ContainerService {
|
||||
cs := api.CreateMockContainerService("VMSSWithNoLinuxProfile", "1.10.13", 3, 0, false)
|
||||
cs := api.CreateMockContainerService("VMSSWithNoLinuxProfile", "", 3, 0, false)
|
||||
cs.Properties.AgentPoolProfiles = []*api.AgentPoolProfile{
|
||||
{
|
||||
Name: "pool1",
|
||||
|
|
|
@ -18,7 +18,7 @@ import (
|
|||
|
||||
func TestWriteTLSArtifacts(t *testing.T) {
|
||||
|
||||
cs := api.CreateMockContainerService("testcluster", "1.7.12", 1, 2, true)
|
||||
cs := api.CreateMockContainerService("testcluster", "", 1, 2, true)
|
||||
writer := &ArtifactWriter{
|
||||
Translator: &i18n.Translator{
|
||||
Locale: nil,
|
||||
|
@ -76,7 +76,7 @@ func TestWriteTLSArtifacts(t *testing.T) {
|
|||
os.RemoveAll(defaultDir)
|
||||
|
||||
// Generate files with custom cloud profile in configuration
|
||||
csCustom := api.CreateMockContainerService("testcluster", "1.11.6", 1, 2, false)
|
||||
csCustom := api.CreateMockContainerService("testcluster", "", 1, 2, false)
|
||||
csCustom.Location = "customlocation"
|
||||
csCustom.Properties.CustomCloudProfile = &api.CustomCloudProfile{
|
||||
Environment: &azure.Environment{
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
"properties": {
|
||||
"provisioningState": "",
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"enablePodSecurityPolicy": true,
|
||||
"enableRbac": true,
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
"properties": {
|
||||
"provisioningState": "",
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"addons": [
|
||||
{
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
"properties": {
|
||||
"provisioningState": "",
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"addons": [
|
||||
{
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
"location": "local",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"kubernetesImageBase": "k8s.gcr.io/",
|
||||
"useInstanceMetadata": false,
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
"location": "westus",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"kubernetesImageBase": "k8s.gcr.io/",
|
||||
"useInstanceMetadata": false,
|
||||
|
|
|
@ -3,9 +3,6 @@
|
|||
"plan": {},
|
||||
"properties": {
|
||||
"provisioningState": "",
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "masterdns1",
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"orchestratorVersion": "1.16.14",
|
||||
"kubernetesConfig": {
|
||||
"kubernetesImageBase": "k8s.gcr.io/",
|
||||
"clusterSubnet": "10.240.0.0/12",
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "masterdns1",
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 1,
|
||||
"dnsPrefix": "masterdns1",
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
{
|
||||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16"
|
||||
},
|
||||
"masterProfile": {
|
||||
"count": 3,
|
||||
"dnsPrefix": "prefix",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useInstanceMetadata": false,
|
||||
"windowsNodeBinariesURL": "http://test/test.tar.gz",
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
"apiVersion": "vlabs",
|
||||
"properties": {
|
||||
"orchestratorProfile": {
|
||||
"orchestratorRelease": "1.16",
|
||||
"kubernetesConfig": {
|
||||
"useInstanceMetadata": false
|
||||
}
|
||||
|
|
|
@ -291,10 +291,6 @@ K8S_VERSIONS="
|
|||
1.17.17
|
||||
1.17.17-azs
|
||||
1.17.16
|
||||
1.16.15
|
||||
1.16.15-azs
|
||||
1.16.14
|
||||
1.16.14-azs
|
||||
"
|
||||
for KUBERNETES_VERSION in ${K8S_VERSIONS}; do
|
||||
if (( $(echo ${KUBERNETES_VERSION} | cut -d"." -f2) < 17 )); then
|
||||
|
|
Загрузка…
Ссылка в новой задаче