diff --git a/.github/workflows/create-release-branch.yaml b/.github/workflows/create-release-branch.yaml index f9cdfc4e8..21524e8dc 100644 --- a/.github/workflows/create-release-branch.yaml +++ b/.github/workflows/create-release-branch.yaml @@ -104,6 +104,22 @@ jobs: AZURE_CORE_ONLY_SHOW_ERRORS: True BLOCK_SSH: true run: make test-kubernetes + - name: Validate 1.24 no-egress scenario + env: + ORCHESTRATOR_RELEASE: "1.24" + CLUSTER_DEFINITION: "examples/no_outbound.json" + SUBSCRIPTION_ID: ${{ secrets.TEST_AZURE_SUB_ID }} + CLIENT_ID: ${{ secrets.TEST_AZURE_SP_ID }} + CLIENT_SECRET: ${{ secrets.TEST_AZURE_SP_PW }} + LOCATION: "westus2" + TENANT_ID: ${{ secrets.TEST_AZURE_TENANT_ID }} + CLEANUP_ON_EXIT: true + CLEANUP_IF_FAIL: true + SKIP_LOGS_COLLECTION: true + SKIP_TEST: true + AZURE_CORE_ONLY_SHOW_ERRORS: True + BLOCK_SSH: true + run: make test-kubernetes - name: Validate gpu + docker scenario env: SSH_AUTH_SOCK: /tmp/ssh_agent.sock diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3e52ffdd3..b247806f5 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -114,6 +114,22 @@ jobs: AZURE_CORE_ONLY_SHOW_ERRORS: True BLOCK_SSH: true run: make test-kubernetes + - name: Validate 1.24 no-egress scenario + env: + ORCHESTRATOR_RELEASE: "1.24" + CLUSTER_DEFINITION: "examples/no_outbound.json" + SUBSCRIPTION_ID: ${{ secrets.TEST_AZURE_SUB_ID }} + CLIENT_ID: ${{ secrets.TEST_AZURE_SP_ID }} + CLIENT_SECRET: ${{ secrets.TEST_AZURE_SP_PW }} + LOCATION: "westus2" + TENANT_ID: ${{ secrets.TEST_AZURE_TENANT_ID }} + CLEANUP_ON_EXIT: true + CLEANUP_IF_FAIL: true + SKIP_LOGS_COLLECTION: true + SKIP_TEST: true + AZURE_CORE_ONLY_SHOW_ERRORS: True + BLOCK_SSH: true + run: make test-kubernetes - name: Validate gpu + docker scenario env: SSH_AUTH_SOCK: /tmp/ssh_agent.sock diff --git a/.github/workflows/test-cluster-config.yaml b/.github/workflows/test-cluster-config.yaml index 84046a9c4..9d93225c5 100644 --- a/.github/workflows/test-cluster-config.yaml +++ b/.github/workflows/test-cluster-config.yaml @@ -14,9 +14,9 @@ on: required: false default: '' kubernetes_release: - description: 'Which Kubernetes release to test (major.minor only, e.g., "1.23")' + description: 'Which Kubernetes release to test (major.minor only, e.g., "1.24")' required: false - default: '1.23' + default: '1.24' container_runtime: description: 'Which CRI to use (e.g., "containerd" or "docker")' required: false diff --git a/Jenkinsfile b/Jenkinsfile index 43fdea2cd..b5512901d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,7 +7,7 @@ defaultEnv = [ ] + params def k8sVersions = ["1.19", "1.20", "1.21", "1.22", "1.23", "1.24"] -def latestReleasedVersion = "1.23" +def latestReleasedVersion = "1.24" def tasks = [:] def testConfigs = [] diff --git a/pkg/api/common/versions.go b/pkg/api/common/versions.go index ddfdc2b25..aadd24580 100644 --- a/pkg/api/common/versions.go +++ b/pkg/api/common/versions.go @@ -320,8 +320,9 @@ var AllKubernetesSupportedVersions = map[string]bool{ "1.23.3": false, "1.23.4": false, "1.23.5": true, - "1.24.0-alpha.2": true, - "1.24.0-alpha.3": true, + "1.24.0-alpha.2": false, + "1.24.0-alpha.3": false, + "1.24.0": true, } // AllKubernetesSupportedVersionsAzureStack is a hash table of all supported Kubernetes version strings on Azure Stack diff --git a/pkg/api/defaults-controller-manager.go b/pkg/api/defaults-controller-manager.go index b83db9868..867a31064 100644 --- a/pkg/api/defaults-controller-manager.go +++ b/pkg/api/defaults-controller-manager.go @@ -90,6 +90,9 @@ func (cs *ContainerService) setControllerManagerConfig() { // Enable the consumption of local ephemeral storage and also the sizeLimit property of an emptyDir volume. addDefaultFeatureGates(o.KubernetesConfig.ControllerManagerConfig, o.OrchestratorVersion, "1.10.0", "LocalStorageCapacityIsolation=true") + // Enable legacy service account token autogeneration for v1.24.0 + addDefaultFeatureGates(o.KubernetesConfig.ControllerManagerConfig, o.OrchestratorVersion, "1.24.0", "LegacyServiceAccountTokenNoAutoGeneration=false") + // We don't support user-configurable values for the following, // so any of the value assignments below will override user-provided values for key, val := range staticControllerManagerConfig { diff --git a/pkg/api/defaults-controller-manager_test.go b/pkg/api/defaults-controller-manager_test.go index 801ae5bed..f4eb835c5 100644 --- a/pkg/api/defaults-controller-manager_test.go +++ b/pkg/api/defaults-controller-manager_test.go @@ -108,6 +108,16 @@ func TestControllerManagerConfigDefaultFeatureGates(t *testing.T) { t.Fatalf("got unexpected '--feature-gates' Controller Manager config value for \"--feature-gates\": \"LocalStorageCapacityIsolation=true,TaintBasedEvictions=true\": %s", cm["--feature-gates"]) } + + // test 1.24.0 + cs = CreateMockContainerService("testcluster", defaultTestClusterVer, 3, 2, false) + cs.Properties.OrchestratorProfile.OrchestratorVersion = "1.24.0" + cs.setControllerManagerConfig() + cm = cs.Properties.OrchestratorProfile.KubernetesConfig.ControllerManagerConfig + if cm["--feature-gates"] != "LegacyServiceAccountTokenNoAutoGeneration=false,LocalStorageCapacityIsolation=true" { + t.Fatalf("got unexpected '--feature-gates' Controller Manager config value for \"--feature-gates\": \"LegacyServiceAccountTokenNoAutoGeneration=false,LocalStorageCapacityIsolation=true\": %s", + cm["--feature-gates"]) + } } func TestControllerManagerDefaultConfig(t *testing.T) { diff --git a/pkg/api/k8s_versions.go b/pkg/api/k8s_versions.go index 312c4e8e8..a848723b1 100644 --- a/pkg/api/k8s_versions.go +++ b/pkg/api/k8s_versions.go @@ -508,8 +508,8 @@ func getK8sVersionComponents(version, kubernetesImageBaseType string, overrides 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: "oss/kubernetes/azure-cloud-controller-manager:v1.1.3", - common.CloudNodeManagerAddonName: "oss/kubernetes/azure-cloud-node-manager:v1.1.3", + common.CloudControllerManagerComponentName: "oss/kubernetes/azure-cloud-controller-manager:v1.24.0", + common.CloudNodeManagerAddonName: "oss/kubernetes/azure-cloud-node-manager:v1.24.0", common.WindowsArtifactComponentName: "v" + version + "/windowszip/v" + version + "-1int.zip", common.WindowsArtifactAzureStackComponentName: "v" + version + "/windowszip/v" + version + "-1int.zip", common.DashboardAddonName: dashboardImageReference, diff --git a/vhd/packer/configure-windows-vhd.ps1 b/vhd/packer/configure-windows-vhd.ps1 index 67e1891df..ffc5bb602 100644 --- a/vhd/packer/configure-windows-vhd.ps1 +++ b/vhd/packer/configure-windows-vhd.ps1 @@ -126,7 +126,7 @@ function Get-FilesToCacheOnVHD { "https://kubernetesartifacts.azureedge.net/kubernetes/v1.21.12/windowszip/v1.21.12-1int.zip", "https://kubernetesartifacts.azureedge.net/kubernetes/v1.22.8/windowszip/v1.22.8-1int.zip", "https://kubernetesartifacts.azureedge.net/kubernetes/v1.23.5/windowszip/v1.23.5-1int.zip", - "https://kubernetesartifacts.azureedge.net/kubernetes/v1.24.0-alpha.3/windowszip/v1.24.0-alpha.3-1int.zip" + "https://kubernetesartifacts.azureedge.net/kubernetes/v1.24.0/windowszip/v1.24.0-1int.zip" ); "c:\akse-cache\win-vnet-cni\" = @( "https://kubernetesartifacts.azureedge.net/azure-cni/v1.4.13/binaries/azure-vnet-cni-singletenancy-windows-amd64-v1.4.13.zip", diff --git a/vhd/packer/install-dependencies.sh b/vhd/packer/install-dependencies.sh index 14715402d..a41f75b74 100644 --- a/vhd/packer/install-dependencies.sh +++ b/vhd/packer/install-dependencies.sh @@ -219,7 +219,7 @@ loadContainerImage "mcr.microsoft.com/oss/busybox/busybox:1.33.1" echo " - busybox" >> ${VHD_LOGS_FILEPATH} K8S_VERSIONS=" -1.24.0-alpha.3 +1.24.0 1.23.5 1.22.8 1.21.12 @@ -238,6 +238,7 @@ done # Starting with 1.16 we pull cloud-controller-manager and cloud-node-manager CLOUD_MANAGER_VERSIONS=" +1.24.0 1.23.1 1.1.4 1.0.8