Skip to content

Export shim manager#166

Merged
dmcgowan merged 1 commit intocontainerd:mainfrom
dmcgowan:export-shim-manager
Apr 25, 2026
Merged

Export shim manager#166
dmcgowan merged 1 commit intocontainerd:mainfrom
dmcgowan:export-shim-manager

Conversation

@dmcgowan
Copy link
Copy Markdown
Member

The shim manager must be exported in order to build a nerdbox shim from outside the main namespace.

Nerdbox is designed to utilize the plugin system the same way as containerd, allowing customization of the main program or rebuilding of the main for testing outside the main repo.

The shim manager must be exported in order to build a nerdbox shim from
outside the main namespace.

Signed-off-by: Derek McGowan <derek@mcg.dev>
Copilot AI review requested due to automatic review settings April 24, 2026 07:16
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Exports the nerdbox shim manager as a public package so external consumers can build customized shim binaries outside the main repository namespace.

Changes:

  • Exported shim manager constructor as pkg/shim/manager.New(...) and updated the shim binary to use it.
  • Added OS-specific shim manager implementations (Unix vs Windows) plus mount-namespace handling helpers.
  • Added unit tests covering New, Info, and readSpec.

Reviewed changes

Copilot reviewed 3 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pkg/shim/manager/manager.go Exposes the shim manager via New and contains shared metadata/spec parsing.
pkg/shim/manager/manager_unix.go Unix shim start/stop implementation, socket setup, and optional user+mount namespace cloning.
pkg/shim/manager/manager_windows.go Windows shim start/stop implementation using named pipes.
pkg/shim/manager/mount_linux.go Linux implementation of mount-namespace cloning and AppArmor userns restriction checks.
pkg/shim/manager/mount_other.go Non-Linux stub implementation of cloneMntNs.
pkg/shim/manager/manager_test.go Tests for exported constructor and shared helper behavior.
cmd/containerd-shim-nerdbox-v1/main.go Switches shim binary to import and use the exported manager package/API.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dmcgowan dmcgowan merged commit 859459d into containerd:main Apr 25, 2026
16 checks passed
@dmcgowan dmcgowan deleted the export-shim-manager branch April 25, 2026 22:28
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.

3 participants