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.