diff --git a/config-windows.md b/config-windows.md index ad64addff..5a76ab93b 100644 --- a/config-windows.md +++ b/config-windows.md @@ -3,6 +3,22 @@ This document describes the schema for the [Windows-specific section](config.md#platform-specific-configuration) of the [container configuration](config.md). The Windows container specification uses APIs provided by the Windows Host Compute Service (HCS) to fulfill the spec. +## LayerFolders + +**`layerFolders`** (array of strings, REQUIRED) specifies a list of layer folders the container image relies on. The list is ordered from topmost layer to base layer. + `layerFolders` MUST contain at least one entry. + +### Example + +```json + "windows": { + "layerFolders": [ + "C:\\Layers\\layer1", + "C:\\Layers\\layer2" + ] + } +``` + ## Resources You can configure a container's resource limits via the OPTIONAL `resources` field of the Windows configuration. diff --git a/config.md b/config.md index 0c490d8b4..001245d26 100644 --- a/config.md +++ b/config.md @@ -340,7 +340,7 @@ Runtime implementations MAY support any valid values for platform-specific field * **`linux`** (object, OPTIONAL) [Linux-specific configuration](config-linux.md). This MAY be set if **`platform.os`** is `linux` and MUST NOT be set otherwise. * **`windows`** (object, OPTIONAL) [Windows-specific configuration](config-windows.md). - This MAY be set if **`platform.os`** is `windows` and MUST NOT be set otherwise. + This MUST be set if **`platform.os`** is `windows` and MUST NOT be set otherwise. * **`solaris`** (object, OPTIONAL) [Solaris-specific configuration](config-solaris.md). This MAY be set if **`platform.os`** is `solaris` and MUST NOT be set otherwise. diff --git a/schema/config-windows.json b/schema/config-windows.json index d12dbbace..738592b7e 100644 --- a/schema/config-windows.json +++ b/schema/config-windows.json @@ -4,6 +4,14 @@ "id": "https://opencontainers.org/schema/bundle/windows", "type": "object", "properties": { + "layerFolders": { + "id": "https://opencontainers.org/schema/bundle/windows/layerFolders", + "type": "array", + "items": { + "$ref": "defs.json#/definitions/FilePath" + }, + "minItems": 1 + }, "resources": { "id": "https://opencontainers.org/schema/bundle/windows/resources", "type": "object", @@ -100,6 +108,9 @@ } } } - } + }, + "required": [ + "layerFolders" + ] } } \ No newline at end of file diff --git a/specs-go/config.go b/specs-go/config.go index 3d86efb98..391329c30 100644 --- a/specs-go/config.go +++ b/specs-go/config.go @@ -430,6 +430,8 @@ type SolarisAnet struct { // Windows defines the runtime configuration for Windows based containers, including Hyper-V containers. type Windows struct { + // LayerFolders contains a list of absolute paths to directories containing image layers. + LayerFolders []string `json:"layerFolders"` // Resources contains information for handling resource constraints for the container. Resources *WindowsResources `json:"resources,omitempty"` // CredentialSpec contains a JSON object describing a group Managed Service Account (gMSA) specification.