Skip to content

Commit 3880297

Browse files
authored
Merge pull request kubernetes#3540 from marosset/hpc-kep-stable
KEP 1981 Windows HostProcessContainers to stable
2 parents bd3af04 + f6bf34f commit 3880297

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

keps/sig-windows/1981-windows-privileged-container-support/README.md

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -555,30 +555,26 @@ During the alpha/beta implementations of this feature only **Symlink** volume mo
555555
This implemention did unlock a lot of critical use cases for managing Windows nodes in Kubernets clusters but did have some usability issues
556556
(such as https://pkg.go.dev/k8s.io/client-go/rest#InClusterConfig not working as expected).
557557

558-
The **bind mount** volume mount behavior gives full access to the host OS's filesystem (an explicit goal of this enhancement) and addreses the usability issues with the initial approach.
559-
This approach requires the use of Windows OS APIs that were not present in Windows Server 2019 during alpha/beta implmentations of this feature.
558+
The **bind mount** volume mount behavior gives full access to the host OS's filesystem (an explicit goal of this enhancement) and addresses the usability issues with the initial approach.
559+
This approach requires the use of Windows OS APIs that were not present in Windows Server 2019 during alpha/beta implementations of this feature.
560560
These APIs *will* be available in WS2019 beginning in July 2022 with the monthly OS security patches.
561561
Containerd v1.7+ will be required for this behavior.
562562

563563
- On containerd v1.6 **symlink** volume mount behavior will always be used.
564564
- On containerd v1.7 **bind** volume mount behavior will always be used.
565-
- If users are running nodes with Windows Server 2019 with security patches older than July 2022 the volume mounts for HostProcessContainers will fail.
566-
567-
We are going to use the Kubernetes v1.25 to explore options to make migration from `symlink` volume mount behavior to `bind` volume mount behavior as smooth as possible.
568-
569-
The worst case migration plan is as follows:
570-
Users who have workloads that depend on the **symlink** mount behavior (ex: are expecting to find mounted volumes under `$CONTAINER_SANDBOX_MOUNT_POINT`) will need to stay on containerd v1.6 releases until their workloads are updated to be compatible with **bind** mount behavior.
565+
- Backwards compatibility with volume mount paths has been added into containerd v1.7. This means that existing workloads that used `$CONTAINER_SANDBOX_MOUNT_POINT` to access volume mounts will work without updates.
571566

572567
#### Container Images
573568

574569
- `HostProcess` containers can be built on top of existing Windows base images (nanoserver, servercore, etc).
575-
- A new Windows container base image will not be introduced for `HostProcess` containers.
576-
- It is recommended to use nanoserver as the base image for `hostProcess` containers since it has the smallest footprint.
577-
- `HostProcess` containers will not inherit the same [compatibility requirements](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility) as process isolated containers from an OS perspective. Container runtimes like containerd may be able to use fields on `WindowsPodSandboxConfig` to identify `HostProcess` containers and skip OS version checks when pulling/starting these containers in the future.
570+
- A new Windows container base image has been introduced for `hostProcess` containers. More info is available at (https://github.com/microsoft/windows-host-process-containers-base-image)
571+
- Note: `HostProcess` containers do not inherit the same [compatibility requirements](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility) as process isolated containers from an OS perspective but individual container runtimes may have different image pulling/ platform matching behavior.
578572

579573
#### Container Image Build/Definition
580574

581-
- `HostProcess` container images can be built with Docker.
575+
- `HostProcess` container images based on nanoserver can be built with Docker.
576+
- `HostProcess` container images based on the new base image must be built with buildkit.
577+
- Example at https://github.com/microsoft/windows-host-process-containers-base-image#build-with-buildkit
582578
- Only a subset of dockerfile operations will be supported (ADD, COPY, PATH, ENTRYPOINT, etc).
583579
- Note: The subset of dockerfile operations supported for `HostProcess` containers is very close to the subset of operations supported when building images for other OS's with buildkit (similar to how the [pause image](https://github.com/kubernetes/kubernetes/tree/master/build/pause) is built in kubernetes/kubernetes)
584580
- Documentation on building `HostProcess` containers will be added at either docs.microsoft.com or a new github repository.

keps/sig-windows/1981-windows-privileged-container-support/kep.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ replaces:
2121

2222

2323
# The target maturity stage in the current dev cycle for this KEP.
24-
stage: beta
24+
stage: stable
2525

2626
# The most recent milestone for which work toward delivery of this KEP has been
2727
# done. This can be the current (upcoming) milestone, if it is being actively
2828
# worked on.
29-
latest-milestone: "v1.25"
29+
latest-milestone: "v1.26"
3030

3131
# The milestone at which this feature was, or is targeted to be, at each stage.
3232
milestone:

0 commit comments

Comments
 (0)