containerd/specs/spec_windows.go

57 lines
2.0 KiB
Go

package specs
// Temporary Windows version of the spec in lieu of opencontainers/specs/specs-go having
// Windows support currently.
type (
PlatformSpec WindowsSpec
ProcessSpec Process
)
// This is a temporary module in lieu of opencontainers/specs/specs-go being compatible
// currently on Windows.
// Process contains information to start a specific application inside the container.
type Process struct {
// Terminal creates an interactive terminal for the container.
Terminal bool `json:"terminal"`
// User specifies user information for the process.
// TEMPORARY HACK User User `json:"user"`
// Args specifies the binary and arguments for the application to execute.
Args []string `json:"args"`
// Env populates the process environment for the process.
Env []string `json:"env,omitempty"`
// Cwd is the current working directory for the process and must be
// relative to the container's root.
Cwd string `json:"cwd"`
}
type Spec struct {
// Version is the version of the specification that is supported.
Version string `json:"ociVersion"`
// Platform is the host information for OS and Arch.
// TEMPORARY HACK Platform Platform `json:"platform"`
// Process is the container's main process.
Process Process `json:"process"`
// Root is the root information for the container's filesystem.
// TEMPORARY HACK Root Root `json:"root"`
// Hostname is the container's host name.
// TEMPORARY HACK Hostname string `json:"hostname,omitempty"`
// Mounts profile configuration for adding mounts to the container's filesystem.
// TEMPORARY HACK Mounts []Mount `json:"mounts"`
// Hooks are the commands run at various lifecycle events of the container.
// TEMPORARY HACK Hooks Hooks `json:"hooks"`
}
// Windows contains platform specific configuration for Windows based containers.
type Windows struct {
}
// TODO Windows - Interim hack. Needs implementing.
type WindowsSpec struct {
Spec
// Windows is platform specific configuration for Windows based containers.
Windows Windows `json:"windows"`
}