don't panic on pre-release k8s version

pull/16158/head
Predrag Rogic 2023-03-26 00:13:11 +00:00
parent 3b00a4cec9
commit 082943b5e3
No known key found for this signature in database
GPG Key ID: F1FF5748C4855229
1 changed files with 10 additions and 5 deletions

View File

@ -183,12 +183,17 @@ func validateIngressAddon(ctx context.Context, t *testing.T, profile string) {
ingressYaml := "nginx-ingress-v1.yaml"
ingressDNSYaml := "ingress-dns-example-v1.yaml"
v, err := client.ServerVersion()
if err != nil {
if err == nil {
// for pre-release k8s version, remove any "+" suffix in minor version to be semver-compliant and not panic
// ref: https://github.com/kubernetes/minikube/pull/16145#issuecomment-1483283260
minor := strings.TrimSuffix(v.Minor, "+")
if semver.MustParseRange("<1.19.0")(semver.MustParse(fmt.Sprintf("%s.%s.0", v.Major, minor))) {
// legacy: k8s < v1.19 & ingress api v1beta1
ingressYaml = "nginx-ingress-v1beta1.yaml"
ingressDNSYaml = "ingress-dns-example-v1beta1.yaml"
}
} else {
t.Log("failed to get k8s version, assuming v1.19+ => ingress api v1")
} else if semver.MustParseRange("<1.19.0")(semver.MustParse(fmt.Sprintf("%s.%s.0", v.Major, v.Minor))) {
// legacy: k8s < v1.19 & ingress api v1beta1
ingressYaml = "nginx-ingress-v1beta1.yaml"
ingressDNSYaml = "ingress-dns-example-v1beta1.yaml"
}
// create networking.k8s.io/v1 ingress