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
Add support for building Windows pause image #91452
Add support for building Windows pause image #91452
Conversation
dac78ff
to
17fdb74
Compare
17fdb74
to
50dd4fd
Compare
7dc389d
to
db9e589
Compare
/cc @dims |
2585a1d
to
ba4e395
Compare
/test pull-kubernetes-integration |
ba4e395
to
557c9f1
Compare
/retest |
cc @endocrimes |
557c9f1
to
c1d24df
Compare
/test pull-kubernetes-e2e-gce-100-performance |
/assign @BenTheElder @cblecker |
I assume you mean for wincat is being used for port-forwarding, and this is the current usage [1]. We've been including wincat into our Windows pause images for a while [2]. Because of this, the port-forwarding tests work. [1] https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/dockershim/docker_streaming_windows.go#L31 |
Is it used for port-forwarding in containerd as well? In either case, I think we should add a comment in the soruce or a README.md about this, if the runtimes no longer need it for port forwarding (such as with socat on linux) we might want to remove it in the future. As it stands someone will have to go spelunking to find this PR's descriptoin. |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: BenTheElder, claudiubelu, dims 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 |
That's a question I've raised myself yesterday too. I've tried it on a containerd env, and no. :) And that's something I'll be working on next. In any case, I will update the readme shortly. |
169f4ec
to
abb5017
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added some comments that explain the purpose of wincat, and I've linked this PR too, in case more information is needed.
Additionally, I'm going to link here the original issues that lead to wincat and some of its bug fixes:
|
||
# NOTE(claudiub): The Windows pause image also requires the wincat binary we're compiling for the | ||
# port-forwarding scenarios. If it's no longer necessary, it can be removed. | ||
# For more information, see: https://github.com/kubernetes/kubernetes/pull/91452 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added a comment here mentioning the purpose of the wincat binary. I've also linked this PR, in case anyone needs to read more information about it.
*/ | ||
|
||
// package wincat connects to the given host and port and redirects its stdin to the connection and | ||
// the connection's output to stdout. This is currently being used for port-forwarding for Windows Pods. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This also explains the purpose of wincat.
abb5017
to
fd1e113
Compare
Update on the containerd port-forwarding: I was using containerd 1.3.4. I have now updated to 1.4.0, and port-forwarding works for Windows containerd too. I also found this: containerd/cri#1284 As you can see, wincat is used by containerd too. |
/lgtm |
Hello @claudiubelu |
This PR has already been approved and LGTM'd, it only has a hold on it. IMO, we can proceed with it, I have answered Ben's question. |
/hold cancel |
/retest Review the full test history for this PR. Silence the bot with an |
1 similar comment
/retest Review the full test history for this PR. Silence the bot with an |
I try to pull A quick question here: why not build pause image that combined windows and Linux pause image? |
Hello. The Will send a PR to promote the image. |
What type of PR is this?
/kind feature
/sig windows
What this PR does / why we need it:
We can use
docker buildx
in order to build and push Windows images from the same Linux node, as long as theDockerfile
does not have anyRUN
commands in the Windows step.We also need to create a non-default builder instance in order to be able to build and push Windows images.
The Windows images have to be built and pushed directly to the registry. Because of this, the make target
push
has been removed (the targetall
will build and push the images).We need wincat for a few kubectl proxy scenarios.
For Windows containers without Hyper-V isolation, the host OS Version and the Container OS Version need to match, which is why we added multiple Windows OS Versions to the building process.
Adds support for Windows OS Versions: 1809, 1903, 1909, 2004.
Bumped pause image version to 3.4.
Co-Authored-By: Claudiu Belu cbelu@cloudbasesolutions.com
Co-Authored-By: Ben Moss bmoss@pivotal.io
Signed-off-by: Leah Hanson lhanson@pivotal.io
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: