cri streaming option a hardcut - add new staging repositories streaming and cri-streaming#137298
Conversation
|
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the The DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/test pull-kubernetes-unit |
|
/skip |
1 similar comment
|
/skip |
|
/test pull-kubernetes-integration |
Extract streaming code into dedicated staging modules while keeping stable compatibility APIs for external client-go consumers. This commit: - adds `k8s.io/cri-streaming` for CRI exec/attach/portforward server code - adds `k8s.io/streaming` as the canonical home for shared transport primitives (`httpstream`, `spdy`, `wsstream`, runtime helpers) - switches in-tree transport consumers to `k8s.io/streaming` - removes in-tree kubelet CRI streaming package - preserves NO_PROXY/no_proxy CIDR handling in extracted SPDY proxier logic - adds deprecated `k8s.io/apimachinery/pkg/util/httpstream` compatibility wrappers (`httpstream`, `spdy`, `wsstream`) backed by `k8s.io/streaming` - restores exported client-go SPDY/portforward API signatures to apimachinery `httpstream` types for downstream compatibility - adds streaming-native client-go adapters/constructors so in-tree callers can use `k8s.io/streaming` without changing external compatibility APIs - deduplicates SPDY-over-websocket dial negotiation shared by compat and streaming tunneling dialers - logs dropped unknown stream types in `RemoveStreams` adapter fallbacks to improve compatibility-path debuggability - adds integration coverage for the streaming-upgrader-to-client-go-compat adapter path against a real cri-streaming exec endpoint - clarifies kubectl streaming import aliasing to avoid `httpstream` package ambiguity - updates tests, import restrictions, publishing metadata, and vendor/module metadata for the new staging modules Signed-off-by: Davanum Srinivas <davanum@gmail.com>
Remove github.com/stretchr/testify from k8s.io/streaming's test files. testify's assert/yaml subpackage pulls in gopkg.in/yaml.v3, whose test dependencies (gopkg.in/check.v1 → kr/pretty → rogpeppe/go-internal) were propagating into k8s.io/apimachinery and k8s.io/api via the streaming dependency. Removes stretchr/testify, gopkg.in/yaml.v3, gopkg.in/check.v1, github.com/kr/pretty, and github.com/rogpeppe/go-internal from streaming/go.mod. Signed-off-by: Davanum Srinivas <davanum@gmail.com>
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
|
/test pull-publishing-bot-validate |
1 similar comment
|
/test pull-publishing-bot-validate |
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
|
/assign @seans3 @aojea @liggitt @mikebrow @haircommander @tallclair /hold for reviews |
|
@dims: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/skip |
|
/lgtm it will be great to merge soon so we have some time to try to use it from from cri-tool repo or similar to see if we missed anything before code freeze. |
|
LGTM label has been added. DetailsGit tree hash: 30677cad00596f4cf183211a2ab8e155130f5a10 |
|
@SergeyKanzhelev let me wait for the beta.0 cut to wrap up today/early tomorrow - https://kubernetes.slack.com/archives/CJH2GBF7Y/p1773342173228169 and then remove hold on this. there are probably a few more things to tweak, don't want to destabilize the release process by landing this now. |
|
Looks like the release process is stuck! https://kubernetes.slack.com/archives/CJH2GBF7Y/p1773351611764119?thread_ts=1773342173.228169&cid=CJH2GBF7Y will go ahead and land this. /hold cancel |
|
@dims The publishing fails after merging this with Did we miss some step while creating the new staging repo for streaming? |
|
@akhilerm let's try fixing |
What type of PR is this?
/kind cleanup
/kind feature
What this PR does / why we need it:
Extracts CRI streaming and shared streaming transport code into dedicated staging modules, while preserving public client-go API compatibility for downstream users.
k8s.io/cri-streamingk8s.io/streaminghttpstream,spdy,wsstream, and runtime helpers.k8s.io/streamingclient-go,apiserver,kubectl,kube-aggregator, e2e/framework callers, and related tests.staging/src/k8s.io/kubelet/pkg/cri/streaming).NO_PROXY/no_proxyCIDR behavior in the extracted SPDY roundtripper default proxier.k8s.io/apimachinery/pkg/util/httpstream(httpstream,spdy,wsstream) backed byk8s.io/streamingfor external users.k8s.io/apimachinery/pkg/util/httpstreamtypes to avoid downstream breakage.spdy+portforward) so in-tree callers can usek8s.io/streamingtypes directly while compatibility signatures remain stable.RemoveStreamsadapter fallbacks to improve compatibility-path debuggability.httpstreampackage ambiguity.staging/src/k8s.io/apiserver/pkg/util/wsstream/legacy.go.Which issue(s) this PR is related to:
N/A
Special notes for your reviewer:
k8s.io/apimachinery/pkg/util/httpstreamremains as deprecated wrapper APIs for external consumers; in-tree callers are migrated tok8s.io/streaming.Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: