Răsfoiți Sursa

Allow `x-*` extension on 3rd level objects

As for top-level key, any 3rd-level key which starts with `x-` will be
ignored by compose. This allows for users to:
* include additional metadata in their compose files
* create YAML anchor objects that can be re-used in other parts of the config

This matches a similar feature in the swagger spec definition:
https://swagger.io/specification/#specificationExtensions

This means a composefile like the following is valid

```
verison: "3.7"
services:
  foo:
    image: foo/bar
    x-foo: bar
network:
  bar:
    x-bar: baz
```

It concerns services, volumes, networks, configs and secrets.

Signed-off-by: Vincent Demeester <[email protected]>
Vincent Demeester 7 ani în urmă
părinte
comite
7a19b7548f

+ 3 - 0
compose/config/config_schema_v2.4.json

@@ -346,6 +346,7 @@
       "dependencies": {
         "memswap_limit": ["mem_limit"]
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },
 
@@ -409,6 +410,7 @@
         "labels": {"$ref": "#/definitions/labels"},
         "name": {"type": "string"}
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },
 
@@ -451,6 +453,7 @@
         "labels": {"$ref": "#/definitions/labels"},
         "name": {"type": "string"}
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },
 

+ 5 - 0
compose/config/config_schema_v3.7.json

@@ -319,6 +319,7 @@
         },
         "working_dir": {"type": "string"}
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },
 
@@ -489,6 +490,7 @@
         "attachable": {"type": "boolean"},
         "labels": {"$ref": "#/definitions/list_or_dict"}
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },
 
@@ -513,6 +515,7 @@
         },
         "labels": {"$ref": "#/definitions/list_or_dict"}
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },
 
@@ -530,6 +533,7 @@
         },
         "labels": {"$ref": "#/definitions/list_or_dict"}
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },
 
@@ -547,6 +551,7 @@
         },
         "labels": {"$ref": "#/definitions/list_or_dict"}
       },
+      "patternProperties": {"^x-": {}},
       "additionalProperties": false
     },