vendor: bump runtime-spec to 5684b8af48c1
Update runtime-spec to get Intel RDT/MBA Linux configs which will be used in successive commits. Signed-off-by: Xiaochen Shen <xiaochen.shen@intel.com>
This commit is contained in:
parent
a00bf01908
commit
bd90541666
|
@ -1,7 +1,7 @@
|
||||||
# OCI runtime-spec. When updating this, make sure you use a version tag rather
|
# OCI runtime-spec. When updating this, make sure you use a version tag rather
|
||||||
# than a commit ID so it's much more obvious what version of the spec we are
|
# than a commit ID so it's much more obvious what version of the spec we are
|
||||||
# using.
|
# using.
|
||||||
github.com/opencontainers/runtime-spec v1.0.0
|
github.com/opencontainers/runtime-spec 5684b8af48c1ac3b1451fa499724e30e3c20a294
|
||||||
# Core libcontainer functionality.
|
# Core libcontainer functionality.
|
||||||
github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08
|
github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08
|
||||||
github.com/opencontainers/selinux v1.0.0-rc1
|
github.com/opencontainers/selinux v1.0.0-rc1
|
||||||
|
|
|
@ -22,12 +22,12 @@ To provide context for users the following section gives example use cases for e
|
||||||
### Application Bundle Builders
|
### Application Bundle Builders
|
||||||
|
|
||||||
Application bundle builders can create a [bundle](bundle.md) directory that includes all of the files required for launching an application as a container.
|
Application bundle builders can create a [bundle](bundle.md) directory that includes all of the files required for launching an application as a container.
|
||||||
The bundle contains an OCI [configuration file](config.md) where the builder can specify host-independent details such as [which executable to launch](config.md#process) and host-specific settings such as [mount](config.md#mounts) locations, [hook](config.md#hooks) paths, Linux [namespaces](config-linux.md#namespaces) and [cgroups](config-linux.md#control-groups).
|
The bundle contains an OCI [configuration file](config.md) where the builder can specify host-independent details such as [which executable to launch](config.md#process) and host-specific settings such as [mount](config.md#mounts) locations, [hook](config.md#posix-platform-hooks) paths, Linux [namespaces](config-linux.md#namespaces) and [cgroups](config-linux.md#control-groups).
|
||||||
Because the configuration includes host-specific settings, application bundle directories copied between two hosts may require configuration adjustments.
|
Because the configuration includes host-specific settings, application bundle directories copied between two hosts may require configuration adjustments.
|
||||||
|
|
||||||
### Hook Developers
|
### Hook Developers
|
||||||
|
|
||||||
[Hook](config.md#hooks) developers can extend the functionality of an OCI-compliant runtime by hooking into a container's lifecycle with an external application.
|
[Hook](config.md#posix-platform-hooks) developers can extend the functionality of an OCI-compliant runtime by hooking into a container's lifecycle with an external application.
|
||||||
Example use cases include sophisticated network configuration, volume garbage collection, etc.
|
Example use cases include sophisticated network configuration, volume garbage collection, etc.
|
||||||
|
|
||||||
### Runtime Developers
|
### Runtime Developers
|
||||||
|
@ -52,17 +52,12 @@ It also guarantees that the design is sound before code is written; a GitHub pul
|
||||||
Typos and grammatical errors can go straight to a pull-request.
|
Typos and grammatical errors can go straight to a pull-request.
|
||||||
When in doubt, start on the [mailing-list](#mailing-list).
|
When in doubt, start on the [mailing-list](#mailing-list).
|
||||||
|
|
||||||
### Weekly Call
|
### Meetings
|
||||||
|
|
||||||
The contributors and maintainers of all OCI projects have a weekly meeting on Wednesdays at:
|
|
||||||
|
|
||||||
* 8:00 AM (USA Pacific), during [odd weeks][iso-week].
|
|
||||||
* 2:00 PM (USA Pacific), during [even weeks][iso-week].
|
|
||||||
|
|
||||||
|
The contributors and maintainers of all OCI projects have monthly meetings, which are usually at 2:00 PM (USA Pacific) on the first Wednesday of every month.
|
||||||
There is an [iCalendar][rfc5545] format for the meetings [here](meeting.ics).
|
There is an [iCalendar][rfc5545] format for the meetings [here](meeting.ics).
|
||||||
|
|
||||||
Everyone is welcome to participate via [UberConference web][uberconference] or audio-only: +1 415 968 0849 (no PIN needed).
|
Everyone is welcome to participate via [UberConference web][uberconference] or audio-only: +1 415 968 0849 (no PIN needed).
|
||||||
An initial agenda will be posted to the [mailing list](#mailing-list) earlier in the week, and everyone is welcome to propose additional topics or suggest other agenda alterations there.
|
An initial agenda will be posted to the [mailing list](#mailing-list) in the week before each meeting, and everyone is welcome to propose additional topics or suggest other agenda alterations there.
|
||||||
Minutes are posted to the [mailing list](#mailing-list) and minutes from past calls are archived [here][minutes], with minutes from especially old meetings (September 2015 and earlier) archived [here][runtime-wiki].
|
Minutes are posted to the [mailing list](#mailing-list) and minutes from past calls are archived [here][minutes], with minutes from especially old meetings (September 2015 and earlier) archived [here][runtime-wiki].
|
||||||
|
|
||||||
### Mailing List
|
### Mailing List
|
||||||
|
|
|
@ -4,7 +4,7 @@ import "os"
|
||||||
|
|
||||||
// Spec is the base configuration for the container.
|
// Spec is the base configuration for the container.
|
||||||
type Spec struct {
|
type Spec struct {
|
||||||
// Version of the Open Container Runtime Specification with which the bundle complies.
|
// Version of the Open Container Initiative Runtime Specification with which the bundle complies.
|
||||||
Version string `json:"ociVersion"`
|
Version string `json:"ociVersion"`
|
||||||
// Process configures the container process.
|
// Process configures the container process.
|
||||||
Process *Process `json:"process,omitempty"`
|
Process *Process `json:"process,omitempty"`
|
||||||
|
@ -25,6 +25,8 @@ type Spec struct {
|
||||||
Solaris *Solaris `json:"solaris,omitempty" platform:"solaris"`
|
Solaris *Solaris `json:"solaris,omitempty" platform:"solaris"`
|
||||||
// Windows is platform-specific configuration for Windows based containers.
|
// Windows is platform-specific configuration for Windows based containers.
|
||||||
Windows *Windows `json:"windows,omitempty" platform:"windows"`
|
Windows *Windows `json:"windows,omitempty" platform:"windows"`
|
||||||
|
// VM specifies configuration for virtual-machine-based containers.
|
||||||
|
VM *VM `json:"vm,omitempty" platform:"vm"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Process contains information to start a specific application inside the container.
|
// Process contains information to start a specific application inside the container.
|
||||||
|
@ -158,8 +160,8 @@ type Linux struct {
|
||||||
ReadonlyPaths []string `json:"readonlyPaths,omitempty"`
|
ReadonlyPaths []string `json:"readonlyPaths,omitempty"`
|
||||||
// MountLabel specifies the selinux context for the mounts in the container.
|
// MountLabel specifies the selinux context for the mounts in the container.
|
||||||
MountLabel string `json:"mountLabel,omitempty"`
|
MountLabel string `json:"mountLabel,omitempty"`
|
||||||
// IntelRdt contains Intel Resource Director Technology (RDT) information
|
// IntelRdt contains Intel Resource Director Technology (RDT) information for
|
||||||
// for handling resource constraints (e.g., L3 cache) for the container
|
// handling resource constraints (e.g., L3 cache, memory bandwidth) for the container
|
||||||
IntelRdt *LinuxIntelRdt `json:"intelRdt,omitempty"`
|
IntelRdt *LinuxIntelRdt `json:"intelRdt,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,10 +196,10 @@ const (
|
||||||
|
|
||||||
// LinuxIDMapping specifies UID/GID mappings
|
// LinuxIDMapping specifies UID/GID mappings
|
||||||
type LinuxIDMapping struct {
|
type LinuxIDMapping struct {
|
||||||
// HostID is the starting UID/GID on the host to be mapped to 'ContainerID'
|
|
||||||
HostID uint32 `json:"hostID"`
|
|
||||||
// ContainerID is the starting UID/GID in the container
|
// ContainerID is the starting UID/GID in the container
|
||||||
ContainerID uint32 `json:"containerID"`
|
ContainerID uint32 `json:"containerID"`
|
||||||
|
// HostID is the starting UID/GID on the host to be mapped to 'ContainerID'
|
||||||
|
HostID uint32 `json:"hostID"`
|
||||||
// Size is the number of IDs to be mapped
|
// Size is the number of IDs to be mapped
|
||||||
Size uint32 `json:"size"`
|
Size uint32 `json:"size"`
|
||||||
}
|
}
|
||||||
|
@ -320,6 +322,14 @@ type LinuxNetwork struct {
|
||||||
Priorities []LinuxInterfacePriority `json:"priorities,omitempty"`
|
Priorities []LinuxInterfacePriority `json:"priorities,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LinuxRdma for Linux cgroup 'rdma' resource management (Linux 4.11)
|
||||||
|
type LinuxRdma struct {
|
||||||
|
// Maximum number of HCA handles that can be opened. Default is "no limit".
|
||||||
|
HcaHandles *uint32 `json:"hcaHandles,omitempty"`
|
||||||
|
// Maximum number of HCA objects that can be created. Default is "no limit".
|
||||||
|
HcaObjects *uint32 `json:"hcaObjects,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// LinuxResources has container runtime resource constraints
|
// LinuxResources has container runtime resource constraints
|
||||||
type LinuxResources struct {
|
type LinuxResources struct {
|
||||||
// Devices configures the device whitelist.
|
// Devices configures the device whitelist.
|
||||||
|
@ -336,6 +346,10 @@ type LinuxResources struct {
|
||||||
HugepageLimits []LinuxHugepageLimit `json:"hugepageLimits,omitempty"`
|
HugepageLimits []LinuxHugepageLimit `json:"hugepageLimits,omitempty"`
|
||||||
// Network restriction configuration
|
// Network restriction configuration
|
||||||
Network *LinuxNetwork `json:"network,omitempty"`
|
Network *LinuxNetwork `json:"network,omitempty"`
|
||||||
|
// Rdma resource restriction configuration.
|
||||||
|
// Limits are a set of key value pairs that define RDMA resource limits,
|
||||||
|
// where the key is device name and value is resource limits.
|
||||||
|
Rdma map[string]LinuxRdma `json:"rdma,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// LinuxDevice represents the mknod information for a Linux special device file
|
// LinuxDevice represents the mknod information for a Linux special device file
|
||||||
|
@ -419,6 +433,8 @@ type SolarisAnet struct {
|
||||||
type Windows struct {
|
type Windows struct {
|
||||||
// LayerFolders contains a list of absolute paths to directories containing image layers.
|
// LayerFolders contains a list of absolute paths to directories containing image layers.
|
||||||
LayerFolders []string `json:"layerFolders"`
|
LayerFolders []string `json:"layerFolders"`
|
||||||
|
// Devices are the list of devices to be mapped into the container.
|
||||||
|
Devices []WindowsDevice `json:"devices,omitempty"`
|
||||||
// Resources contains information for handling resource constraints for the container.
|
// Resources contains information for handling resource constraints for the container.
|
||||||
Resources *WindowsResources `json:"resources,omitempty"`
|
Resources *WindowsResources `json:"resources,omitempty"`
|
||||||
// CredentialSpec contains a JSON object describing a group Managed Service Account (gMSA) specification.
|
// CredentialSpec contains a JSON object describing a group Managed Service Account (gMSA) specification.
|
||||||
|
@ -433,6 +449,14 @@ type Windows struct {
|
||||||
Network *WindowsNetwork `json:"network,omitempty"`
|
Network *WindowsNetwork `json:"network,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WindowsDevice represents information about a host device to be mapped into the container.
|
||||||
|
type WindowsDevice struct {
|
||||||
|
// Device identifier: interface class GUID, etc.
|
||||||
|
ID string `json:"id"`
|
||||||
|
// Device identifier type: "class", etc.
|
||||||
|
IDType string `json:"idType"`
|
||||||
|
}
|
||||||
|
|
||||||
// WindowsResources has container runtime resource constraints for containers running on Windows.
|
// WindowsResources has container runtime resource constraints for containers running on Windows.
|
||||||
type WindowsResources struct {
|
type WindowsResources struct {
|
||||||
// Memory restriction configuration.
|
// Memory restriction configuration.
|
||||||
|
@ -479,6 +503,8 @@ type WindowsNetwork struct {
|
||||||
DNSSearchList []string `json:"DNSSearchList,omitempty"`
|
DNSSearchList []string `json:"DNSSearchList,omitempty"`
|
||||||
// Name (ID) of the container that we will share with the network stack.
|
// Name (ID) of the container that we will share with the network stack.
|
||||||
NetworkSharedContainerName string `json:"networkSharedContainerName,omitempty"`
|
NetworkSharedContainerName string `json:"networkSharedContainerName,omitempty"`
|
||||||
|
// name (ID) of the network namespace that will be used for the container.
|
||||||
|
NetworkNamespace string `json:"networkNamespace,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// WindowsHyperV contains information for configuring a container to run with Hyper-V isolation.
|
// WindowsHyperV contains information for configuring a container to run with Hyper-V isolation.
|
||||||
|
@ -487,6 +513,42 @@ type WindowsHyperV struct {
|
||||||
UtilityVMPath string `json:"utilityVMPath,omitempty"`
|
UtilityVMPath string `json:"utilityVMPath,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// VM contains information for virtual-machine-based containers.
|
||||||
|
type VM struct {
|
||||||
|
// Hypervisor specifies hypervisor-related configuration for virtual-machine-based containers.
|
||||||
|
Hypervisor VMHypervisor `json:"hypervisor,omitempty"`
|
||||||
|
// Kernel specifies kernel-related configuration for virtual-machine-based containers.
|
||||||
|
Kernel VMKernel `json:"kernel"`
|
||||||
|
// Image specifies guest image related configuration for virtual-machine-based containers.
|
||||||
|
Image VMImage `json:"image,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// VMHypervisor contains information about the hypervisor to use for a virtual machine.
|
||||||
|
type VMHypervisor struct {
|
||||||
|
// Path is the host path to the hypervisor used to manage the virtual machine.
|
||||||
|
Path string `json:"path"`
|
||||||
|
// Parameters specifies parameters to pass to the hypervisor.
|
||||||
|
Parameters string `json:"parameters,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// VMKernel contains information about the kernel to use for a virtual machine.
|
||||||
|
type VMKernel struct {
|
||||||
|
// Path is the host path to the kernel used to boot the virtual machine.
|
||||||
|
Path string `json:"path"`
|
||||||
|
// Parameters specifies parameters to pass to the kernel.
|
||||||
|
Parameters string `json:"parameters,omitempty"`
|
||||||
|
// InitRD is the host path to an initial ramdisk to be used by the kernel.
|
||||||
|
InitRD string `json:"initrd,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// VMImage contains information about the virtual machine root image.
|
||||||
|
type VMImage struct {
|
||||||
|
// Path is the host path to the root image that the VM kernel would boot into.
|
||||||
|
Path string `json:"path"`
|
||||||
|
// Format is the root image format type (e.g. "qcow2", "raw", "vhd", etc).
|
||||||
|
Format string `json:"format"`
|
||||||
|
}
|
||||||
|
|
||||||
// LinuxSeccomp represents syscall restrictions
|
// LinuxSeccomp represents syscall restrictions
|
||||||
type LinuxSeccomp struct {
|
type LinuxSeccomp struct {
|
||||||
DefaultAction LinuxSeccompAction `json:"defaultAction"`
|
DefaultAction LinuxSeccompAction `json:"defaultAction"`
|
||||||
|
@ -561,10 +623,16 @@ type LinuxSyscall struct {
|
||||||
Args []LinuxSeccompArg `json:"args,omitempty"`
|
Args []LinuxSeccompArg `json:"args,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// LinuxIntelRdt has container runtime resource constraints
|
// LinuxIntelRdt has container runtime resource constraints for Intel RDT
|
||||||
// for Intel RDT/CAT which introduced in Linux 4.10 kernel
|
// CAT and MBA features which introduced in Linux 4.10 and 4.12 kernel
|
||||||
type LinuxIntelRdt struct {
|
type LinuxIntelRdt struct {
|
||||||
|
// The identity for RDT Class of Service
|
||||||
|
ClosID string `json:"closID,omitempty"`
|
||||||
// The schema for L3 cache id and capacity bitmask (CBM)
|
// The schema for L3 cache id and capacity bitmask (CBM)
|
||||||
// Format: "L3:<cache_id0>=<cbm0>;<cache_id1>=<cbm1>;..."
|
// Format: "L3:<cache_id0>=<cbm0>;<cache_id1>=<cbm1>;..."
|
||||||
L3CacheSchema string `json:"l3CacheSchema,omitempty"`
|
L3CacheSchema string `json:"l3CacheSchema,omitempty"`
|
||||||
|
|
||||||
|
// The schema of memory bandwidth percentage per L3 cache id
|
||||||
|
// Format: "MB:<cache_id0>=bandwidth0;<cache_id1>=bandwidth1;..."
|
||||||
|
MemBwSchema string `json:"memBwSchema,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,10 +8,10 @@ const (
|
||||||
// VersionMinor is for functionality in a backwards-compatible manner
|
// VersionMinor is for functionality in a backwards-compatible manner
|
||||||
VersionMinor = 0
|
VersionMinor = 0
|
||||||
// VersionPatch is for backwards-compatible bug fixes
|
// VersionPatch is for backwards-compatible bug fixes
|
||||||
VersionPatch = 0
|
VersionPatch = 1
|
||||||
|
|
||||||
// VersionDev indicates development branch. Releases will be empty string.
|
// VersionDev indicates development branch. Releases will be empty string.
|
||||||
VersionDev = ""
|
VersionDev = "-dev"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Version is the specification version that the package types support.
|
// Version is the specification version that the package types support.
|
||||||
|
|
Loading…
Reference in New Issue