From 3a6925a184150cb96094c0e87e4446ff72042a05 Mon Sep 17 00:00:00 2001 From: Alexander Yastrebov Date: Wed, 6 Dec 2023 13:16:14 +0100 Subject: [PATCH] dataclients/kubernetes: disable network backend address validation Disable address validation to prevent errors for existing RouteGroups. Reverts #2719 Signed-off-by: Alexander Yastrebov --- cmd/webhook/admission/admission_test.go | 5 ----- dataclients/kubernetes/definitions/routegroupvalidator.go | 3 ++- .../definitions/testdata/errorwrapdata/errors.log | 7 ------- .../validation/route-with-invalid-backend-with-path.log | 8 -------- 4 files changed, 2 insertions(+), 21 deletions(-) diff --git a/cmd/webhook/admission/admission_test.go b/cmd/webhook/admission/admission_test.go index 1bba80b425..a2ad4b26da 100644 --- a/cmd/webhook/admission/admission_test.go +++ b/cmd/webhook/admission/admission_test.go @@ -133,11 +133,6 @@ func TestRouteGroupAdmitter(t *testing.T) { inputFile: "rg-with-multiple-predicates.json", message: `single predicate expected at \"Method(\\\"GET\\\") && Path(\\\"/\\\")\"\nsingle predicate expected at \" \"`, }, - { - name: "routegroup with invalid backends", - inputFile: "rg-with-invalid-backend-path.json", - message: `backend address \"http://example.com/foo\" does not match scheme://host format\nbackend address \"http://example.com/foo/bar\" does not match scheme://host format\nbackend address \"http://example.com/foo/\" does not match scheme://host format\nbackend address \"/foo\" does not match scheme://host format\nbackend address \"http://example.com/\" does not match scheme://host format\nbackend address \"example.com/\" does not match scheme://host format\nbackend address \"example.com/foo\" does not match scheme://host format\nbackend address \"http://example.com?foo=bar\" does not match scheme://host format\nbackend address \"example.com\" does not match scheme://host format`, - }, } { t.Run(tc.name, func(t *testing.T) { expectedResponse := responseAllowedFmt diff --git a/dataclients/kubernetes/definitions/routegroupvalidator.go b/dataclients/kubernetes/definitions/routegroupvalidator.go index 24b003f0f2..05c5e378e2 100644 --- a/dataclients/kubernetes/definitions/routegroupvalidator.go +++ b/dataclients/kubernetes/definitions/routegroupvalidator.go @@ -38,7 +38,7 @@ func (rgv *RouteGroupValidator) Validate(item *RouteGroupItem) error { var errs []error errs = append(errs, rgv.validateFilters(item)) errs = append(errs, rgv.validatePredicates(item)) - errs = append(errs, rgv.validateBackends(item)) + // errs = append(errs, rgv.validateBackends(item)) return errorsJoin(errs...) } @@ -93,6 +93,7 @@ func (rgv *RouteGroupValidator) validatePredicates(item *RouteGroupItem) error { return errorsJoin(errs...) } +//lint:ignore U1000 Disable address validation to prevent errors for existing RouteGroups func (rgv *RouteGroupValidator) validateBackends(item *RouteGroupItem) error { var errs []error for _, backend := range item.Spec.Backends { diff --git a/dataclients/kubernetes/definitions/testdata/errorwrapdata/errors.log b/dataclients/kubernetes/definitions/testdata/errorwrapdata/errors.log index a710227c99..836138e99f 100644 --- a/dataclients/kubernetes/definitions/testdata/errorwrapdata/errors.log +++ b/dataclients/kubernetes/definitions/testdata/errorwrapdata/errors.log @@ -4,10 +4,3 @@ single predicate expected at "Path(\"/foo\") && Method(\"GET\")" single predicate expected at "" single filter expected at "inlineContent(\"/foo\") -> status(200)" single filter expected at " " -backend address "http://example.com/foo" does not match scheme://host format -backend address "http://example.com/foo/bar" does not match scheme://host format -backend address "http://example.com/foo/" does not match scheme://host format -backend address "/foo" does not match scheme://host format -backend address "example.com/" does not match scheme://host format -backend address "http://example.com?foo=bar" does not match scheme://host format -backend address "example.com" does not match scheme://host format diff --git a/dataclients/kubernetes/definitions/testdata/validation/route-with-invalid-backend-with-path.log b/dataclients/kubernetes/definitions/testdata/validation/route-with-invalid-backend-with-path.log index 04eac42162..e69de29bb2 100644 --- a/dataclients/kubernetes/definitions/testdata/validation/route-with-invalid-backend-with-path.log +++ b/dataclients/kubernetes/definitions/testdata/validation/route-with-invalid-backend-with-path.log @@ -1,8 +0,0 @@ -backend address \\\"http://example\.com/foo\\\" does not match scheme://host format -backend address \\\"http://example\.com/foo/bar\\\" does not match scheme://host format -backend address \\\"/foo\\\" does not match scheme://host format -backend address \\\"/foo/bar\\\" does not match scheme://host format -backend address \\\"example\.com/foo\\\" does not match scheme://host format -backend address \\\"http://example\.com/\\\" does not match scheme://host format -backend address \\\"http://example\.com\?foo=bar\\\" does not match scheme://host format -backend address \\\"example\.com\\\" does not match scheme://host format