Skip to content
This repository has been archived by the owner on Oct 24, 2023. It is now read-only.

feat: add support for Kubernetes v1.23.0-alpha.1 #4647

Merged
merged 1 commit into from Sep 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 20 additions & 0 deletions .pipelines/pr-e2e.yaml
Expand Up @@ -113,6 +113,16 @@ jobs:
containerRuntime: 'docker'
runSSHTests: true

- template: e2e-job-template.yaml
parameters:
name: 'k8s_1_23_docker_e2e'
k8sRelease: '1.23'
apimodel: 'examples/e2e-tests/kubernetes/release/default/definition.json'
createVNET: true
enableKMSEncryption: false
containerRuntime: 'docker'
runSSHTests: true

- template: e2e-job-template.yaml
parameters:
name: 'k8s_1_18_containerd_e2e'
Expand Down Expand Up @@ -162,3 +172,13 @@ jobs:
enableKMSEncryption: false
containerRuntime: 'containerd'
runSSHTests: true

- template: e2e-job-template.yaml
parameters:
name: 'k8s_1_23_containerd_e2e'
k8sRelease: '1.23'
apimodel: 'examples/e2e-tests/kubernetes/release/default/definition-no-vnet.json'
createVNET: false
enableKMSEncryption: false
containerRuntime: 'containerd'
runSSHTests: true
2 changes: 1 addition & 1 deletion Jenkinsfile
Expand Up @@ -6,7 +6,7 @@ defaultEnv = [
VALIDATE_CPU_LOAD: false,
] + params

