-
Notifications
You must be signed in to change notification settings - Fork 73
Remove Windows Containers support #311
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
Conversation
|
Maintainers, As you review this RFC please queue up issues to be created using the following commands: Issues(none) |
Remove support for Windows Containers in CNB tooling and documentation, but retain support in the Buildpacks spec. Signed-off-by: Aidan Delaney <adelaney21@bloomberg.net>
832d82e to
ff8c235
Compare
| - There are no known users of Windows Container support within the buildpacks ecosystem. | ||
| - Supporting Windows Containers is straightforward at a specification level. However, the CNB project has neither the time nor the expertise to continue to support Windows Containers in our tooling. | ||
| - Removing Windows Container support from CNB tooling will speed up development, simplify testing and impact no existing users. | ||
| - Establish platform parity between `pack` and `kpack`. `kpack` has never supported building Windows Containers. |
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.
kpack actually does support building windows containers (buildpacks-community/kpack#546), albeit in a slightly more limited capacity. There is an open discussion on the kpack side to remove windows support (buildpacks-community/kpack#1366)
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.
Thanks. I see it's difficult to get community feedback on this as, I suspect, there are no kpack users who build Windows containers.
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.
@AidanDelaney can we update the statement in the RFC to reflect Tom's comment?
| # What it is | ||
| [what-it-is]: #what-it-is | ||
|
|
||
| - We want to remove Windows Containers related documentation, but clearly state that the specification is platform neutral. |
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.
How hard will it be to make a platform neutral specification format, i.e. POSIX vs. windows?
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.
We're hoping to maintain the status-quo in the specification where we currently state things like
- "MUST NOT be run for Windows builds" (https://github.com/buildpacks/spec/blob/main/buildpack.md#purpose-2)
- "...with the OS path list separator (e.g. : on Linux, ; on Windows)." (https://github.com/buildpacks/spec/blob/main/buildpack.md#targets)
- "For Windows-based images..." (https://github.com/buildpacks/spec/blob/main/buildpack.md#targets-1)
It will be difficult to keep in mind the POSIX/Windows differences when changing the specification. However, I suspect this will be no-more difficult than currently as we have no known Windows containers users.
|
|
||
| Windows Containers support is well tested within `pack`. Removing support for Windows Containers removes a unique selling point of the `pack` CLI and `lifecycle` | ||
|
|
||
| # Alternatives |
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 came up in the WG today. Would we want to tie this to a spec change and just remove it all together from the spec?
Ref: buildpacks/rfcs#311 We don't want to block lifecycle releases on pack windows failure anymore. They are unstable and not something we are staffed to invest time into. Signed-off-by: Jesse Brown <jabrown85@gmail.com>
Ref: buildpacks/rfcs#311 We don't want to block lifecycle releases on pack windows failure anymore. They are unstable and not something we are staffed to invest time into. Signed-off-by: Jesse Brown <jabrown85@gmail.com>
|
Given https://medium.com/buildpacks/deprecation-announcement-windows-container-feature-in-cloud-native-buildpacks-bbb70351343d should this PR be moved out of draft status and merged? :-) |
|
@AidanDelaney care to undraft this and update anything that you think needs updating? Then we can get it merged. |
We don't yet have consensus on this. But I'm happy with the approach where the Spec retains Windows support but we drop Windows support from our implementations. |
I took a swing at removing any and all references to windows in this reference implementation. Lifecycle no longer outputs a windows binary as a release artifact Lifecycle no longer operates against windows containers buildpacks/rfcs#311 https://medium.com/buildpacks/deprecation-announcement-windows-container-feature-in-cloud-native-buildpacks-bbb70351343d Signed-off-by: Jesse Brown <jabrown85@gmail.com>
|
|
||
| - We want to remove Windows Containers related documentation, but clearly state that the specification is platform neutral. | ||
| - Remove Windows Containers support from `pack`, but retain the Windows platform release of the `pack` CLI. | ||
| * this ensures `pack` users can still invoke `pack` on a Command or Power Shell console |
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.
On Windows, pack users will be able to invoke pack on a command or power shell and use Linux containers on Windows, right?
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.
Yes - pack will continue to work against Docker Desktop (linux), podman or whatever linux container systems are docker-api compatible.
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.
Should we add it that to the RFC?
|
|
||
| Teams that require Windows Container support will have to | ||
|
|
||
| * continue to use the last release of `pack` that supports Windows Containers, |
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 have a question here: When not using the creator, pack tries to download the latest lifecycle and then calculate the API version supported.
This is an screen-shoot from lifecycle dockerhub
Once lifecycle stops supporting Windows, we will not have an image for windows/amd64, let's suppose this happens on lifecycle >= 0.21.x version. On the other hand, we will keep releasing pack binaries for windows.
When a pack user on Windows runs a build I think we will need to handle the cases where the lifecycle image for windows/amd64 is not available and print a warning message instead of a error which I think is gonna be the case.
jjbustamante
left a comment
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.
Looks good to me, I left a few comments that I think we should consider if we want to add some notes.

Remove support for Windows Containers in CNB tooling and documentation, but retain support in the Buildpacks spec.
readable