There are some declared errors in specerror that have not been called to validate them. Now they are listed below, and we can discuss what needs to be done and what does not.
If there's anything you need to add or remove, you can edit directly.
Bundle
Config-linux
Namespace
User namespace mappings
- ❌ UserNSMapOwnershipRO: The runtime SHOULD NOT modify the ownership of referenced filesystems to realize the mapping.
Devices
Cgroups
Device whitelist
Block IO
IntelRdt
- ❌ IntelRdtPIDWrite: If
intelRdt is set, the runtime MUST write the container process ID to the <container-id>/tasks file in a mounted resctrl pseudo-filesystem, using the container ID from start and creating the container-id directory if necessary.
- ❌ IntelRdtNoMountedResctrlError: If no mounted
resctrl pseudo-filesystem is available in the runtime mount namespace, the runtime MUST generate an error.
- ❌ NotManipResctrlWithoutIntelRdt: If
intelRdt is not set, the runtime MUST NOT manipulate any resctrl pseudo-filesystems.
- ❌ IntelRdtL3CacheSchemaWrite: If
l3CacheSchema is set, runtimes MUST write the value to the schemata file in the <container-id> directory discussed in intelRdt.
- ❌ IntelRdtL3CacheSchemaNotWrite: If
l3CacheSchema is not set, runtimes MUST NOT write to schemata files in any resctrl pseudo-filesystems.
Config-Windows
HyperV
- ❌ WindowsHyperVPresent: If present, the container MUST be run with Hyper-V isolation.
- ❌ WindowsHyperVOmit: If omitted, the container MUST be run as a Windows Server container.
Config
Root
Mounts
- ❌ MountsOptionsOnWindowsROSupport: Windows: runtimes MUST support
ro, mounting the filesystem read-only when ro is given.
Process
- ❌ ProcRequiredAtStart: This property is REQUIRED when
start is called. (same with StartWithProcUnsetGenError)
- ❌ ProcConsoleSizeIgnore: Runtimes MUST ignore
consoleSize if terminal is false or unset.
POSIX process
Linux Process
POSIX-platform Hooks
Annotations
Extensibility
Valid values
Runtime-Linux
Runtime
- ❌ EntityOperSameContainer: The entity using a runtime to create a container MUST be able to use the operations defined in this specification against that same container.
State
Lifecycle
Errors
- ❌ ErrorsLeaveStateUnchange: Unless otherwise stated, generating an error MUST leave the state of the environment as if the operation were never attempted - modulo any possible trivial ancillary changes such as logging.
Warnings
- ❌ WarnsLeaveFlowUnchange: Unless otherwise stated, logging a warning does not change the flow of the operation; it MUST continue as if the warning had not been logged.
Operations
- ❌ DefaultOperations: Unless otherwise stated, runtimes MUST support the default operations.
Create
Start
Kill
Delete
There are some declared errors in specerror that have not been called to validate them. Now they are listed below, and we can discuss what needs to be done and what does not.
If there's anything you need to add or remove, you can edit directly.
Bundle
config.json.Config-linux
Namespace
path.pathis not associated with a namespace of typetype.pathis not specified, the runtime MUST create a new container namespace of typetype.namespacesarray, the container MUST inherit the runtime namespace of that type.User namespace mappings
Devices
major, minor(int64, REQUIRED unlesstypeisp) - major, minor numbers for the device.type,majorandminorSHOULD NOT be used for multiple devices.Cgroups
cgroupsPathMUST be either an absolute path or a relative path./), the runtime MUST take the path to be relative to the cgroups mount point.cgroupsPath.cgroupsPathvalues to be invalid, and MUST generate an error if this is the case.Device whitelist
Block IO
weightorleafWeightin a given entry, and MAY specify both.IntelRdt
intelRdtis set, the runtime MUST write the container process ID to the<container-id>/tasksfile in a mountedresctrlpseudo-filesystem, using the container ID fromstartand creating thecontainer-iddirectory if necessary.resctrlpseudo-filesystem is available in the runtime mount namespace, the runtime MUST generate an error.intelRdtis not set, the runtime MUST NOT manipulate anyresctrlpseudo-filesystems.l3CacheSchemais set, runtimes MUST write the value to theschematafile in the<container-id>directory discussed inintelRdt.l3CacheSchemais not set, runtimes MUST NOT write toschematafiles in anyresctrlpseudo-filesystems.Config-Windows
HyperV
Config
Root
Mounts
ro, mounting the filesystem read-only whenrois given.Process
startis called. (same with StartWithProcUnsetGenError)consoleSizeifterminalisfalseor unset.POSIX process
rlimits, agetrlimit(3)ontypeMUST succeed.rlim.rlim_curMUST match the configured value.rlim.rlim_maxMUST match the configured value.Linux Process
oomScoreAdjis not set, the runtime MUST NOT change the value ofoom_score_adj.POSIX-platform Hooks
Annotations
com.example.myKey.org.opencontainersnamespace are reserved and MUST NOT be used by subsequent specifications.Extensibility
Valid values
Runtime-Linux
mounts.Runtime
State
id(string, REQUIRED) is the container's ID. This MUST be unique across all containers on this host.Lifecycle
config.json.config.json, it MUST generate an error.config.jsonafter this step MUST NOT affect the container.Errors
Warnings
Operations
Create
config.jsonexcept forprocessMUST be applied.process.argsMUST NOT be applied until triggered by thestartoperation.Start
startoperation MUST generate an error if it is not provided the container ID.starta container that is notcreatedMUST have no effect on the container.starta container that is notcreatedMUST generate an error.startoperation MUST run the user-specified program as specified byprocess.startoperation MUST generate an error ifprocesswas not set.Kill
killoperation MUST generate an error if it is not provided the container ID.creatednorrunningMUST generate an error.killoperation MUST send the specified signal to the container process.creatednorrunningMUST have no effect.Delete
deleteoperation MUST generate an error if it is not provided the container ID.deletea container that is notstoppedMUST have no effect on the container.deletea container that is notstoppedMUST generate an error.createstep.