def k8sVersions = ["1.18", "1.19", "1.20", "1.21", "1.22"]
def k8sVersions = ["1.18", "1.19", "1.20", "1.21", "1.22", "1.23"]
def latestReleasedVersion = "1.22"
def tasks = [:]
def testConfigs = []
Expand Down
5 changes: 5 additions & 0 deletions cmd/generate_test.go
Expand Up @@ -587,6 +587,11 @@ func TestExampleAPIModels(t *testing.T) {
apiModelPath: "../examples/kubernetes-releases/kubernetes1.22.json",
setArgs: defaultSet,
},
{
name: "1.23 example",
apiModelPath: "../examples/kubernetes-releases/kubernetes1.23.json",
setArgs: defaultSet,
},
{
name: "vmss",
apiModelPath: "../examples/kubernetes-vmss/kubernetes.json",
Expand Down
30 changes: 30 additions & 0 deletions examples/kubernetes-releases/kubernetes1.23.json
@@ -0,0 +1,30 @@
{
"apiVersion": "vlabs",
"properties": {
"orchestratorProfile": {
"orchestratorRelease": "1.23"
},
"masterProfile": {
"count": 1,
"dnsPrefix": "",
"vmSize": "Standard_D2_v3"
},
"agentPoolProfiles": [
{
"name": "agentpool1",
"count": 3,
"vmSize": "Standard_D2_v3"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
}
}
}
1 change: 1 addition & 0 deletions pkg/api/common/versions.go
Expand Up @@ -285,6 +285,7 @@ var AllKubernetesSupportedVersions = map[string]bool{
"1.22.0-beta.2": false,
"1.22.0": false,
"1.22.1": true,
"1.23.0-alpha.1": true,
}

// AllKubernetesSupportedVersionsAzureStack is a hash table of all supported Kubernetes version strings on Azure Stack
Expand Down
96 changes: 96 additions & 0 deletions pkg/api/k8s_versions.go
Expand Up @@ -114,6 +114,12 @@ func getDefaultImage(image, kubernetesImageBaseType string) string {
// The map supports GCR or MCR image string flavors
var kubernetesImageBaseVersionedImages = map[string]map[string]map[string]string{
common.KubernetesImageBaseTypeGCR: {
"1.23": {
common.AddonResizerComponentName: "addon-resizer:1.8.7",
common.MetricsServerAddonName: "metrics-server/metrics-server:v0.5.0",
common.AddonManagerComponentName: "kube-addon-manager-amd64:v9.1.5",
common.ClusterAutoscalerAddonName: "cluster-autoscaler:v1.18.0",
},
"1.22": {
common.AddonResizerComponentName: "addon-resizer:1.8.7",
common.MetricsServerAddonName: "metrics-server/metrics-server:v0.5.0",
Expand Down Expand Up @@ -238,6 +244,12 @@ var kubernetesImageBaseVersionedImages = map[string]map[string]map[string]string
},
},
common.KubernetesImageBaseTypeMCR: {
"1.23": {
common.AddonResizerComponentName: "oss/kubernetes/autoscaler/addon-resizer:1.8.7",
common.MetricsServerAddonName: "oss/kubernetes/metrics-server:v0.5.0",
common.AddonManagerComponentName: "oss/kubernetes/kube-addon-manager:v9.1.5",
common.ClusterAutoscalerAddonName: "oss/kubernetes/autoscaler/cluster-autoscaler:v1.21.0",
},
"1.22": {
common.AddonResizerComponentName: "oss/kubernetes/autoscaler/addon-resizer:1.8.7",
common.MetricsServerAddonName: "oss/kubernetes/metrics-server:v0.5.0",
Expand Down Expand Up @@ -478,6 +490,90 @@ func getK8sVersionComponents(version, kubernetesImageBaseType string, overrides
var ret map[string]string
k8sComponent := kubernetesImageBaseVersionedImages[kubernetesImageBaseType][majorMinor]
switch majorMinor {
case "1.23":
ret = map[string]string{
common.APIServerComponentName: getDefaultImage(common.APIServerComponentName, kubernetesImageBaseType) + ":v" + version,
common.ControllerManagerComponentName: getDefaultImage(common.ControllerManagerComponentName, kubernetesImageBaseType) + ":v" + version,
common.KubeProxyAddonName: getDefaultImage(common.KubeProxyAddonName, kubernetesImageBaseType) + ":v" + version,
common.SchedulerComponentName: getDefaultImage(common.SchedulerComponentName, kubernetesImageBaseType) + ":v" + version,
common.CloudControllerManagerComponentName: azureCloudControllerManagerImageReference,
common.CloudNodeManagerAddonName: azureCloudNodeManagerImageReference,
common.WindowsArtifactComponentName: "v" + version + "/windowszip/v" + version + "-1int.zip",
common.WindowsArtifactAzureStackComponentName: "v" + version + common.AzureStackSuffix + "/windowszip/v" + version + common.AzureStackSuffix + "-1int.zip",
common.DashboardAddonName: dashboardImageReference,
common.DashboardMetricsScraperContainerName: dashboardMetricsScraperImageReference,
common.ExecHealthZComponentName: getDefaultImage(common.ExecHealthZComponentName, kubernetesImageBaseType),
common.AddonResizerComponentName: k8sComponent[common.AddonResizerComponentName],
common.MetricsServerAddonName: k8sComponent[common.MetricsServerAddonName],
common.CoreDNSAddonName: getDefaultImage(common.CoreDNSAddonName, kubernetesImageBaseType),
common.CoreDNSAutoscalerName: clusterProportionalAutoscalerImageReference,
common.KubeDNSAddonName: getDefaultImage(common.KubeDNSAddonName, kubernetesImageBaseType),
common.AddonManagerComponentName: k8sComponent[common.AddonManagerComponentName],
common.DNSMasqComponentName: getDefaultImage(common.DNSMasqComponentName, kubernetesImageBaseType),
common.PauseComponentName: pauseImageReference,
common.TillerAddonName: tillerImageReference,
common.ReschedulerAddonName: getDefaultImage(common.ReschedulerAddonName, kubernetesImageBaseType),
common.ACIConnectorAddonName: virtualKubeletImageReference,
common.ClusterAutoscalerAddonName: k8sComponent[common.ClusterAutoscalerAddonName],
common.DNSSidecarComponentName: getDefaultImage(common.DNSSidecarComponentName, kubernetesImageBaseType),
common.BlobfuseFlexVolumeAddonName: blobfuseFlexVolumeImageReference,
common.SMBFlexVolumeAddonName: smbFlexVolumeImageReference,
common.KeyVaultFlexVolumeAddonName: keyvaultFlexVolumeImageReference,
common.IPMASQAgentAddonName: getDefaultImage(common.IPMASQAgentAddonName, kubernetesImageBaseType),
common.AzureNetworkPolicyAddonName: azureNPMContainerImageReference,
common.CalicoTyphaComponentName: calicoTyphaImageReference,
common.CalicoCNIComponentName: calicoCNIImageReference,
common.CalicoNodeComponentName: calicoNodeImageReference,
common.CalicoPod2DaemonComponentName: calicoPod2DaemonImageReference,
common.CalicoClusterAutoscalerComponentName: calicoClusterProportionalAutoscalerImageReference,
common.CiliumAgentContainerName: ciliumAgentImageReference,
common.CiliumCleanStateContainerName: ciliumCleanStateImageReference,
common.CiliumOperatorContainerName: ciliumOperatorImageReference,
common.CiliumEtcdOperatorContainerName: ciliumEtcdOperatorImageReference,
common.AntreaControllerContainerName: antreaControllerImageReference,
common.AntreaAgentContainerName: antreaAgentImageReference,
common.AntreaOVSContainerName: antreaOVSImageReference,
"antrea" + common.AntreaInstallCNIContainerName: antreaInstallCNIImageReference,
common.NMIContainerName: aadPodIdentityNMIImageReference,
common.MICContainerName: aadPodIdentityMICImageReference,
common.AzurePolicyAddonName: azurePolicyImageReference,
common.GatekeeperContainerName: gatekeeperImageReference,
common.NodeProblemDetectorAddonName: nodeProblemDetectorImageReference,
common.CSIProvisionerContainerName: csiProvisionerImageReference,
common.CSIAttacherContainerName: csiAttacherImageReference,
common.CSILivenessProbeContainerName: csiLivenessProbeImageReference,
common.CSILivenessProbeWindowsContainerName: csiLivenessProbeWindowsImageReference,
common.CSINodeDriverRegistrarContainerName: csiNodeDriverRegistrarImageReference,
common.CSINodeDriverRegistrarWindowsContainerName: csiNodeDriverRegistrarWindowsImageReference,
common.CSISnapshotterContainerName: csiSnapshotterImageReference,
common.CSISnapshotControllerContainerName: csiSnapshotControllerImageReference,
common.CSIResizerContainerName: csiResizerImageReference,
common.CSIAzureDiskContainerName: csiAzureDiskImageReference,
common.CSIAzureFileContainerName: csiAzureFileImageReference,
common.KubeFlannelContainerName: kubeFlannelImageReference,
"flannel" + common.FlannelInstallCNIContainerName: flannelInstallCNIImageReference,
common.KubeRBACProxyContainerName: KubeRBACProxyImageReference,
common.ScheduledMaintenanceManagerContainerName: ScheduledMaintenanceManagerImageReference,
"nodestatusfreq": DefaultKubernetesNodeStatusUpdateFrequency,
"nodegraceperiod": DefaultKubernetesCtrlMgrNodeMonitorGracePeriod,
"podeviction": DefaultKubernetesCtrlMgrPodEvictionTimeout,
"routeperiod": DefaultKubernetesCtrlMgrRouteReconciliationPeriod,
"backoffretries": strconv.Itoa(DefaultKubernetesCloudProviderBackoffRetries),
"backoffjitter": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffJitter, 'f', -1, 64),
"backoffduration": strconv.Itoa(DefaultKubernetesCloudProviderBackoffDuration),
"backoffexponent": strconv.FormatFloat(DefaultKubernetesCloudProviderBackoffExponent, 'f', -1, 64),
"ratelimitqps": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPS, 'f', -1, 64),
"ratelimitqpswrite": strconv.FormatFloat(DefaultKubernetesCloudProviderRateLimitQPSWrite, 'f', -1, 64),
"ratelimitbucket": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucket),
"ratelimitbucketwrite": strconv.Itoa(DefaultKubernetesCloudProviderRateLimitBucketWrite),
"gchighthreshold": strconv.Itoa(DefaultKubernetesGCHighThreshold),
"gclowthreshold": strconv.Itoa(DefaultKubernetesGCLowThreshold),
common.NVIDIADevicePluginAddonName: nvidiaDevicePluginImageReference,
common.CSISecretsStoreProviderAzureContainerName: csiSecretsStoreProviderAzureImageReference,
common.CSISecretsStoreDriverContainerName: csiSecretsStoreDriverImageReference,
common.AzureArcOnboardingAddonName: azureArcOnboardingImageReference,
common.AzureKMSProviderComponentName: azureKMSProviderImageReference,
}
case "1.22":
ret = map[string]string{
common.APIServerComponentName: getDefaultImage(common.APIServerComponentName, kubernetesImageBaseType) + ":v" + version,
Expand Down
3 changes: 2 additions & 1 deletion vhd/packer/configure-windows-vhd.ps1
Expand Up @@ -124,7 +124,8 @@ function Get-FilesToCacheOnVHD {
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.19.14/windowszip/v1.19.14-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.20.10/windowszip/v1.20.10-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.21.4/windowszip/v1.21.4-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.22.1/windowszip/v1.22.1-1int.zip"
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.22.1/windowszip/v1.22.1-1int.zip",
"https://kubernetesartifacts.azureedge.net/kubernetes/v1.23.0-alpha.1/windowszip/v1.23.0-alpha.1-1int.zip"
);
"c:\akse-cache\win-vnet-cni\" = @(
"https://kubernetesartifacts.azureedge.net/azure-cni/v1.2.7/binaries/azure-vnet-cni-singletenancy-windows-amd64-v1.2.7.zip",
Expand Down
1 change: 1 addition & 0 deletions vhd/packer/install-dependencies.sh
Expand Up @@ -226,6 +226,7 @@ loadContainerImage "busybox"
echo " - busybox" >> ${VHD_LOGS_FILEPATH}

K8S_VERSIONS="
1.23.0-alpha.1
1.22.1
1.21.4
1.20.10
Expand Down