chore: deprecate Kubernetes 1.17 support (#4553)

This commit is contained in:
Jack Francis 2021-07-01 15:58:51 -07:00 коммит произвёл GitHub
Родитель 1c8aaa561c
Коммит a5a6325fb9
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
22 изменённых файлов: 68 добавлений и 401 удалений

2
Jenkinsfile поставляемый
Просмотреть файл

@ -6,7 +6,7 @@ defaultEnv = [
VALIDATE_CPU_LOAD: false,
] + params
def k8sVersions = ["1.17", "1.18", "1.19", "1.20", "1.21", "1.22"]
def k8sVersions = ["1.18", "1.19", "1.20", "1.21", "1.22"]
def latestReleasedVersion = "1.21"
def tasks = [:]
def testConfigs = []

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

@ -562,11 +562,6 @@ func TestExampleAPIModels(t *testing.T) {
apiModelPath: "../examples/kubernetes-msi-userassigned/kube-vmss.json",
setArgs: defaultSet,
},
{
name: "1.17 example",
apiModelPath: "../examples/kubernetes-releases/kubernetes1.17.json",
setArgs: defaultSet,
},
{
name: "1.18 example",
apiModelPath: "../examples/kubernetes-releases/kubernetes1.18.json",

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

@ -76,10 +76,10 @@ After that, you will have to upload a tarball (`_output/release-tars/kubernetes-
### AKS Engine API Model
* Open the AKS Engine API Model (e.g. a file from the examples directory). Set `orchestratorRelease` to 1.17 or higher so various defaults and configuration are properly applied to the ARM template and artifacts. Additionally, add the following to the `kubernetesConfig` section:
* Open the AKS Engine API Model (e.g. a file from the examples directory). Set `orchestratorRelease` to 1.18 or higher so various defaults and configuration are properly applied to the ARM template and artifacts. Additionally, add the following to the `kubernetesConfig` section:
```
"orchestratorRelease": "1.17",
"orchestratorRelease": "1.18",
"kubernetesConfig": {
...
"customKubeAPIServerImage": "<your-docker-registry>/kube-apiserver-amd64:<your-custom-tag>",

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

@ -1,47 +0,0 @@
{
"apiVersion": "vlabs",
"location": "",
"properties": {
"orchestratorProfile": {
"orchestratorRelease": "1.17",
"kubernetesConfig": {
"useInstanceMetadata": false,
"networkPlugin": "kubenet"
}
},
"customCloudProfile": {
"portalURL": "",
"identitySystem": ""
},
"masterProfile": {
"dnsPrefix": "",
"distro": "ubuntu-18.04",
"count": 3,
"vmSize": "Standard_D2_v2"
},
"agentPoolProfiles": [
{
"name": "linuxpool",
"count": 3,
"vmSize": "Standard_D2_v2",
"distro": "ubuntu-18.04",
"availabilityProfile": "AvailabilitySet",
"AcceleratedNetworkingEnabled": false
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
},
"servicePrincipalProfile": {
"clientId": "",
"secret": ""
}
}
}

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

@ -1,30 +0,0 @@
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorRelease": "1.17"
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v3"
},
"agentPoolProfiles": [
{
"name": "agentpool1",
"count": 3,
"vmSize": "Standard_D2_v3"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
}
}
}

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

@ -61,9 +61,9 @@ const (
// KubernetesDefaultReleaseWindows is the default Kubernetes release for Windows
KubernetesDefaultReleaseWindows string = "1.18"
// KubernetesDefaultReleaseAzureStack is the default Kubernetes release on Azure Stack
KubernetesDefaultReleaseAzureStack string = "1.17"
KubernetesDefaultReleaseAzureStack string = "1.18"
// KubernetesDefaultReleaseWindowsAzureStack is the default Kubernetes release for Windows on Azure Stack
KubernetesDefaultReleaseWindowsAzureStack string = "1.17"
KubernetesDefaultReleaseWindowsAzureStack string = "1.18"
)
const LegacyControlPlaneVMPrefix string = "k8s-master"

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

@ -198,7 +198,7 @@ var AllKubernetesSupportedVersions = map[string]bool{
"1.17.14": false, // disabled, see https://github.com/kubernetes/kubernetes/pull/96623
"1.17.15": false, // replaced by 1.17.16 due to k8s release engineering issues
"1.17.16": false,
"1.17.17": true,
"1.17.17": false,
"1.18.0-alpha.1": false,
"1.18.0-alpha.2": false,
"1.18.0-alpha.3": false,
@ -296,7 +296,7 @@ var AllKubernetesSupportedVersionsAzureStack = map[string]bool{
"1.17.7": false,
"1.17.9": false,
"1.17.11": false,
"1.17.17": true,
"1.17.17": false,
"1.18.10": false,
"1.18.15": false,
"1.18.18": true,
@ -321,7 +321,7 @@ var AllKubernetesWindowsSupportedVersionsAzureStack = map[string]bool{
"1.17.7": false,
"1.17.9": false,
"1.17.11": false,
"1.17.17": true,
"1.17.17": false,
"1.18.10": false,
"1.18.15": false,
"1.18.18": true,

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

@ -1169,14 +1169,13 @@ func (cs *ContainerService) getDefaultKubernetesClusterSubnetIPv6() string {
func (cs *ContainerService) setCSIProxyDefaults() {
p := cs.Properties
useCloudControllerManager := p.OrchestratorProfile.KubernetesConfig != nil && to.Bool(p.OrchestratorProfile.KubernetesConfig.UseCloudControllerManager)
k8sVersion := p.OrchestratorProfile.OrchestratorVersion
w := p.WindowsProfile
// We should enable CSI proxy if:
// 1. enableCSIProxy is not defined and cloud-controller-manager
// is being used on a Windows cluster with K8s >= 1.18.0 or
// is being used on a Windows cluster or
// 2. enabledCSIProxy is true
// 3. csiProxyURL is defined
shouldEnableCSIProxy := (w.EnableCSIProxy == nil && useCloudControllerManager && common.IsKubernetesVersionGe(k8sVersion, "1.18.0")) ||
shouldEnableCSIProxy := (w.EnableCSIProxy == nil && useCloudControllerManager) ||
w.IsCSIProxyEnabled() ||
w.CSIProxyURL != ""

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

@ -1564,7 +1564,7 @@ func TestStorageProfile(t *testing.T) {
// TestMasterProfileDefaults covers tests for setMasterProfileDefaults
func TestMasterProfileDefaults(t *testing.T) {
// this validates default masterProfile configuration
mockCS := getMockBaseContainerService("1.13.12")
mockCS := getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties := mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = ""
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = NetworkPluginAzure
@ -1606,7 +1606,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates default VMSS masterProfile configuration
mockCS = getMockBaseContainerService("1.13.12")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = NetworkPluginAzure
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = ""
@ -1641,7 +1641,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates default masterProfile configuration and kubenet
mockCS = getMockBaseContainerService("1.13.12")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = ""
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = NetworkPluginKubenet
@ -1685,7 +1685,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates default vmas masterProfile configuration, AzureCNI, and custom vnet
mockCS = getMockBaseContainerService("1.10.3")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.MasterProfile.VnetSubnetID = "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/ExampleCustomVNET/subnets/ExampleMasterSubnet"
properties.MasterProfile.VnetCidr = "10.239.0.0/16"
@ -1708,7 +1708,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates default VMSS masterProfile configuration, AzureCNI, and custom VNET
mockCS = getMockBaseContainerService("1.10.3")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.MasterProfile.VnetSubnetID = "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/ExampleCustomVNET/subnets/ExampleMasterSubnet"
properties.MasterProfile.VnetCidr = "10.239.0.0/16"
@ -1729,7 +1729,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates default configurations for LoadBalancerSku and ExcludeMasterFromStandardLB
mockCS = getMockBaseContainerService("1.13.12")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.LoadBalancerSku = StandardLoadBalancerSku
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
@ -1747,7 +1747,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates default configurations for MaximumLoadBalancerRuleCount.
mockCS = getMockBaseContainerService("1.13.12")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
IsScale: false,
@ -1762,44 +1762,8 @@ func TestMasterProfileDefaults(t *testing.T) {
properties.OrchestratorProfile.KubernetesConfig.MaximumLoadBalancerRuleCount, DefaultMaximumLoadBalancerRuleCount)
}
// this validates cluster subnet default configuration for dual stack feature with 1.16
mockCS = getMockBaseContainerService("1.16.0")
properties = mockCS.Properties
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
IsScale: false,
IsUpgrade: false,
PkiKeySize: helpers.DefaultPkiKeySize,
})
if err != nil {
t.Error(err)
}
expectedClusterSubnet := strings.Join([]string{DefaultKubernetesClusterSubnet, "fc00::/8"}, ",")
if properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet != expectedClusterSubnet {
t.Fatalf("OrchestratorProfile.KubernetesConfig.ClusterSubnet did not have the expected configuration, got %s, expected %s",
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet, expectedClusterSubnet)
}
// this validates cluster subnet default configuration for dual stack feature in 1.16 when only ipv4 subnet provided
mockCS = getMockBaseContainerService("1.16.0")
properties = mockCS.Properties
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
IsScale: false,
IsUpgrade: false,
PkiKeySize: helpers.DefaultPkiKeySize,
})
if err != nil {
t.Error(err)
}
expectedClusterSubnet = strings.Join([]string{DefaultKubernetesClusterSubnet, "fc00::/8"}, ",")
if properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet != expectedClusterSubnet {
t.Fatalf("OrchestratorProfile.KubernetesConfig.ClusterSubnet did not have the expected configuration, got %s, expected %s",
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet, expectedClusterSubnet)
}
// this validates cluster subnet default configuration for dual stack feature.
mockCS = getMockBaseContainerService("1.17.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
@ -1810,14 +1774,14 @@ func TestMasterProfileDefaults(t *testing.T) {
if err != nil {
t.Error(err)
}
expectedClusterSubnet = strings.Join([]string{DefaultKubernetesClusterSubnet, DefaultKubernetesClusterSubnetIPv6}, ",")
expectedClusterSubnet := strings.Join([]string{DefaultKubernetesClusterSubnet, DefaultKubernetesClusterSubnetIPv6}, ",")
if properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet != expectedClusterSubnet {
t.Fatalf("OrchestratorProfile.KubernetesConfig.ClusterSubnet did not have the expected configuration, got %s, expected %s",
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet, expectedClusterSubnet)
}
// this validates cluster subnet default configuration for dual stack feature when only ipv4 subnet provided
mockCS = getMockBaseContainerService("1.17.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = "10.244.0.0/16"
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
@ -1836,7 +1800,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates cluster subnet default configuration for dual stack feature when only ipv6 subnet provided
mockCS = getMockBaseContainerService("1.17.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = "ace:cab:deca::/8"
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
@ -1854,47 +1818,8 @@ func TestMasterProfileDefaults(t *testing.T) {
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet, expectedClusterSubnet)
}
// this validates cluster subnet default configuration for azure cni dual stack feature.
mockCS = getMockBaseContainerService("1.16.0")
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
IsScale: false,
IsUpgrade: false,
PkiKeySize: helpers.DefaultPkiKeySize,
})
if err != nil {
t.Error(err)
}
expectedClusterSubnet = strings.Join([]string{DefaultKubernetesSubnet, "fc00::/8"}, ",")
if properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet != expectedClusterSubnet {
t.Fatalf("OrchestratorProfile.KubernetesConfig.ClusterSubnet did not have the expected configuration, got %s, expected %s",
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet, expectedClusterSubnet)
}
// this validates cluster subnet default configuration for azure cni dual stack feature when only ipv4 subnet provided
mockCS = getMockBaseContainerService("1.16.0")
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = "10.240.1.0/24"
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
IsScale: false,
IsUpgrade: false,
PkiKeySize: helpers.DefaultPkiKeySize,
})
if err != nil {
t.Error(err)
}
expectedClusterSubnet = strings.Join([]string{"10.240.1.0/24", "fc00::/8"}, ",")
if properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet != expectedClusterSubnet {
t.Fatalf("OrchestratorProfile.KubernetesConfig.ClusterSubnet did not have the expected configuration, got %s, expected %s",
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet, expectedClusterSubnet)
}
// this validates cluster subnet default configuration for azure cni dual stack feature when only ipv6 subnet provided
mockCS = getMockBaseContainerService("1.16.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = "ace:cab:deca::/8"
@ -1914,7 +1839,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates cluster subnet default configuration for azure cni dual stack feature when both ipv4 and ipv6 subnet provided
mockCS = getMockBaseContainerService("1.16.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.OrchestratorProfile.KubernetesConfig.ClusterSubnet = "10.240.1.0/24,ace:cab:deca::/8"
@ -1934,7 +1859,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates cluster subnet default configuration for azure cni dual stack feature for k8s 1.17 version
mockCS = getMockBaseContainerService("1.17.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
@ -1953,7 +1878,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates service cidr default configuration for dual stack feature when both ipv4 and ipv6 subnet provided
mockCS = getMockBaseContainerService("1.16.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.OrchestratorProfile.KubernetesConfig.ServiceCIDR = "192.168.0.0/16,ace:cab:deca::/8"
@ -1973,7 +1898,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates service cidr default configuration for dual stack feature when ipv4 provided
mockCS = getMockBaseContainerService("1.16.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.OrchestratorProfile.KubernetesConfig.ServiceCIDR = "192.168.0.0/16"
@ -1993,7 +1918,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates service cidr default configuration for dual stack feature when ipv6 provided
mockCS = getMockBaseContainerService("1.16.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.OrchestratorProfile.KubernetesConfig.ServiceCIDR = "ace:cab:deca::/8"
@ -2013,7 +1938,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates service cidr default configuration for dual stack feature when servicecidr not provided
mockCS = getMockBaseContainerService("1.16.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = "azure"
properties.FeatureFlags = &FeatureFlags{EnableIPv6DualStack: true}
@ -2032,7 +1957,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates default configurations for OutboundRuleIdleTimeoutInMinutes.
mockCS = getMockBaseContainerService("1.18.2")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.OrchestratorProfile.KubernetesConfig.LoadBalancerSku = StandardLoadBalancerSku
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
@ -2049,7 +1974,7 @@ func TestMasterProfileDefaults(t *testing.T) {
}
// this validates cluster subnet default configuration for single stack IPv6 only cluster
mockCS = getMockBaseContainerService("1.18.0")
mockCS = getMockBaseContainerService(common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false))
properties = mockCS.Properties
properties.FeatureFlags = &FeatureFlags{EnableIPv6Only: true}
_, err = mockCS.SetPropertiesDefaults(PropertiesDefaultsParams{
@ -3613,15 +3538,6 @@ func TestEnableAggregatedAPIs(t *testing.T) {
}
}
func TestCloudControllerManagerEnabled(t *testing.T) {
// test that 1.17 defaults to 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")
}
}
func TestDefaultCloudProvider(t *testing.T) {
mockCS := getMockBaseContainerService("1.10.3")
properties := mockCS.Properties

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

@ -1235,7 +1235,7 @@ func TestProperties_ValidateWindowsProfile(t *testing.T) {
}{
{
name: "Valid WindowsProfile",
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, "1.17", "", false, false, false),
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false),
wp: &WindowsProfile{
AdminUsername: "AzureUser",
AdminPassword: "replacePassword1234$",
@ -1244,7 +1244,7 @@ func TestProperties_ValidateWindowsProfile(t *testing.T) {
},
{
name: "No username",
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, "1.17", "", false, false, false),
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false),
wp: &WindowsProfile{
AdminUsername: "",
AdminPassword: "replacePassword1234$",
@ -1253,7 +1253,7 @@ func TestProperties_ValidateWindowsProfile(t *testing.T) {
},
{
name: "No password",
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, "1.17", "", false, false, false),
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false),
wp: &WindowsProfile{
AdminUsername: "AzureUser",
AdminPassword: "",
@ -1262,7 +1262,7 @@ func TestProperties_ValidateWindowsProfile(t *testing.T) {
},
{
name: "CSI proxy enabled",
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, "1.18", "", false, false, false),
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, common.KubernetesDefaultRelease, "", false, false, false),
wp: &WindowsProfile{
AdminUsername: "AzureUser",
AdminPassword: "replacePassword1234$",
@ -1271,17 +1271,6 @@ func TestProperties_ValidateWindowsProfile(t *testing.T) {
},
expectedError: nil,
},
{
name: "CSI Proxy unsupported version",
k8sVersion: common.RationalizeReleaseAndVersion(common.Kubernetes, "1.17", "", false, false, false),
wp: &WindowsProfile{
AdminUsername: "AzureUser",
AdminPassword: "replacePassword1234$",
EnableCSIProxy: &trueVar,
CSIProxyURL: "http://some/url",
},
expectedError: errors.New("CSI proxy for Windows is only available in Kubernetes versions 1.18.0 or greater"),
},
{
name: "Invalid Windows version",
k8sVersion: "1.15.7",

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

@ -10,8 +10,6 @@ import (
"fmt"
"io/ioutil"
"net/http"
"strconv"
"strings"
"time"
"github.com/Azure/aks-engine/pkg/api/common"
@ -41,12 +39,8 @@ const (
var defaultK8sVersionForFakeVMs string
func init() {
defaultVersion := common.RationalizeReleaseAndVersion(common.Kubernetes, "", "", false, false, false)
versionSplit := strings.Split(defaultVersion, ".")
minorVersion, _ := strconv.Atoi(versionSplit[1])
minorVersionLessOne := minorVersion - 1
priorVersion := common.RationalizeReleaseAndVersion(common.Kubernetes, versionSplit[0]+"."+strconv.Itoa(minorVersionLessOne), "", false, false, false)
defaultK8sVersionForFakeVMs = fmt.Sprintf("Kubernetes:%s", priorVersion)
initialVersion := common.RationalizeReleaseAndVersion(common.Kubernetes, "", "", false, false, false)
defaultK8sVersionForFakeVMs = fmt.Sprintf("Kubernetes:%s", initialVersion)
}
//MockAKSEngineClient is an implementation of AKSEngineClient where all requests error out
@ -375,7 +369,7 @@ func (mkc *MockKubernetesClient) GetNode(name string) (*v1.Node, error) {
}
node := &v1.Node{}
node.Status.Conditions = append(node.Status.Conditions, v1.NodeCondition{Type: v1.NodeReady, Status: v1.ConditionTrue})
node.Status.NodeInfo.KubeletVersion = "1.17.5"
node.Status.NodeInfo.KubeletVersion = common.RationalizeReleaseAndVersion(common.Kubernetes, "", "", false, false, false)
return node, nil
}

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

@ -56,19 +56,19 @@ func TestUpgradeCluster(t *testing.T) {
}
var _ = Describe("Upgrade Kubernetes cluster tests", func() {
defaultVersion := common.RationalizeReleaseAndVersion(common.Kubernetes, "", "", false, false, false)
versionSplit := strings.Split(defaultVersion, ".")
initialVersion := common.RationalizeReleaseAndVersion(common.Kubernetes, "", "", false, false, false)
versionSplit := strings.Split(initialVersion, ".")
minorVersion, _ := strconv.Atoi(versionSplit[1])
minorVersionLessOne := minorVersion - 1
priorVersion := common.RationalizeReleaseAndVersion(common.Kubernetes, versionSplit[0]+"."+strconv.Itoa(minorVersionLessOne), "", false, false, false)
mockK8sVersionOneLessThanDefault := fmt.Sprintf("Kubernetes:%s", priorVersion)
minorVersionPlusOne := minorVersion + 1
upgradeVersion := common.RationalizeReleaseAndVersion(common.Kubernetes, versionSplit[0]+"."+strconv.Itoa(minorVersionPlusOne), "", false, false, false)
mockK8sVersionInitial := fmt.Sprintf("Kubernetes:%s", initialVersion)
AfterEach(func() {
// delete temp template directory
os.RemoveAll("_output")
})
It("Should succeed when cluster VMs are missing expected tags during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 1, 1, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 1, 1, false)
uc := UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -94,7 +94,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
})
It("Should return error message when failing to list VMs during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 1, 1, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 1, 1, false)
uc := UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -120,7 +120,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
})
It("Should return error message when failing to delete VMs during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 1, 1, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 1, 1, false)
uc := UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -143,7 +143,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
})
It("Should return error message when failing to deploy template during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 1, 1, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 1, 1, false)
uc := UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -166,7 +166,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
})
It("Should return error message when failing to get a virtual machine during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 1, 6, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 1, 6, false)
uc := UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -189,7 +189,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
})
It("Should return error message when failing to get storage client during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 5, 1, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 5, 1, false)
uc := UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -212,7 +212,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
})
It("Should return error message when failing to delete network interface during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 3, 2, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 3, 2, false)
uc := UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -235,7 +235,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
})
It("Should return error message when failing to delete role assignment during upgrade operation", func() {
cs := api.CreateMockContainerService("testcluster", "", 3, 2, false)
cs := api.CreateMockContainerService("testcluster", upgradeVersion, 3, 2, false)
cs.Properties.OrchestratorProfile.KubernetesConfig = &api.KubernetesConfig{}
cs.Properties.OrchestratorProfile.KubernetesConfig.UseManagedIdentity = to.BoolPtr(true)
uc := UpgradeCluster{
@ -269,7 +269,7 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
BeforeEach(func() {
mockClient = armhelpers.MockAKSEngineClient{MockKubernetesClient: &armhelpers.MockKubernetesClient{}}
cs = api.CreateMockContainerService("testcluster", "", 3, 3, false)
cs = api.CreateMockContainerService("testcluster", upgradeVersion, 3, 3, false)
uc = UpgradeCluster{
Translator: &i18n.Translator{},
Logger: log.NewEntry(log.New()),
@ -298,10 +298,10 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
It("Should skip VMs that are already on desired version", func() {
mockClient.FakeListVirtualMachineScaleSetVMsResult = func() []compute.VirtualMachineScaleSetVM {
return []compute.VirtualMachineScaleSetVM{
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", defaultVersion)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", defaultVersion)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", upgradeVersion)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", upgradeVersion)),
}
}
uc.Force = false
@ -369,17 +369,17 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
It("Should use kubernetes api to get node versions for VMSS when latest model is not applied", func() {
trueVar := true
falseVar := false
vmWithoutLatestModelApplied := mockClient.MakeFakeVirtualMachineScaleSetVMWithGivenName(fmt.Sprintf("Kubernetes:%s", defaultVersion), "vmWithoutLatestModelApplied!")
vmWithoutLatestModelApplied := mockClient.MakeFakeVirtualMachineScaleSetVMWithGivenName(fmt.Sprintf("Kubernetes:%s", upgradeVersion), "vmWithoutLatestModelApplied!")
vmWithoutLatestModelApplied.VirtualMachineScaleSetVMProperties.LatestModelApplied = &falseVar
vmWithLatestModelApplied := mockClient.MakeFakeVirtualMachineScaleSetVMWithGivenName(fmt.Sprintf("Kubernetes:%s", defaultVersion), "vmWithLatestModelApplied")
vmWithLatestModelApplied := mockClient.MakeFakeVirtualMachineScaleSetVMWithGivenName(fmt.Sprintf("Kubernetes:%s", upgradeVersion), "vmWithLatestModelApplied")
vmWithLatestModelApplied.VirtualMachineScaleSetVMProperties.LatestModelApplied = &trueVar
mockClient.MockKubernetesClient.GetNodeFunc = func(name string) (*v1.Node, error) {
node := &v1.Node{}
node.Status.NodeInfo.KubeletVersion = "v" + mockK8sVersionOneLessThanDefault
node.Status.NodeInfo.KubeletVersion = "v" + mockK8sVersionInitial
node.Status = v1.NodeStatus{}
node.Status.NodeInfo = v1.NodeSystemInfo{
KubeletVersion: "v" + mockK8sVersionOneLessThanDefault,
KubeletVersion: "v" + mockK8sVersionInitial,
}
return node, nil
@ -492,10 +492,10 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
It("Should mark scale sets as windows correctly.", func() {
mockClient.FakeListVirtualMachineScaleSetVMsResult = func() []compute.VirtualMachineScaleSetVM {
return []compute.VirtualMachineScaleSetVM{
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", defaultVersion)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", defaultVersion)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", upgradeVersion)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", upgradeVersion)),
}
}
uc.Force = false
@ -689,16 +689,16 @@ var _ = Describe("Upgrade Kubernetes cluster tests", func() {
//masters
mockClient.FakeListVirtualMachineResult = func() []compute.VirtualMachine {
return []compute.VirtualMachine{
mockClient.MakeFakeVirtualMachine("one", fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachine("two", fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachine("three", fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachine("one", fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
mockClient.MakeFakeVirtualMachine("two", fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
mockClient.MakeFakeVirtualMachine("three", fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
}
}
//agents
mockClient.FakeListVirtualMachineScaleSetVMsResult = func() []compute.VirtualMachineScaleSetVM {
return []compute.VirtualMachineScaleSetVM{
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionOneLessThanDefault)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
mockClient.MakeFakeVirtualMachineScaleSetVM(fmt.Sprintf("Kubernetes:%s", mockK8sVersionInitial)),
}
}
uc.Client = &mockClient

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

@ -1,10 +1,4 @@
{
"options": {
"allowedOrchestratorVersions": [
"1.18",
"1.19"
]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {

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

@ -1,41 +0,0 @@
{
"options": {
"allowedOrchestratorVersions": [
"1.16"
]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"kubernetesConfig": {
"customHyperkubeImage": "mcr.microsoft.com/oss/kubernetes/hyperkube:v1.16.0",
"customKubeProxyImage": "mcr.microsoft.com/oss/kubernetes/hyperkube:v1.16.0"
}
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v3"
},
"agentPoolProfiles": [
{
"name": "agentpool1",
"count": 2,
"vmSize": "Standard_D2_v3",
"availabilityProfile": "AvailabilitySet"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
}
}
}
}

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

@ -1,41 +0,0 @@
{
"env": {
},
"options": {
"allowedOrchestratorVersions": ["1.16"]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"kubernetesConfig": {
"networkPolicy": "antrea"
}
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v3"
},
"agentPoolProfiles": [
{
"name": "agent1",
"count": 1,
"vmSize": "Standard_D2_v3",
"availabilityProfile": "VirtualMachineScaleSets",
"scalesetPriority": "Spot"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
}
}
}
}

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

@ -1,41 +0,0 @@
{
"env": {},
"options": {
"allowedOrchestratorVersions": ["1.16"]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"kubernetesConfig": {
"networkPolicy": "antrea",
"networkPlugin": "azure"
}
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v3"
},
"agentPoolProfiles": [
{
"name": "agent1",
"count": 1,
"vmSize": "Standard_D2_v3",
"availabilityProfile": "VirtualMachineScaleSets",
"scalesetPriority": "Spot"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
}
}
}
}

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

@ -1,8 +1,5 @@
{
"env": {},
"options": {
"allowedOrchestratorVersions": ["1.17", "1.18", "1.19", "1.20", "1.21"]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {

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

@ -1,8 +1,5 @@
{
"env": {},
"options": {
"allowedOrchestratorVersions": ["1.16", "1.17", "1.18", "1.19"]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {

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

@ -1,12 +1,5 @@
{
"env": {},
"options": {
"allowedOrchestratorVersions": [
"1.16",
"1.17",
"1.18"
]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {

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

@ -2,9 +2,6 @@
"env": {
"VALIDATE_CPU_LOAD": true
},
"options": {
"allowedOrchestratorVersions": ["1.17", "1.18", "1.19"]
},
"apiModel": {
"apiVersion": "vlabs",
"properties": {

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

@ -115,11 +115,9 @@ function Get-FilesToCacheOnVHD {
"https://kubernetesartifacts.azureedge.net/csi-proxy/v0.2.2/binaries/csi-proxy-v0.2.2.tar.gz"
);
"c:\akse-cache\win-k8s\" = @(
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.17.17-azs/windowszip/v1.17.17-azs-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.18.18-azs/windowszip/v1.18.18-azs-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.19.10-azs/windowszip/v1.19.10-azs-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.20.6-azs/windowszip/v1.20.6-azs-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.17.17/windowszip/v1.17.17-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.18.20/windowszip/v1.18.20-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.19.12/windowszip/v1.19.12-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.20.8/windowszip/v1.20.8-1int.zip",

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

@ -235,8 +235,6 @@ K8S_VERSIONS="
1.19.10-azs
1.18.20
1.18.18-azs
1.17.17
1.17.17-azs
"
for KUBERNETES_VERSION in ${K8S_VERSIONS}; do
for component in kube-apiserver kube-controller-manager kube-proxy kube-scheduler; do