Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write Pod- & ServiceProxy Test - +12 endpoint coverage #94786

Merged
merged 1 commit into from
Oct 22, 2021

Conversation

riaankleinhans
Copy link
Contributor

@riaankleinhans riaankleinhans commented Sep 14, 2020

What type of PR is this?
/kind cleanup

What this PR does / why we need it:
This PR adds a test to test the following untested endpoints:
connectCoreV1DeleteNamespacedPodProxy
connectCoreV1DeleteNamespacedServiceProxy
connectCoreV1OptionsNamespacedPodProxy
connectCoreV1OptionsNamespacedServiceProxy
connectCoreV1PatchNamespacedPodProxy
connectCoreV1PatchNamespacedServiceProxy
connectCoreV1PostNamespacedPodProxy
connectCoreV1PostNamespacedServiceProxy
connectCoreV1PutNamespacedPodProxy
connectCoreV1PutNamespacedServiceProxy
connectCoreV1HeadNamespacedPodProxy
onnectCoreV1HeadNamespacedServiceProxy

Which issue(s) this PR fixes:
Fixes #92949

Testgrid Link:

Special notes for your reviewer:
Adds +12 endpoint test coverage (good for conformance)

Does this PR introduce a user-facing change?:

NONE

Release note:

NONE

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:

NONE

/sig testing
/sig architecture
/area conformance

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. sig/testing Categorizes an issue or PR as relevant to SIG Testing. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. area/conformance Issues or PRs related to kubernetes conformance tests needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Sep 14, 2020
@k8s-ci-robot k8s-ci-robot added area/test sig/network Categorizes an issue or PR as relevant to SIG Network. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Sep 14, 2020
@riaankleinhans
Copy link
Contributor Author

/assign @heyste

@heyste
Copy link
Member

heyste commented Sep 15, 2020

Kubernetes e2e suite: [sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Inline-volume (default fs)] volumes should store data expand_less
test/e2e/storage/testsuites/volumes.go:151
Sep 15 03:15:31.875: pod nfs-server's IP should not be empty
Expected
    <int>: 0
not to be zero-valued
test/e2e/framework/volume/fixtures.go:232

/test pull-kubernetes-e2e-gce-ubuntu-containerd

Copy link
Member

@oomichi oomichi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/cc @oomichi
/retest

framework.ExpectNoError(err, "processing response")
defer resp.Body.Close()

framework.Logf("Processing %s request...", httpVerb)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: This Logf seems redundant because httpVerb is output on the following line 334.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

framework.Logf("Request String: %v", r.URL().String())
// Request returns 500 status - Can this be diabled?
_, err := r.Do(context.Background()).StatusCode(&statusCode).Raw()
framework.Logf("RESTClient() StatusCode: %d", statusCode)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just a question: Do we expect 500 as a status code here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was hoping to use the normal RESTClient to check that each request was being redirected. As the RESTClient auto follows the redirection it looks like using the http.Client is the only option to catch the 301 status code.

I'll remove that section of the test as it was more for reference/discussion point on why http.Client was needed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that is a good idea. The removal will be able to make the test more clear and simple.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

@heyste heyste force-pushed the proxy-301-redirect branch 2 times, most recently from 98114d3 to c07d671 Compare September 16, 2020 04:50
@aojea
Copy link
Member

aojea commented Sep 16, 2020

IPv6 does not work because apiserver panics

