diff --git a/src/api/json/catalog.json b/src/api/json/catalog.json index fed7cfb8475..8d0b5e3bee8 100644 --- a/src/api/json/catalog.json +++ b/src/api/json/catalog.json @@ -7506,13 +7506,13 @@ "name": "Shopware CLI Extension Store Configuration", "description": "Shopware CLI Extension Store Configuration", "fileMatch": [".shopware-extension.yml", ".shopware-extension.yaml"], - "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/extension/shopware-extension-schema.json" + "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shopware-extension-schema.json" }, { "name": "Shopware CLI Project Store Configuration", "description": "Shopware CLI Project Store Configuration", "fileMatch": [".shopware-project.yml", ".shopware-project.yaml"], - "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shop/shopware-project-schema.json" + "url": "https://raw.githubusercontent.com/shopware/shopware-cli/main/shopware-project-schema.json" }, { "name": "Qodana", diff --git a/src/schemas/json/traefik-v2.json b/src/schemas/json/traefik-v2.json index 2798818d9c9..4f923b78e73 100644 --- a/src/schemas/json/traefik-v2.json +++ b/src/schemas/json/traefik-v2.json @@ -895,6 +895,33 @@ }, "type": "object" }, + "staticEncodedCharacters": { + "additionalProperties": false, + "properties": { + "allowEncodedSlash": { + "type": "boolean" + }, + "allowEncodedBackSlash": { + "type": "boolean" + }, + "allowEncodedNullCharacter": { + "type": "boolean" + }, + "allowEncodedSemicolon": { + "type": "boolean" + }, + "allowEncodedPercent": { + "type": "boolean" + }, + "allowEncodedQuestionMark": { + "type": "boolean" + }, + "allowEncodedHash": { + "type": "boolean" + } + }, + "type": "object" + }, "staticEntryPoint": { "additionalProperties": false, "properties": { @@ -1039,6 +1066,9 @@ "staticHTTPConfig": { "additionalProperties": false, "properties": { + "encodedCharacters": { + "$ref": "#/$defs/staticEncodedCharacters" + }, "encodeQuerySemicolons": { "type": "boolean" }, diff --git a/src/schemas/json/traefik-v3.json b/src/schemas/json/traefik-v3.json index 9a01ed951a7..54c67c60e00 100644 --- a/src/schemas/json/traefik-v3.json +++ b/src/schemas/json/traefik-v3.json @@ -842,6 +842,33 @@ }, "type": "object" }, + "staticEncodedCharacters": { + "additionalProperties": false, + "properties": { + "allowEncodedSlash": { + "type": "boolean" + }, + "allowEncodedBackSlash": { + "type": "boolean" + }, + "allowEncodedNullCharacter": { + "type": "boolean" + }, + "allowEncodedSemicolon": { + "type": "boolean" + }, + "allowEncodedPercent": { + "type": "boolean" + }, + "allowEncodedQuestionMark": { + "type": "boolean" + }, + "allowEncodedHash": { + "type": "boolean" + } + }, + "type": "object" + }, "staticEntryPoint": { "additionalProperties": false, "properties": { @@ -1010,6 +1037,9 @@ "staticHTTPConfig": { "additionalProperties": false, "properties": { + "encodedCharacters": { + "$ref": "#/$defs/staticEncodedCharacters" + }, "encodeQuerySemicolons": { "type": "boolean" }, diff --git a/src/schemas/json/zuul.json b/src/schemas/json/zuul.json index 4e17fc38367..a60230f468b 100644 --- a/src/schemas/json/zuul.json +++ b/src/schemas/json/zuul.json @@ -89,6 +89,13 @@ "title": "Final", "type": "boolean" }, + "group-vars": { + "additionalProperties": { + "type": "object" + }, + "title": "Group-Vars", + "type": "object" + }, "host-vars": { "additionalProperties": { "type": "object" @@ -344,6 +351,102 @@ "title": "JobSemaphoreModel", "type": "object" }, + "NodesetEntry": { + "additionalProperties": false, + "properties": { + "nodeset": { + "$ref": "#/definitions/NodesetModel" + } + }, + "required": ["nodeset"], + "title": "NodesetEntry", + "type": "object" + }, + "NodesetModel": { + "additionalProperties": false, + "properties": { + "name": { + "title": "Name", + "type": "string" + }, + "nodes": { + "items": { + "$ref": "#/definitions/NodesetNodeModel" + }, + "title": "Nodes", + "type": "array" + }, + "groups": { + "items": { + "$ref": "#/definitions/NodesetGroupModel" + }, + "title": "Groups", + "type": "array" + }, + "alternatives": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/NodesetModel" + } + ] + }, + "title": "Alternatives", + "type": "array" + } + }, + "required": ["name"], + "title": "NodesetModel", + "type": "object" + }, + "NodesetNodeModel": { + "additionalProperties": false, + "properties": { + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ], + "title": "Name" + }, + "label": { + "title": "Label", + "type": "string" + } + }, + "required": ["name", "label"], + "title": "NodesetNodeModel", + "type": "object" + }, + "NodesetGroupModel": { + "additionalProperties": false, + "properties": { + "name": { + "title": "Name", + "type": "string" + }, + "nodes": { + "items": { + "type": "string" + }, + "title": "Nodes", + "type": "array" + } + }, + "required": ["name", "nodes"], + "title": "NodesetGroupModel", + "type": "object" + }, "PipelineModel": { "additionalProperties": false, "properties": { @@ -392,6 +495,19 @@ "gate": { "$ref": "#/definitions/PipelineModel" }, + "merge-mode": { + "title": "Merge-Mode", + "enum": [ + "merge", + "merge-resolve", + "merge-recursive", + "merge-ort", + "cherry-pick", + "squash-merge", + "rebase" + ], + "type": "string" + }, "name": { "title": "Name", "type": "string" @@ -551,6 +667,9 @@ { "$ref": "#/definitions/JobEntry" }, + { + "$ref": "#/definitions/NodesetEntry" + }, { "$ref": "#/definitions/ProjectEntry" }, diff --git a/src/test/zuul/jobs.yaml b/src/test/zuul/jobs.yaml index 3e1d900c8a4..c15bceb642e 100644 --- a/src/test/zuul/jobs.yaml +++ b/src/test/zuul/jobs.yaml @@ -20,6 +20,9 @@ attempts: 1 voting: true ansible-version: 2.8 + group-vars: + all: + ansible_python_interpreter: /usr/bin/python3 host-vars: primary: ansible_user: root @@ -151,6 +154,7 @@ name: Sample project queue: test default-branch: main + merge-mode: squash-merge description: Description templates: - sample-template @@ -173,3 +177,34 @@ name: foo data: foo: bar + +# https://zuul-ci.org/docs/zuul/latest/config/nodeset.html +# nodeset minimal +- nodeset: + name: single-node + nodes: + - name: controller + label: ubuntu-jammy + +# nodeset with groups +- nodeset: + name: multi-node + nodes: + - name: controller + label: ubuntu-jammy + - name: + - worker1 + - worker2 + label: ubuntu-jammy + groups: + - name: workers + nodes: + - worker1 + - worker2 + +# nodeset with alternatives +- nodeset: + name: fallback-nodeset + alternatives: + - single-node + - multi-node