Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.

Commit

Permalink
Add support for k8s v1.8.11 (#2605)
Browse files Browse the repository at this point in the history
* add support for k8s v1.8.11, rationalize version tests

* update kube-dns to v1.14.9 as per release notes

* should only return enabled versions

GetAllSupportedKubernetesVersions() should not return if a version is disabled

# Conflicts:
#	pkg/api/vlabs/validate_test.go
  • Loading branch information
jackfrancis committed Apr 6, 2018
1 parent dc22c91 commit 6a555ba
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 170 deletions.
2 changes: 2 additions & 0 deletions pkg/acsengine/k8s_versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,8 @@ func getKubeConfigs() map[string]map[string]string {

func getVersionOverrides(v string) map[string]string {
switch v {
case "1.8.11":
return map[string]string{"kube-dns": "k8s-dns-kube-dns-amd64:1.14.9"}
case "1.8.9":
return map[string]string{"windowszip": "v1.8.9-2int.zip"}
case "1.8.6":
Expand Down
17 changes: 11 additions & 6 deletions pkg/api/common/versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ var AllKubernetesSupportedVersions = map[string]bool{
"1.8.8": true,
"1.8.9": true,
"1.8.10": true,
"1.8.11": true,
"1.9.0": true,
"1.9.1": true,
"1.9.2": true,
Expand All @@ -59,9 +60,11 @@ func GetSupportedKubernetesVersion(version string) string {

// GetAllSupportedKubernetesVersions returns a slice of all supported Kubernetes versions
func GetAllSupportedKubernetesVersions() []string {
versions := make([]string, 0, len(AllKubernetesSupportedVersions))
for k := range AllKubernetesSupportedVersions {
versions = append(versions, k)
var versions []string
for ver, supported := range AllKubernetesSupportedVersions {
if supported {
versions = append(versions, ver)
}
}
return versions
}
Expand Down Expand Up @@ -197,9 +200,11 @@ func getAllKubernetesWindowsSupportedVersionsMap() map[string]bool {

// GetAllSupportedKubernetesVersionsWindows returns a slice of all supported Kubernetes versions on Windows
func GetAllSupportedKubernetesVersionsWindows() []string {
versions := make([]string, 0, len(AllKubernetesWindowsSupportedVersions))
for k := range AllKubernetesWindowsSupportedVersions {
versions = append(versions, k)
var versions []string
for ver, supported := range AllKubernetesWindowsSupportedVersions {
if supported {
versions = append(versions, ver)
}
}
return versions
}
Expand Down
204 changes: 40 additions & 164 deletions pkg/api/vlabs/validate_test.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package vlabs

import (
"fmt"
"testing"

"github.com/Azure/acs-engine/pkg/api/common"
"github.com/Masterminds/semver"
)

const (
Expand Down Expand Up @@ -560,88 +562,33 @@ func Test_Properties_ValidateContainerRuntime(t *testing.T) {
}

func TestWindowsVersions(t *testing.T) {
p := getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorRelease = "1.6"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Windows version",
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorRelease = "1.7"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorVersion = "1.7.15"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorVersion = "1.7.0"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Windows version",
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorRelease = "1.8"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorVersion = "1.8.10"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorVersion = "1.8.11"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Windows version",
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorRelease = "1.9"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorVersion = "1.9.6"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
for _, version := range common.GetAllSupportedKubernetesVersionsWindows() {
p := getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorVersion = version
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
}
sv, _ := semver.NewVersion(version)
p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorRelease = fmt.Sprintf("%d.%d", sv.Major(), sv.Minor())
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Windows version: %v", err,
)
}
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorVersion = "1.9.7"
p := getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorRelease = "1.4"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Windows version",
)
}

p = getK8sDefaultProperties(true)
p.OrchestratorProfile.OrchestratorRelease = "1.11"
p.OrchestratorProfile.OrchestratorVersion = "1.4.0"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Windows version",
Expand All @@ -650,104 +597,33 @@ func TestWindowsVersions(t *testing.T) {
}

func TestLinuxVersions(t *testing.T) {
p := getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = "1.5"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Linux version",
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = "1.6"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = "1.7"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = "1.7.15"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = "1.8.3"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Linux version",
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = "1.8"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = "1.8.10"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
for _, version := range common.GetAllSupportedKubernetesVersions() {
p := getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = version
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}
sv, _ := semver.NewVersion(version)
p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = fmt.Sprintf("%d.%d", sv.Major(), sv.Minor())
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = "1.8.11"
p := getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = "1.4"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Linux version",
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = "1.9"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorRelease = "1.10"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = "1.10.0-rc.1"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = "1.9.6"
if err := p.Validate(false); err != nil {
t.Errorf(
"should not error on valid Linux version: %v", err,
)
}

p = getK8sDefaultProperties(false)
p.OrchestratorProfile.OrchestratorVersion = "1.9.7"
p.OrchestratorProfile.OrchestratorVersion = "1.4.0"
if err := p.Validate(false); err == nil {
t.Errorf(
"should error on invalid Linux version",
Expand Down

0 comments on commit 6a555ba

Please sign in to comment.