020-09-16T05:06:19.386243491Z stderr F I0916 05:06:19.385688       1 get.go:259] "Starting watch" path="/api/v1/services" resourceVersion="18094" labels="" fields="" timeout="7m20s"
2020-09-16T05:06:19.388598342Z stderr F I0916 05:06:19.388358       1 httplog.go:89] "HTTP" verb="DELETE" URI="/api/v1/namespaces/proxy-6090/pods/proxy-pod-target/proxy" latency="3.789636ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:57362" resp=0
2020-09-16T05:06:19.389235543Z stderr F E0916 05:06:19.388755       1 runtime.go:78] Observed a panic: "invalid memory address or nil pointer dereference" (runtime error: invalid memory address or nil pointer dereference)
2020-09-16T05:06:19.389253958Z stderr F goroutine 648196 [running]:
2020-09-16T05:06:19.38926282Z stderr F k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime.logPanic(0x41b8b80, 0x74804c0)
2020-09-16T05:06:19.389268964Z stderr F 	staging/src/k8s.io/apimachinery/pkg/util/runtime/runtime.go:74 +0xa6
2020-09-16T05:06:19.389275113Z stderr F k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0xc017e5bb38, 0x1, 0x1)
2020-09-16T05:06:19.389280584Z stderr F 	staging/src/k8s.io/apimachinery/pkg/util/runtime/runtime.go:48 +0x89
2020-09-16T05:06:19.389285973Z stderr F panic(0x41b8b80, 0x74804c0)
2020-09-16T05:06:19.38929442Z stderr F 	GOROOT/src/runtime/panic.go:969 +0x175
2020-09-16T05:06:19.389300669Z stderr F k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/proxy.normalizeLocation(0xc01d04db00, 0xc017e597b0)
2020-09-16T05:06:19.389306973Z stderr F 	staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go:168 +0x4a
2020-09-16T05:06:19.389313714Z stderr F k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/proxy.NewUpgradeAwareHandler(...)
2020-09-16T05:06:19.389319406Z stderr F 	staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go:178
2020-09-16T05:06:19.389325343Z stderr F k8s.io/kubernetes/pkg/registry/core/pod/rest.newThrottledUpgradeAwareProxyHandler(0xc01d04db00, 0x53152c0, 0xc00026c000, 0x1, 0x5325ce0, 0xc0160b5040, 0xc01b1fbd8a)
2020-09-16T05:06:19.389333557Z stderr F 	pkg/registry/core/pod/rest/subresources.go:195 +0xb7
2020-09-16T05:06:19.389354873Z stderr F k8s.io/kubernetes/pkg/registry/core/pod/rest.(*ProxyREST).Connect(0xc0011b3580, 0x537cc60, 0xc00716e2d0, 0xc01b1fbd8a, 0x10, 0x531c3a0, 0xc00716e300, 0x5325ce0, 0xc0160b5040, 0xc0007d0000, ...)
2020-09-16T05:06:19.389361124Z stderr F 	pkg/registry/core/pod/rest/subresources.go:76 +0x26c
2020-09-16T05:06:19.389366335Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/handlers.ConnectResource.func1.1()
2020-09-16T05:06:19.389371874Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go:186 +0x185
2020-09-16T05:06:19.389378048Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/metrics.RecordLongRunning(0xc017b38300, 0xc01b1c5290, 0x4a157be, 0x9, 0xc00bc67f08)
2020-09-16T05:06:19.389383566Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go:338 +0x293
2020-09-16T05:06:19.389389109Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/handlers.ConnectResource.func1(0x53772a0, 0xc0100d3780, 0xc017b38300)
2020-09-16T05:06:19.389396178Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go:185 +0x472
2020-09-16T05:06:19.389401925Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints.restfulConnectResource.func1(0xc00716e1b0, 0xc01503fdc0)
2020-09-16T05:06:19.38940764Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/installer.go:1212 +0x99
2020-09-16T05:06:19.38941309Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/metrics.InstrumentRouteFunc.func1(0xc00716e1b0, 0xc01503fdc0)
2020-09-16T05:06:19.389418657Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go:387 +0x282
2020-09-16T05:06:19.38942411Z stderr F k8s.io/kubernetes/vendor/github.com/emicklei/go-restful.(*Container).dispatch(0xc00170a000, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389429324Z stderr F 	vendor/github.com/emicklei/go-restful/container.go:288 +0xa84
2020-09-16T05:06:19.389434652Z stderr F k8s.io/kubernetes/vendor/github.com/emicklei/go-restful.(*Container).Dispatch(...)
2020-09-16T05:06:19.389439729Z stderr F 	vendor/github.com/emicklei/go-restful/container.go:199
2020-09-16T05:06:19.389445806Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server.director.ServeHTTP(0x4a22dc3, 0xe, 0xc00170a000, 0xc000bde150, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389451157Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/handler.go:146 +0x539
2020-09-16T05:06:19.389456631Z stderr F k8s.io/kubernetes/vendor/k8s.io/kube-aggregator/pkg/apiserver.(*proxyHandler).ServeHTTP(0xc0023a2a00, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389461737Z stderr F 	staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go:121 +0x183
2020-09-16T05:06:19.389467527Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/mux.(*pathHandler).ServeHTTP(0xc0121e6a00, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389473312Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/mux/pathrecorder.go:248 +0x3db
2020-09-16T05:06:19.389478372Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/mux.(*PathRecorderMux).ServeHTTP(0xc0084fea80, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389483914Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/mux/pathrecorder.go:234 +0x8c
2020-09-16T05:06:19.389489359Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server.director.ServeHTTP(0x4a26286, 0xf, 0xc00122fd40, 0xc0084fea80, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389628869Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/handler.go:154 +0x74d
2020-09-16T05:06:19.389638611Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithAuthorization.func1(0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389681749Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/authorization.go:64 +0x563
2020-09-16T05:06:19.389687383Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008538080, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389747783Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389754495Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.WithMaxInFlightLimit.func2(0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389759771Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go:140 +0x582
2020-09-16T05:06:19.389764941Z stderr F net/http.HandlerFunc.ServeHTTP(0xc0085363f0, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389770244Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389775425Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithImpersonation.func1(0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389780387Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go:50 +0x2306
2020-09-16T05:06:19.389785296Z stderr F net/http.HandlerFunc.ServeHTTP(0xc0085380c0, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.389791031Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389796504Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithAuthentication.func1(0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.389801704Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/authentication.go:70 +0x672
2020-09-16T05:06:19.389806756Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008530280, 0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.389811739Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389834401Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.(*timeoutHandler).ServeHTTP(0xc0085158c0, 0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.389840124Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/timeout.go:92 +0x42a
2020-09-16T05:06:19.389845408Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.WithWaitGroup.func1(0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.389851086Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/waitgroup.go:59 +0x137
2020-09-16T05:06:19.389856346Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008536420, 0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.389861637Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389867117Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithRequestInfo.func1(0x5377420, 0xc01503fc00, 0xc017b38100)
2020-09-16T05:06:19.389872104Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/requestinfo.go:39 +0x269
2020-09-16T05:06:19.38987758Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008536450, 0x5377420, 0xc01503fc00, 0xc017b38100)
2020-09-16T05:06:19.389882578Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389888946Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithWarningRecorder.func1(0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.389894641Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/warning.go:35 +0x1a7
2020-09-16T05:06:19.389900321Z stderr F net/http.HandlerFunc.ServeHTTP(0xc0085158e0, 0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.389905654Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389911066Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithCacheControl.func1(0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.389916155Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/cachecontrol.go:31 +0xa8
2020-09-16T05:06:19.389921706Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008515900, 0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.389926848Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389931783Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/httplog.WithLogging.func1(0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.389937083Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/httplog/httplog.go:91 +0x2f2
2020-09-16T05:06:19.389948173Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008515920, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.389953588Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389958311Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.withPanicRecovery.func1(0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.389962924Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/wrap.go:51 +0xe6
2020-09-16T05:06:19.389967361Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008515940, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.389972323Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.389977737Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server.(*APIServerHandler).ServeHTTP(0xc008536480, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.389982929Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/handler.go:189 +0x51
2020-09-16T05:06:19.389988805Z stderr F net/http.serverHandler.ServeHTTP(0xc005797260, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.389994496Z stderr F 	GOROOT/src/net/http/server.go:2843 +0xa3
2020-09-16T05:06:19.389999515Z stderr F net/http.(*conn).serve(0xc01b3bab40, 0x537cba0, 0xc01c5b70c0)
2020-09-16T05:06:19.390004927Z stderr F 	GOROOT/src/net/http/server.go:1925 +0x8ad
2020-09-16T05:06:19.390010069Z stderr F created by net/http.(*Server).Serve
2020-09-16T05:06:19.390015177Z stderr F 	GOROOT/src/net/http/server.go:2969 +0x36c
2020-09-16T05:06:19.390020174Z stderr F E0916 05:06:19.388823       1 wrap.go:39] apiserver panic'd on DELETE /api/v1/namespaces/proxy-6090/pods/proxy-pod-target/proxy
2020-09-16T05:06:19.390037314Z stderr F http: panic serving 172.18.0.1:57362: runtime error: invalid memory address or nil pointer dereference
2020-09-16T05:06:19.390043218Z stderr F goroutine 648196 [running]:
2020-09-16T05:06:19.390048597Z stderr F net/http.(*conn).serve.func1(0xc01b3bab40)
2020-09-16T05:06:19.390053316Z stderr F 	GOROOT/src/net/http/server.go:1801 +0x147
2020-09-16T05:06:19.390057117Z stderr F panic(0x41b8b80, 0x74804c0)
2020-09-16T05:06:19.390061552Z stderr F 	GOROOT/src/runtime/panic.go:975 +0x3e9
2020-09-16T05:06:19.390066664Z stderr F k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0xc017e5bb38, 0x1, 0x1)
2020-09-16T05:06:19.390072096Z stderr F 	staging/src/k8s.io/apimachinery/pkg/util/runtime/runtime.go:55 +0x10c
2020-09-16T05:06:19.390077166Z stderr F panic(0x41b8b80, 0x74804c0)
2020-09-16T05:06:19.39009055Z stderr F 	GOROOT/src/runtime/panic.go:969 +0x175
2020-09-16T05:06:19.390096084Z stderr F k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/proxy.normalizeLocation(0xc01d04db00, 0xc017e597b0)
2020-09-16T05:06:19.390101341Z stderr F 	staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go:168 +0x4a
2020-09-16T05:06:19.390106405Z stderr F k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/proxy.NewUpgradeAwareHandler(...)
2020-09-16T05:06:19.390111856Z stderr F 	staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go:178
2020-09-16T05:06:19.390116598Z stderr F k8s.io/kubernetes/pkg/registry/core/pod/rest.newThrottledUpgradeAwareProxyHandler(0xc01d04db00, 0x53152c0, 0xc00026c000, 0x1, 0x5325ce0, 0xc0160b5040, 0xc01b1fbd8a)
2020-09-16T05:06:19.390121989Z stderr F 	pkg/registry/core/pod/rest/subresources.go:195 +0xb7
2020-09-16T05:06:19.390127183Z stderr F k8s.io/kubernetes/pkg/registry/core/pod/rest.(*ProxyREST).Connect(0xc0011b3580, 0x537cc60, 0xc00716e2d0, 0xc01b1fbd8a, 0x10, 0x531c3a0, 0xc00716e300, 0x5325ce0, 0xc0160b5040, 0xc0007d0000, ...)
2020-09-16T05:06:19.390132627Z stderr F 	pkg/registry/core/pod/rest/subresources.go:76 +0x26c
2020-09-16T05:06:19.390139848Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/handlers.ConnectResource.func1.1()
2020-09-16T05:06:19.390144891Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go:186 +0x185
2020-09-16T05:06:19.390149866Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/metrics.RecordLongRunning(0xc017b38300, 0xc01b1c5290, 0x4a157be, 0x9, 0xc00bc67f08)
2020-09-16T05:06:19.390159907Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go:338 +0x293
2020-09-16T05:06:19.390165896Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/handlers.ConnectResource.func1(0x53772a0, 0xc0100d3780, 0xc017b38300)
2020-09-16T05:06:19.390171097Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/handlers/rest.go:185 +0x472
2020-09-16T05:06:19.390176423Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints.restfulConnectResource.func1(0xc00716e1b0, 0xc01503fdc0)
2020-09-16T05:06:19.390182169Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/installer.go:1212 +0x99
2020-09-16T05:06:19.390187338Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/metrics.InstrumentRouteFunc.func1(0xc00716e1b0, 0xc01503fdc0)
2020-09-16T05:06:19.390194483Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/metrics/metrics.go:387 +0x282
2020-09-16T05:06:19.39019976Z stderr F k8s.io/kubernetes/vendor/github.com/emicklei/go-restful.(*Container).dispatch(0xc00170a000, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390204737Z stderr F 	vendor/github.com/emicklei/go-restful/container.go:288 +0xa84
2020-09-16T05:06:19.390210025Z stderr F k8s.io/kubernetes/vendor/github.com/emicklei/go-restful.(*Container).Dispatch(...)
2020-09-16T05:06:19.390216634Z stderr F 	vendor/github.com/emicklei/go-restful/container.go:199
2020-09-16T05:06:19.39022166Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server.director.ServeHTTP(0x4a22dc3, 0xe, 0xc00170a000, 0xc000bde150, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390226823Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/handler.go:146 +0x539
2020-09-16T05:06:19.390232276Z stderr F k8s.io/kubernetes/vendor/k8s.io/kube-aggregator/pkg/apiserver.(*proxyHandler).ServeHTTP(0xc0023a2a00, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.39023771Z stderr F 	staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go:121 +0x183
2020-09-16T05:06:19.390242906Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/mux.(*pathHandler).ServeHTTP(0xc0121e6a00, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.39024755Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/mux/pathrecorder.go:248 +0x3db
2020-09-16T05:06:19.390255077Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/mux.(*PathRecorderMux).ServeHTTP(0xc0084fea80, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.39026083Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/mux/pathrecorder.go:234 +0x8c
2020-09-16T05:06:19.390266569Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server.director.ServeHTTP(0x4a26286, 0xf, 0xc00122fd40, 0xc0084fea80, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390271946Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/handler.go:154 +0x74d
2020-09-16T05:06:19.390277536Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithAuthorization.func1(0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390282661Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/authorization.go:64 +0x563
2020-09-16T05:06:19.390288326Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008538080, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390293092Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390314183Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.WithMaxInFlightLimit.func2(0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390320084Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/maxinflight.go:140 +0x582
2020-09-16T05:06:19.390325273Z stderr F net/http.HandlerFunc.ServeHTTP(0xc0085363f0, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390330771Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390336494Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithImpersonation.func1(0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390341477Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/impersonation.go:50 +0x2306
2020-09-16T05:06:19.390352506Z stderr F net/http.HandlerFunc.ServeHTTP(0xc0085380c0, 0x5377420, 0xc01503fc00, 0xc017b38300)
2020-09-16T05:06:19.390357997Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390367136Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithAuthentication.func1(0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.390372195Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/authentication.go:70 +0x672
2020-09-16T05:06:19.390377188Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008530280, 0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.390382411Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390387376Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.(*timeoutHandler).ServeHTTP(0xc0085158c0, 0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.390392623Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/timeout.go:92 +0x42a
2020-09-16T05:06:19.39039775Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.WithWaitGroup.func1(0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.390403258Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/waitgroup.go:59 +0x137
2020-09-16T05:06:19.390408841Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008536420, 0x5377420, 0xc01503fc00, 0xc017b38200)
2020-09-16T05:06:19.390413799Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390418686Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithRequestInfo.func1(0x5377420, 0xc01503fc00, 0xc017b38100)
2020-09-16T05:06:19.390423874Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/requestinfo.go:39 +0x269
2020-09-16T05:06:19.390427726Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008536450, 0x5377420, 0xc01503fc00, 0xc017b38100)
2020-09-16T05:06:19.390430998Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390434256Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithWarningRecorder.func1(0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.390437441Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/warning.go:35 +0x1a7
2020-09-16T05:06:19.390440897Z stderr F net/http.HandlerFunc.ServeHTTP(0xc0085158e0, 0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.390444102Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390448278Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithCacheControl.func1(0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.390452918Z stderr F 	staging/src/k8s.io/apiserver/pkg/endpoints/filters/cachecontrol.go:31 +0xa8
2020-09-16T05:06:19.390458116Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008515900, 0x5377420, 0xc01503fc00, 0xc017b38000)
2020-09-16T05:06:19.390463374Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390468434Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/httplog.WithLogging.func1(0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.390473508Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/httplog/httplog.go:91 +0x2f2
2020-09-16T05:06:19.390478398Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008515920, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.390483148Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390487816Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.withPanicRecovery.func1(0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.390492318Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/filters/wrap.go:51 +0xe6
2020-09-16T05:06:19.390496728Z stderr F net/http.HandlerFunc.ServeHTTP(0xc008515940, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.390501433Z stderr F 	GOROOT/src/net/http/server.go:2042 +0x44
2020-09-16T05:06:19.390506051Z stderr F k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server.(*APIServerHandler).ServeHTTP(0xc008536480, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.390516102Z stderr F 	staging/src/k8s.io/apiserver/pkg/server/handler.go:189 +0x51
2020-09-16T05:06:19.390520851Z stderr F net/http.serverHandler.ServeHTTP(0xc005797260, 0x5378ca0, 0xc018e7f420, 0xc01759bf00)
2020-09-16T05:06:19.390525813Z stderr F 	GOROOT/src/net/http/server.go:2843 +0xa3
2020-09-16T05:06:19.390530348Z stderr F net/http.(*conn).serve(0xc01b3bab40, 0x537cba0, 0xc01c5b70c0)
2020-09-16T05:06:19.390535228Z stderr F 	GOROOT/src/net/http/server.go:1925 +0x8ad
2020-09-16T05:06:19.390538683Z stderr F created by net/http.(*Server).Serve
2020-09-16T05:06:19.390542115Z stderr F 	GOROOT/src/net/http/server.go:2969 +0x36c
2020-09-16T05:06:19.394071008Z stderr F I0916 05:06:19.393924       1 httplog.go:89] "HTTP" verb="GET" URI="/api/v1/namespaces/proxy-6090/events" latency="2.746203ms" userAgent="e2e.test/v1.20.0 (linux/amd64) kubernetes/398a079 -- [sig-network] Proxy version v1 proxy connection returns a series of 301 redirections for a pod" srcIP="172.18.0.1:45792" resp=200
2020-09-16T05:06:19.403316983Z stderr F I0916 05:06:19.402935       1 httplog.go:89] "HTTP" verb="GET" URI="/api/v1/namespaces/proxy-6090/pods" latency="7.923573ms" userAgent="e2e.test/v1.20.0 (linux/amd64) kubernetes/398a079 -- [sig-network] Proxy version v1 proxy connection returns a series of 301 redirections for a pod" srcIP="172.18.0.1:45792" resp=200

full logs in the job https://storage.googleapis.com/kubernetes-jenkins/pr-logs/pull/94786/pull-kubernetes-e2e-kind-ipv6/1306093153157124097/artifacts/logs/kind-control-plane/pods/kube-system_kube-apiserver-kind-control-plane_58e7499bb5b3c6287cc499e52bdc3bd3/kube-apiserver/0.log.20200916-050625

cc: @liggitt

@heyste
Copy link
Member

heyste commented Sep 16, 2020

Thanks for the pointer @aojea

Looks like the following code (from Line 294) doesn't work for IPv6. 😕

			// Disable 301 automatic follow
			client := &http.Client{
				CheckRedirect: func(req *http.Request, via []*http.Request) error {
					return http.ErrUseLastResponse
				},
				Transport: &http.Transport{TLSClientConfig: tlsCfg},
			}

Looking at the IPv4 logs, the response codes is what it should be.

2020-09-16T05:11:06.672328108Z stderr F I0916 05:11:06.672130       1 httplog.go:89] "HTTP" verb="DELETE" URI="/api/v1/namespaces/proxy-440/pods/proxy-pod-target/proxy" latency="3.836795ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:52126"resp=301
2020-09-16T05:11:06.675146022Z stderr F I0916 05:11:06.675026       1 httplog.go:89] "HTTP" verb="GET" URI="/api/v1/namespaces/proxy-440/pods/proxy-pod-target/proxy" latency="1.681079ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:52126" resp=301
2020-09-16T05:11:06.680158719Z stderr F I0916 05:11:06.679793       1 httplog.go:89] "HTTP" verb="HEAD" URI="/api/v1/namespaces/proxy-440/pods/proxy-pod-target/proxy" latency="3.449806ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:52126" resp=301
2020-09-16T05:11:06.683521858Z stderr F I0916 05:11:06.683337       1 httplog.go:89] "HTTP" verb="OPTIONS" URI="/api/v1/namespaces/proxy-440/pods/proxy-pod-target/proxy" latency="2.209001ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:52126" resp=301
2020-09-16T05:11:06.688378051Z stderr F I0916 05:11:06.688198       1 httplog.go:89] "HTTP" verb="PATCH" URI="/api/v1/namespaces/proxy-440/pods/proxy-pod-target/proxy" latency="3.746757ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:52126" resp=301
2020-09-16T05:11:06.693533759Z stderr F I0916 05:11:06.693370       1 httplog.go:89] "HTTP" verb="POST" URI="/api/v1/namespaces/proxy-440/pods/proxy-pod-target/proxy" latency="4.018599ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:52126" resp=301
2020-09-16T05:11:06.696038846Z stderr F I0916 05:11:06.695923       1 httplog.go:89] "HTTP" verb="PUT" URI="/api/v1/namespaces/proxy-440/pods/proxy-pod-target/proxy" latency="1.758351ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:52126" resp=301

but, IPv6 doesn't look like it's returning a 301 and just "auto follows" and then breaks

2020-09-16T05:06:19.388598342Z stderr F I0916 05:06:19.388358       1 httplog.go:89] "HTTP" verb="DELETE" URI="/api/v1/namespaces/proxy-6090/pods/proxy-pod-target/proxy" latency="3.789636ms" userAgent="Go-http-client/1.1" srcIP="172.18.0.1:57362" resp=0

@liggitt
Copy link
Member

liggitt commented Sep 16, 2020

issue is here:

// normalizeLocation returns the result of parsing the full URL, with scheme set to http if missing
func normalizeLocation(location *url.URL) *url.URL {
normalized, _ := url.Parse(location.String())
if len(normalized.Scheme) == 0 {

introduced in https://github.com/kubernetes/kubernetes/pull/52065/files#diff-16a26bb0d342318c6eb3d03e6c5756e9

something about the passed-in URL will not parse correctly, the error is not checked, and the parsed URL is nil

@liggitt
Copy link
Member

liggitt commented Sep 16, 2020

added debug logging in #94832

@liggitt
Copy link
Member

liggitt commented Sep 16, 2020

apart from the test failure/panic issues, I am not sure these are tests we'd want in conformance. 301 proxy redirect is something being debated in kubernetes/enhancements#1908, and 301 responses on non-GET requests probably don't make sense to return, let alone add to conformance

@liggitt
Copy link
Member

liggitt commented Sep 16, 2020

strangely, got a pass on the debug PR that added logging

/retest pull-kubernetes-e2e-kind-ipv6

@kubernetes kubernetes deleted a comment from k8s-ci-robot Sep 16, 2020
@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Oct 19, 2021
@riaankleinhans riaankleinhans changed the title Write PodProxy Redirect Test - +7 endpoint coverage Write PodProxy Redirect Test - +12 endpoint coverage Oct 19, 2021
@riaankleinhans riaankleinhans changed the title Write PodProxy Redirect Test - +12 endpoint coverage Write Pod- & ServiceProxy Redirect Test - +12 endpoint coverage Oct 19, 2021
@riaankleinhans riaankleinhans changed the title Write Pod- & ServiceProxy Redirect Test - +12 endpoint coverage Write Pod- & ServiceProxy Test - +12 endpoint coverage Oct 19, 2021
@riaankleinhans
Copy link
Contributor Author

/remove-sig testing
/remove-sig architecture
/remove-area conformance

@k8s-ci-robot k8s-ci-robot removed sig/testing Categorizes an issue or PR as relevant to SIG Testing. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. area/conformance Issues or PRs related to kubernetes conformance tests labels Oct 19, 2021
@riaankleinhans
Copy link
Contributor Author

/assign @aojea @liggitt

@heyste did some great work with #95128 which has now merged.
This test was updated to now cover both PodProxy & ServiceProxy endpoints. (12 Total)
Can you please review and help us get it on testgrid soon.

Transport: restTransport,
}

// All methods for Pod ProxyWithPath return 200
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is ProxyWithPath a leftover from using the test as base of this?
framework.ConformanceIt("A set of valid responses are returned for both pod and service ProxyWithPath", func() {

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good spotting. Will update that comment.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


resp, err := client.Do(request)
framework.ExpectNoError(err, "processing response")
defer resp.Body.Close()
Copy link
Member

@aojea aojea Oct 19, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will not close the Body until we exit the test, right?
There is also another client.Do below, should this be enclosed on brackets so the defer close the body before we move to the next step?

{
   resp, err := client.Do(request)
  framework.ExpectNoError(err, "processing response")
  defer resp.Body.Close()
 framework.Logf("http.Client request:%s StatusCode:%d", redirectVerb, resp.StatusCode)
 framework.ExpectEqual(resp.StatusCode, 301, "The resp.StatusCode returned: %d", resp.StatusCode)
}

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After testing defer within a set of brackets they are processed still at the end of the function. I'll look at creating another function to contain each request to the pod and service endpoints.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each request is now done from a new function validateRedirectRequest

@k8s-ci-robot k8s-ci-robot added the sig/testing Categorizes an issue or PR as relevant to SIG Testing. label Oct 20, 2021
@heyste
Copy link
Member

heyste commented Oct 20, 2021

/test pull-kubernetes-e2e-kind
unrelated flake

wrapper.sh] [TEST] Running Test Command: `bash -c curl -sSL https://kind.sigs.k8s.io/dl/latest/linux-amd64.tgz | tar xvfz - -C "${PATH%%:*}/" && e2e-k8s.sh` ...
curl: (7) Failed to connect to kind.sigs.k8s.io port 443: Connection refused 

framework.Logf("Starting http.Client for %s", urlString)

pollErr := wait.PollImmediate(requestRetryPeriod, requestRetryTimeout, validateProxyVerbRequest(client, urlString, httpVerb, msg))
framework.ExpectNoError(err, "Pod didn't start within time out period. %v", pollErr)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
framework.ExpectNoError(err, "Pod didn't start within time out period. %v", pollErr)
framework.ExpectNoError(pollErr, "Pod didn't start within time out period. %v", pollErr)

we should check pollErr , right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

@aojea
Copy link
Member

aojea commented Oct 20, 2021

/lgtm
@liggitt for approval

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 20, 2021
@liggitt
Copy link
Member

liggitt commented Oct 22, 2021

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: liggitt, Riaankl

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 22, 2021
@k8s-ci-robot k8s-ci-robot merged commit 491d9ae into kubernetes:master Oct 22, 2021
conformance-definition automation moved this from In Progress PRs to Done Oct 22, 2021
@k8s-ci-robot k8s-ci-robot added this to the v1.23 milestone Oct 22, 2021
@riaankleinhans riaankleinhans moved this from Done to Promotion PRs Needing Two Weeks (flake free) in conformance-definition Oct 25, 2021
@riaankleinhans riaankleinhans moved this from Promotion PRs Needing Two Weeks (flake free) to Done in conformance-definition Jan 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. area/test cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. release-note-none Denotes a PR that doesn't merit a release note. sig/network Categorizes an issue or PR as relevant to SIG Network. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
Development

Successfully merging this pull request may close these issues.

Write Pod- & SeviceProxy Test - +12 endpoint coverage
8 participants