mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
go.mod: update runtime-spec
Signed-off-by: Alban Crequy <albancrequy@microsoft.com>
This commit is contained in:
@@ -12,7 +12,7 @@ require (
|
|||||||
github.com/godbus/dbus/v5 v5.1.0
|
github.com/godbus/dbus/v5 v5.1.0
|
||||||
github.com/moby/sys/mountinfo v0.6.2
|
github.com/moby/sys/mountinfo v0.6.2
|
||||||
github.com/mrunalp/fileutils v0.5.0
|
github.com/mrunalp/fileutils v0.5.0
|
||||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
|
github.com/opencontainers/runtime-spec v1.0.3-0.20220718201635-a8106e99982b
|
||||||
github.com/opencontainers/selinux v1.10.1
|
github.com/opencontainers/selinux v1.10.1
|
||||||
github.com/seccomp/libseccomp-golang v0.10.0
|
github.com/seccomp/libseccomp-golang v0.10.0
|
||||||
github.com/sirupsen/logrus v1.8.1
|
github.com/sirupsen/logrus v1.8.1
|
||||||
|
|||||||
@@ -36,8 +36,8 @@ github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vyg
|
|||||||
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
|
||||||
github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=
|
github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4=
|
||||||
github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
|
github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
|
||||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc=
|
github.com/opencontainers/runtime-spec v1.0.3-0.20220718201635-a8106e99982b h1:udwtfS44rxYE/ViMLchHQBjfE60GZSB1arY7BFbyxLs=
|
||||||
github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
github.com/opencontainers/runtime-spec v1.0.3-0.20220718201635-a8106e99982b/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||||
github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w=
|
github.com/opencontainers/selinux v1.10.1 h1:09LIPVRP3uuZGQvgR+SgMSNBd1Eb3vlRbGqQpoHsF8w=
|
||||||
github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
|
|||||||
+81
-16
@@ -15,7 +15,7 @@ type Spec struct {
|
|||||||
// Mounts configures additional mounts (on top of Root).
|
// Mounts configures additional mounts (on top of Root).
|
||||||
Mounts []Mount `json:"mounts,omitempty"`
|
Mounts []Mount `json:"mounts,omitempty"`
|
||||||
// Hooks configures callbacks for container lifecycle events.
|
// Hooks configures callbacks for container lifecycle events.
|
||||||
Hooks *Hooks `json:"hooks,omitempty" platform:"linux,solaris"`
|
Hooks *Hooks `json:"hooks,omitempty" platform:"linux,solaris,zos"`
|
||||||
// Annotations contains arbitrary metadata for the container.
|
// Annotations contains arbitrary metadata for the container.
|
||||||
Annotations map[string]string `json:"annotations,omitempty"`
|
Annotations map[string]string `json:"annotations,omitempty"`
|
||||||
|
|
||||||
@@ -27,6 +27,8 @@ type Spec struct {
|
|||||||
Windows *Windows `json:"windows,omitempty" platform:"windows"`
|
Windows *Windows `json:"windows,omitempty" platform:"windows"`
|
||||||
// VM specifies configuration for virtual-machine-based containers.
|
// VM specifies configuration for virtual-machine-based containers.
|
||||||
VM *VM `json:"vm,omitempty" platform:"vm"`
|
VM *VM `json:"vm,omitempty" platform:"vm"`
|
||||||
|
// ZOS is platform-specific configuration for z/OS based containers.
|
||||||
|
ZOS *ZOS `json:"zos,omitempty" platform:"zos"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Process contains information to start a specific application inside the container.
|
// Process contains information to start a specific application inside the container.
|
||||||
@@ -49,7 +51,7 @@ type Process struct {
|
|||||||
// Capabilities are Linux capabilities that are kept for the process.
|
// Capabilities are Linux capabilities that are kept for the process.
|
||||||
Capabilities *LinuxCapabilities `json:"capabilities,omitempty" platform:"linux"`
|
Capabilities *LinuxCapabilities `json:"capabilities,omitempty" platform:"linux"`
|
||||||
// Rlimits specifies rlimit options to apply to the process.
|
// Rlimits specifies rlimit options to apply to the process.
|
||||||
Rlimits []POSIXRlimit `json:"rlimits,omitempty" platform:"linux,solaris"`
|
Rlimits []POSIXRlimit `json:"rlimits,omitempty" platform:"linux,solaris,zos"`
|
||||||
// NoNewPrivileges controls whether additional privileges could be gained by processes in the container.
|
// NoNewPrivileges controls whether additional privileges could be gained by processes in the container.
|
||||||
NoNewPrivileges bool `json:"noNewPrivileges,omitempty" platform:"linux"`
|
NoNewPrivileges bool `json:"noNewPrivileges,omitempty" platform:"linux"`
|
||||||
// ApparmorProfile specifies the apparmor profile for the container.
|
// ApparmorProfile specifies the apparmor profile for the container.
|
||||||
@@ -86,11 +88,11 @@ type Box struct {
|
|||||||
// User specifies specific user (and group) information for the container process.
|
// User specifies specific user (and group) information for the container process.
|
||||||
type User struct {
|
type User struct {
|
||||||
// UID is the user id.
|
// UID is the user id.
|
||||||
UID uint32 `json:"uid" platform:"linux,solaris"`
|
UID uint32 `json:"uid" platform:"linux,solaris,zos"`
|
||||||
// GID is the group id.
|
// GID is the group id.
|
||||||
GID uint32 `json:"gid" platform:"linux,solaris"`
|
GID uint32 `json:"gid" platform:"linux,solaris,zos"`
|
||||||
// Umask is the umask for the init process.
|
// Umask is the umask for the init process.
|
||||||
Umask *uint32 `json:"umask,omitempty" platform:"linux,solaris"`
|
Umask *uint32 `json:"umask,omitempty" platform:"linux,solaris,zos"`
|
||||||
// AdditionalGids are additional group ids set for the container's process.
|
// AdditionalGids are additional group ids set for the container's process.
|
||||||
AdditionalGids []uint32 `json:"additionalGids,omitempty" platform:"linux,solaris"`
|
AdditionalGids []uint32 `json:"additionalGids,omitempty" platform:"linux,solaris"`
|
||||||
// Username is the user name.
|
// Username is the user name.
|
||||||
@@ -110,11 +112,16 @@ type Mount struct {
|
|||||||
// Destination is the absolute path where the mount will be placed in the container.
|
// Destination is the absolute path where the mount will be placed in the container.
|
||||||
Destination string `json:"destination"`
|
Destination string `json:"destination"`
|
||||||
// Type specifies the mount kind.
|
// Type specifies the mount kind.
|
||||||
Type string `json:"type,omitempty" platform:"linux,solaris"`
|
Type string `json:"type,omitempty" platform:"linux,solaris,zos"`
|
||||||
// Source specifies the source path of the mount.
|
// Source specifies the source path of the mount.
|
||||||
Source string `json:"source,omitempty"`
|
Source string `json:"source,omitempty"`
|
||||||
// Options are fstab style mount options.
|
// Options are fstab style mount options.
|
||||||
Options []string `json:"options,omitempty"`
|
Options []string `json:"options,omitempty"`
|
||||||
|
|
||||||
|
// UID/GID mappings used for changing file owners w/o calling chown, fs should support it.
|
||||||
|
// Every mount point could have its own mapping.
|
||||||
|
UIDMappings []LinuxIDMapping `json:"uidMappings,omitempty" platform:"linux"`
|
||||||
|
GIDMappings []LinuxIDMapping `json:"gidMappings,omitempty" platform:"linux"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hook specifies a command that is run at a particular event in the lifecycle of a container
|
// Hook specifies a command that is run at a particular event in the lifecycle of a container
|
||||||
@@ -178,7 +185,7 @@ type Linux struct {
|
|||||||
// 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 for
|
// IntelRdt contains Intel Resource Director Technology (RDT) information for
|
||||||
// handling resource constraints (e.g., L3 cache, memory bandwidth) for the container
|
// handling resource constraints and monitoring metrics (e.g., L3 cache, memory bandwidth) for the container
|
||||||
IntelRdt *LinuxIntelRdt `json:"intelRdt,omitempty"`
|
IntelRdt *LinuxIntelRdt `json:"intelRdt,omitempty"`
|
||||||
// Personality contains configuration for the Linux personality syscall
|
// Personality contains configuration for the Linux personality syscall
|
||||||
Personality *LinuxPersonality `json:"personality,omitempty"`
|
Personality *LinuxPersonality `json:"personality,omitempty"`
|
||||||
@@ -250,8 +257,8 @@ type LinuxInterfacePriority struct {
|
|||||||
Priority uint32 `json:"priority"`
|
Priority uint32 `json:"priority"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// linuxBlockIODevice holds major:minor format supported in blkio cgroup
|
// LinuxBlockIODevice holds major:minor format supported in blkio cgroup
|
||||||
type linuxBlockIODevice struct {
|
type LinuxBlockIODevice struct {
|
||||||
// Major is the device's major number.
|
// Major is the device's major number.
|
||||||
Major int64 `json:"major"`
|
Major int64 `json:"major"`
|
||||||
// Minor is the device's minor number.
|
// Minor is the device's minor number.
|
||||||
@@ -260,7 +267,7 @@ type linuxBlockIODevice struct {
|
|||||||
|
|
||||||
// LinuxWeightDevice struct holds a `major:minor weight` pair for weightDevice
|
// LinuxWeightDevice struct holds a `major:minor weight` pair for weightDevice
|
||||||
type LinuxWeightDevice struct {
|
type LinuxWeightDevice struct {
|
||||||
linuxBlockIODevice
|
LinuxBlockIODevice
|
||||||
// Weight is the bandwidth rate for the device.
|
// Weight is the bandwidth rate for the device.
|
||||||
Weight *uint16 `json:"weight,omitempty"`
|
Weight *uint16 `json:"weight,omitempty"`
|
||||||
// LeafWeight is the bandwidth rate for the device while competing with the cgroup's child cgroups, CFQ scheduler only
|
// LeafWeight is the bandwidth rate for the device while competing with the cgroup's child cgroups, CFQ scheduler only
|
||||||
@@ -269,7 +276,7 @@ type LinuxWeightDevice struct {
|
|||||||
|
|
||||||
// LinuxThrottleDevice struct holds a `major:minor rate_per_second` pair
|
// LinuxThrottleDevice struct holds a `major:minor rate_per_second` pair
|
||||||
type LinuxThrottleDevice struct {
|
type LinuxThrottleDevice struct {
|
||||||
linuxBlockIODevice
|
LinuxBlockIODevice
|
||||||
// Rate is the IO rate limit per cgroup per device
|
// Rate is the IO rate limit per cgroup per device
|
||||||
Rate uint64 `json:"rate"`
|
Rate uint64 `json:"rate"`
|
||||||
}
|
}
|
||||||
@@ -328,6 +335,8 @@ type LinuxCPU struct {
|
|||||||
Cpus string `json:"cpus,omitempty"`
|
Cpus string `json:"cpus,omitempty"`
|
||||||
// List of memory nodes in the cpuset. Default is to use any available memory node.
|
// List of memory nodes in the cpuset. Default is to use any available memory node.
|
||||||
Mems string `json:"mems,omitempty"`
|
Mems string `json:"mems,omitempty"`
|
||||||
|
// cgroups are configured with minimum weight, 0: default behavior, 1: SCHED_IDLE.
|
||||||
|
Idle *int64 `json:"idle,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// LinuxPids for Linux cgroup 'pids' resource management (Linux 4.3)
|
// LinuxPids for Linux cgroup 'pids' resource management (Linux 4.3)
|
||||||
@@ -522,11 +531,21 @@ type WindowsMemoryResources struct {
|
|||||||
|
|
||||||
// WindowsCPUResources contains CPU resource management settings.
|
// WindowsCPUResources contains CPU resource management settings.
|
||||||
type WindowsCPUResources struct {
|
type WindowsCPUResources struct {
|
||||||
// Number of CPUs available to the container.
|
// Count is the number of CPUs available to the container. It represents the
|
||||||
|
// fraction of the configured processor `count` in a container in relation
|
||||||
|
// to the processors available in the host. The fraction ultimately
|
||||||
|
// determines the portion of processor cycles that the threads in a
|
||||||
|
// container can use during each scheduling interval, as the number of
|
||||||
|
// cycles per 10,000 cycles.
|
||||||
Count *uint64 `json:"count,omitempty"`
|
Count *uint64 `json:"count,omitempty"`
|
||||||
// CPU shares (relative weight to other containers with cpu shares).
|
// Shares limits the share of processor time given to the container relative
|
||||||
|
// to other workloads on the processor. The processor `shares` (`weight` at
|
||||||
|
// the platform level) is a value between 0 and 10000.
|
||||||
Shares *uint16 `json:"shares,omitempty"`
|
Shares *uint16 `json:"shares,omitempty"`
|
||||||
// Specifies the portion of processor cycles that this container can use as a percentage times 100.
|
// Maximum determines the portion of processor cycles that the threads in a
|
||||||
|
// container can use during each scheduling interval, as the number of
|
||||||
|
// cycles per 10,000 cycles. Set processor `maximum` to a percentage times
|
||||||
|
// 100.
|
||||||
Maximum *uint16 `json:"maximum,omitempty"`
|
Maximum *uint16 `json:"maximum,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -613,6 +632,19 @@ type Arch string
|
|||||||
// LinuxSeccompFlag is a flag to pass to seccomp(2).
|
// LinuxSeccompFlag is a flag to pass to seccomp(2).
|
||||||
type LinuxSeccompFlag string
|
type LinuxSeccompFlag string
|
||||||
|
|
||||||
|
const (
|
||||||
|
// LinuxSeccompFlagLog is a seccomp flag to request all returned
|
||||||
|
// actions except SECCOMP_RET_ALLOW to be logged. An administrator may
|
||||||
|
// override this filter flag by preventing specific actions from being
|
||||||
|
// logged via the /proc/sys/kernel/seccomp/actions_logged file. (since
|
||||||
|
// Linux 4.14)
|
||||||
|
LinuxSeccompFlagLog LinuxSeccompFlag = "SECCOMP_FILTER_FLAG_LOG"
|
||||||
|
|
||||||
|
// LinuxSeccompFlagSpecAllow can be used to disable Speculative Store
|
||||||
|
// Bypass mitigation. (since Linux 4.17)
|
||||||
|
LinuxSeccompFlagSpecAllow LinuxSeccompFlag = "SECCOMP_FILTER_FLAG_SPEC_ALLOW"
|
||||||
|
)
|
||||||
|
|
||||||
// Additional architectures permitted to be used for system calls
|
// Additional architectures permitted to be used for system calls
|
||||||
// By default only the native architecture of the kernel is permitted
|
// By default only the native architecture of the kernel is permitted
|
||||||
const (
|
const (
|
||||||
@@ -683,8 +715,9 @@ type LinuxSyscall struct {
|
|||||||
Args []LinuxSeccompArg `json:"args,omitempty"`
|
Args []LinuxSeccompArg `json:"args,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// LinuxIntelRdt has container runtime resource constraints for Intel RDT
|
// LinuxIntelRdt has container runtime resource constraints for Intel RDT CAT and MBA
|
||||||
// CAT and MBA features which introduced in Linux 4.10 and 4.12 kernel
|
// features and flags enabling Intel RDT CMT and MBM features.
|
||||||
|
// Intel RDT features are available in Linux 4.14 and newer kernel versions.
|
||||||
type LinuxIntelRdt struct {
|
type LinuxIntelRdt struct {
|
||||||
// The identity for RDT Class of Service
|
// The identity for RDT Class of Service
|
||||||
ClosID string `json:"closID,omitempty"`
|
ClosID string `json:"closID,omitempty"`
|
||||||
@@ -697,4 +730,36 @@ type LinuxIntelRdt struct {
|
|||||||
// The unit of memory bandwidth is specified in "percentages" by
|
// The unit of memory bandwidth is specified in "percentages" by
|
||||||
// default, and in "MBps" if MBA Software Controller is enabled.
|
// default, and in "MBps" if MBA Software Controller is enabled.
|
||||||
MemBwSchema string `json:"memBwSchema,omitempty"`
|
MemBwSchema string `json:"memBwSchema,omitempty"`
|
||||||
|
|
||||||
|
// EnableCMT is the flag to indicate if the Intel RDT CMT is enabled. CMT (Cache Monitoring Technology) supports monitoring of
|
||||||
|
// the last-level cache (LLC) occupancy for the container.
|
||||||
|
EnableCMT bool `json:"enableCMT,omitempty"`
|
||||||
|
|
||||||
|
// EnableMBM is the flag to indicate if the Intel RDT MBM is enabled. MBM (Memory Bandwidth Monitoring) supports monitoring of
|
||||||
|
// total and local memory bandwidth for the container.
|
||||||
|
EnableMBM bool `json:"enableMBM,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ZOS contains platform-specific configuration for z/OS based containers.
|
||||||
|
type ZOS struct {
|
||||||
|
// Devices are a list of device nodes that are created for the container
|
||||||
|
Devices []ZOSDevice `json:"devices,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// ZOSDevice represents the mknod information for a z/OS special device file
|
||||||
|
type ZOSDevice struct {
|
||||||
|
// Path to the device.
|
||||||
|
Path string `json:"path"`
|
||||||
|
// Device type, block, char, etc.
|
||||||
|
Type string `json:"type"`
|
||||||
|
// Major is the device's major number.
|
||||||
|
Major int64 `json:"major"`
|
||||||
|
// Minor is the device's minor number.
|
||||||
|
Minor int64 `json:"minor"`
|
||||||
|
// FileMode permission bits for the device.
|
||||||
|
FileMode *os.FileMode `json:"fileMode,omitempty"`
|
||||||
|
// UID of the device.
|
||||||
|
UID *uint32 `json:"uid,omitempty"`
|
||||||
|
// Gid of the device.
|
||||||
|
GID *uint32 `json:"gid,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -36,7 +36,7 @@ github.com/moby/sys/mountinfo
|
|||||||
# github.com/mrunalp/fileutils v0.5.0
|
# github.com/mrunalp/fileutils v0.5.0
|
||||||
## explicit; go 1.13
|
## explicit; go 1.13
|
||||||
github.com/mrunalp/fileutils
|
github.com/mrunalp/fileutils
|
||||||
# github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417
|
# github.com/opencontainers/runtime-spec v1.0.3-0.20220718201635-a8106e99982b
|
||||||
## explicit
|
## explicit
|
||||||
github.com/opencontainers/runtime-spec/specs-go
|
github.com/opencontainers/runtime-spec/specs-go
|
||||||
# github.com/opencontainers/selinux v1.10.1
|
# github.com/opencontainers/selinux v1.10.1
|
||||||
|
|||||||
Reference in New Issue
Block a user