Skip to content

[shimV2] adds core pod, container and process controllers#2674

Open
rawahars wants to merge 2 commits intomicrosoft:mainfrom
rawahars:core-ctrls
Open

[shimV2] adds core pod, container and process controllers#2674
rawahars wants to merge 2 commits intomicrosoft:mainfrom
rawahars:core-ctrls

Conversation

@rawahars
Copy link
Copy Markdown
Contributor

Adds the internal/controller package hierarchy with three new sub-packages that provide lifecycle management for Linux Containers on Windows (LCOW):

  • linuxcontainer: manages the full lifecycle of a single LCOW container inside a Utility VM, including host-side resource allocation (SCSI layers, Plan9 shares, vPCI devices), guest-side container creation via the GCS, and state machine transitions.

  • pod: manages a single pod running inside a UVM, owning the network controller and tracking all container controllers belonging to the pod.

  • process: manages individual process (exec) instances within a container, handling IO plumbing, signal delivery, exit status reporting, and a linear state machine.

Each package includes comprehensive unit tests, mock types, and documentation.

@rawahars rawahars requested a review from a team as a code owner April 10, 2026 17:43
@rawahars rawahars force-pushed the core-ctrls branch 2 times, most recently from a48db21 to 6e00070 Compare April 14, 2026 19:28
Comment thread internal/controller/process/process.go
Comment thread internal/controller/process/process.go Outdated
Comment thread internal/controller/linuxcontainer/mounts.go
Comment thread internal/controller/linuxcontainer/mounts.go
Comment thread internal/controller/linuxcontainer/mounts.go
Comment thread internal/controller/linuxcontainer/document.go Outdated
Comment thread internal/controller/linuxcontainer/devices.go
Comment thread internal/controller/linuxcontainer/container.go
Comment thread internal/controller/linuxcontainer/container.go
Comment thread internal/controller/linuxcontainer/container.go Outdated
Adds the `internal/controller` package hierarchy with three new
sub-packages that provide lifecycle management for Linux Containers on
Windows (LCOW):

- `linuxcontainer`: manages the full lifecycle of a single LCOW
  container inside a Utility VM, including host-side resource allocation (SCSI layers, Plan9 shares, vPCI devices), guest-side container
  creation via the GCS, and state machine transitions.

- `pod`: manages a single pod running inside a UVM, owning the network controller and tracking all container controllers belonging to the pod.

- `process`: manages individual process (exec) instances within a
  container, handling IO plumbing, signal delivery, exit status
  reporting, and a linear state machine.

Each package includes comprehensive unit tests, mock types, and documentation.

Signed-off-by: Harsh Rawat <harshrawat@microsoft.com>
Signed-off-by: Harsh Rawat <harshrawat@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants