mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
go.mod: runtime-spec v1.1.0-rc.2
See https://github.com/opencontainers/runtime-spec/releases/tag/v1.1.0-rc.2 for the spec changes. The `runc features` json is now defined in https://github.com/opencontainers/runtime-spec/blob/v1.1.0-rc.2/specs-go/features/features.go Replaces PR 3829 Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
This commit is contained in:
+18
-5
@@ -191,6 +191,8 @@ type Linux struct {
|
||||
IntelRdt *LinuxIntelRdt `json:"intelRdt,omitempty"`
|
||||
// Personality contains configuration for the Linux personality syscall
|
||||
Personality *LinuxPersonality `json:"personality,omitempty"`
|
||||
// TimeOffsets specifies the offset for supporting time namespaces.
|
||||
TimeOffsets map[string]LinuxTimeOffset `json:"timeOffsets,omitempty"`
|
||||
}
|
||||
|
||||
// LinuxNamespace is the configuration for a Linux namespace
|
||||
@@ -220,6 +222,8 @@ const (
|
||||
UserNamespace LinuxNamespaceType = "user"
|
||||
// CgroupNamespace for isolating cgroup hierarchies
|
||||
CgroupNamespace LinuxNamespaceType = "cgroup"
|
||||
// TimeNamespace for isolating the clocks
|
||||
TimeNamespace LinuxNamespaceType = "time"
|
||||
)
|
||||
|
||||
// LinuxIDMapping specifies UID/GID mappings
|
||||
@@ -232,6 +236,14 @@ type LinuxIDMapping struct {
|
||||
Size uint32 `json:"size"`
|
||||
}
|
||||
|
||||
// LinuxTimeOffset specifies the offset for Time Namespace
|
||||
type LinuxTimeOffset struct {
|
||||
// Secs is the offset of clock (in secs) in the container
|
||||
Secs int64 `json:"secs,omitempty"`
|
||||
// Nanosecs is the additional offset for Secs (in nanosecs)
|
||||
Nanosecs uint32 `json:"nanosecs,omitempty"`
|
||||
}
|
||||
|
||||
// POSIXRlimit type and restrictions
|
||||
type POSIXRlimit struct {
|
||||
// Type of the rlimit to set
|
||||
@@ -242,12 +254,13 @@ type POSIXRlimit struct {
|
||||
Soft uint64 `json:"soft"`
|
||||
}
|
||||
|
||||
// LinuxHugepageLimit structure corresponds to limiting kernel hugepages
|
||||
// LinuxHugepageLimit structure corresponds to limiting kernel hugepages.
|
||||
// Default to reservation limits if supported. Otherwise fallback to page fault limits.
|
||||
type LinuxHugepageLimit struct {
|
||||
// Pagesize is the hugepage size
|
||||
// Format: "<size><unit-prefix>B' (e.g. 64KB, 2MB, 1GB, etc.)
|
||||
// Pagesize is the hugepage size.
|
||||
// Format: "<size><unit-prefix>B' (e.g. 64KB, 2MB, 1GB, etc.).
|
||||
Pagesize string `json:"pageSize"`
|
||||
// Limit is the limit of "hugepagesize" hugetlb usage
|
||||
// Limit is the limit of "hugepagesize" hugetlb reservations (if supported) or usage.
|
||||
Limit uint64 `json:"limit"`
|
||||
}
|
||||
|
||||
@@ -382,7 +395,7 @@ type LinuxResources struct {
|
||||
Pids *LinuxPids `json:"pids,omitempty"`
|
||||
// BlockIO restriction configuration
|
||||
BlockIO *LinuxBlockIO `json:"blockIO,omitempty"`
|
||||
// Hugetlb limit (in bytes)
|
||||
// Hugetlb limits (in bytes). Default to reservation limits if supported.
|
||||
HugepageLimits []LinuxHugepageLimit `json:"hugepageLimits,omitempty"`
|
||||
// Network restriction configuration
|
||||
Network *LinuxNetwork `json:"network,omitempty"`
|
||||
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
// Package features provides the Features struct.
|
||||
package features
|
||||
|
||||
// Features represents the supported features of the runtime.
|
||||
type Features struct {
|
||||
// OCIVersionMin is the minimum OCI Runtime Spec version recognized by the runtime, e.g., "1.0.0".
|
||||
OCIVersionMin string `json:"ociVersionMin,omitempty"`
|
||||
|
||||
// OCIVersionMax is the maximum OCI Runtime Spec version recognized by the runtime, e.g., "1.0.2-dev".
|
||||
OCIVersionMax string `json:"ociVersionMax,omitempty"`
|
||||
|
||||
// Hooks is the list of the recognized hook names, e.g., "createRuntime".
|
||||
// Nil value means "unknown", not "no support for any hook".
|
||||
Hooks []string `json:"hooks,omitempty"`
|
||||
|
||||
// MountOptions is the list of the recognized mount options, e.g., "ro".
|
||||
// Nil value means "unknown", not "no support for any mount option".
|
||||
// This list does not contain filesystem-specific options passed to mount(2) syscall as (const void *).
|
||||
MountOptions []string `json:"mountOptions,omitempty"`
|
||||
|
||||
// Linux is specific to Linux.
|
||||
Linux *Linux `json:"linux,omitempty"`
|
||||
|
||||
// Annotations contains implementation-specific annotation strings,
|
||||
// such as the implementation version, and third-party extensions.
|
||||
Annotations map[string]string `json:"annotations,omitempty"`
|
||||
}
|
||||
|
||||
// Linux is specific to Linux.
|
||||
type Linux struct {
|
||||
// Namespaces is the list of the recognized namespaces, e.g., "mount".
|
||||
// Nil value means "unknown", not "no support for any namespace".
|
||||
Namespaces []string `json:"namespaces,omitempty"`
|
||||
|
||||
// Capabilities is the list of the recognized capabilities , e.g., "CAP_SYS_ADMIN".
|
||||
// Nil value means "unknown", not "no support for any capability".
|
||||
Capabilities []string `json:"capabilities,omitempty"`
|
||||
|
||||
Cgroup *Cgroup `json:"cgroup,omitempty"`
|
||||
Seccomp *Seccomp `json:"seccomp,omitempty"`
|
||||
Apparmor *Apparmor `json:"apparmor,omitempty"`
|
||||
Selinux *Selinux `json:"selinux,omitempty"`
|
||||
IntelRdt *IntelRdt `json:"intelRdt,omitempty"`
|
||||
}
|
||||
|
||||
// Cgroup represents the "cgroup" field.
|
||||
type Cgroup struct {
|
||||
// V1 represents whether Cgroup v1 support is compiled in.
|
||||
// Unrelated to whether the host uses cgroup v1 or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
V1 *bool `json:"v1,omitempty"`
|
||||
|
||||
// V2 represents whether Cgroup v2 support is compiled in.
|
||||
// Unrelated to whether the host uses cgroup v2 or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
V2 *bool `json:"v2,omitempty"`
|
||||
|
||||
// Systemd represents whether systemd-cgroup support is compiled in.
|
||||
// Unrelated to whether the host uses systemd or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
Systemd *bool `json:"systemd,omitempty"`
|
||||
|
||||
// SystemdUser represents whether user-scoped systemd-cgroup support is compiled in.
|
||||
// Unrelated to whether the host uses systemd or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
SystemdUser *bool `json:"systemdUser,omitempty"`
|
||||
|
||||
// Rdma represents whether RDMA cgroup support is compiled in.
|
||||
// Unrelated to whether the host supports RDMA or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
Rdma *bool `json:"rdma,omitempty"`
|
||||
}
|
||||
|
||||
// Seccomp represents the "seccomp" field.
|
||||
type Seccomp struct {
|
||||
// Enabled is true if seccomp support is compiled in.
|
||||
// Nil value means "unknown", not "false".
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
|
||||
// Actions is the list of the recognized actions, e.g., "SCMP_ACT_NOTIFY".
|
||||
// Nil value means "unknown", not "no support for any action".
|
||||
Actions []string `json:"actions,omitempty"`
|
||||
|
||||
// Operators is the list of the recognized operators, e.g., "SCMP_CMP_NE".
|
||||
// Nil value means "unknown", not "no support for any operator".
|
||||
Operators []string `json:"operators,omitempty"`
|
||||
|
||||
// Archs is the list of the recognized archs, e.g., "SCMP_ARCH_X86_64".
|
||||
// Nil value means "unknown", not "no support for any arch".
|
||||
Archs []string `json:"archs,omitempty"`
|
||||
|
||||
// KnownFlags is the list of the recognized filter flags, e.g., "SECCOMP_FILTER_FLAG_LOG".
|
||||
// Nil value means "unknown", not "no flags are recognized".
|
||||
KnownFlags []string `json:"knownFlags,omitempty"`
|
||||
|
||||
// SupportedFlags is the list of the supported filter flags, e.g., "SECCOMP_FILTER_FLAG_LOG".
|
||||
// This list may be a subset of KnownFlags due to some flags
|
||||
// not supported by the current kernel and/or libseccomp.
|
||||
// Nil value means "unknown", not "no flags are supported".
|
||||
SupportedFlags []string `json:"supportedFlags,omitempty"`
|
||||
}
|
||||
|
||||
// Apparmor represents the "apparmor" field.
|
||||
type Apparmor struct {
|
||||
// Enabled is true if AppArmor support is compiled in.
|
||||
// Unrelated to whether the host supports AppArmor or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
}
|
||||
|
||||
// Selinux represents the "selinux" field.
|
||||
type Selinux struct {
|
||||
// Enabled is true if SELinux support is compiled in.
|
||||
// Unrelated to whether the host supports SELinux or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
}
|
||||
|
||||
// IntelRdt represents the "intelRdt" field.
|
||||
type IntelRdt struct {
|
||||
// Enabled is true if Intel RDT support is compiled in.
|
||||
// Unrelated to whether the host supports Intel RDT or not.
|
||||
// Nil value means "unknown", not "false".
|
||||
Enabled *bool `json:"enabled,omitempty"`
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ const (
|
||||
VersionPatch = 0
|
||||
|
||||
// VersionDev indicates development branch. Releases will be empty string.
|
||||
VersionDev = "-rc.1"
|
||||
VersionDev = "-rc.2"
|
||||
)
|
||||
|
||||
// Version is the specification version that the package types support.
|
||||
|
||||
Reference in New Issue
Block a user