From a0648b0a5cd8134ab403903fc2d88ae58039d52c Mon Sep 17 00:00:00 2001 From: Praveen Rewar <8457124+praveenrewar@users.noreply.github.com> Date: Mon, 7 Aug 2023 17:21:12 +0530 Subject: [PATCH] Fix tests for kubernetes 1.27.x (#794) Signed-off-by: Praveen Rewar <8457124+praveenrewar@users.noreply.github.com> --- test/e2e/formatted_error_test.go | 26 ++++++++++++++++++- .../ignore_failing_api_services_flag_test.go | 2 +- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/test/e2e/formatted_error_test.go b/test/e2e/formatted_error_test.go index 7dfe27782..c8dc756d4 100644 --- a/test/e2e/formatted_error_test.go +++ b/test/e2e/formatted_error_test.go @@ -62,7 +62,25 @@ kapp: Error: create job/successful-job (batch/v1) namespace: default: (reason: Invalid) `) - _, err := kapp.RunWithOpts([]string{"deploy", "-f", "-", "-a", name}, + minorVersion, err := getServerMinorVersion() + require.NoErrorf(t, err, "Error getting k8s server minor version") + // batch.kubernetes.io/controller-uid and batch.kubernetes.io/job-name annotaions are added + if minorVersion >= 27 { + expectedErr = strings.TrimSpace(` +kapp: Error: create job/successful-job (batch/v1) namespace: default: + Creating resource job/successful-job (batch/v1) namespace: default: + API server says: + Job.batch "successful-job" is invalid: + + - spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{-replaced-, "blah":"balh", -replaced-}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: 'selector' not auto-generated + + - spec.template.metadata.labels: Invalid value: map[string]string{-replaced-, -replaced-, -replaced-, "foo":"foo", "job-name":"successful-job", -replaced-, -replaced-}: 'selector' does not match template 'labels' + + (reason: Invalid) +`) + } + + _, err = kapp.RunWithOpts([]string{"deploy", "-f", "-", "-a", name}, RunOpts{StdinReader: strings.NewReader(yaml1), AllowError: true}) out := strings.ReplaceAll(err.Error(), "`", "'") @@ -73,6 +91,12 @@ kapp: Error: create job/successful-job (batch/v1) namespace: default: replaceUIDs := regexp.MustCompile(`"controller-uid":"[^"]+"`) out = replaceUIDs.ReplaceAllString(out, "-replaced-") + replaceUIDs = regexp.MustCompile(`"batch\.kubernetes\.io\/controller-uid":"[^"]+"`) + out = replaceUIDs.ReplaceAllString(out, "-replaced-") + + replaceUIDs = regexp.MustCompile(`"batch\.kubernetes\.io\/job-name":"[^"]+"`) + out = replaceUIDs.ReplaceAllString(out, "-replaced-") + require.Containsf(t, out, expectedErr, "Expected to see expected err in output, but did not") }) } diff --git a/test/e2e/ignore_failing_api_services_flag_test.go b/test/e2e/ignore_failing_api_services_flag_test.go index 5d0831416..27a176509 100644 --- a/test/e2e/ignore_failing_api_services_flag_test.go +++ b/test/e2e/ignore_failing_api_services_flag_test.go @@ -129,7 +129,7 @@ metadata: AllowError: true, IntoNs: true, StdinReader: strings.NewReader(yaml3)}) require.Errorf(t, err, "Expected error when deploying with failing api service") - require.Contains(t, err.Error(), "unable to retrieve the complete list of server APIs: samplekapptest.com/v1: the server is currently unable to handle the request", + require.Contains(t, err.Error(), "unable to retrieve the complete list of server APIs: samplekapptest.com/v1", "Expected api retrieval error") })