diff --git a/docs/content/en/docs/references/yaml/main.js b/docs/content/en/docs/references/yaml/main.js index 7d501e77d8d..646ea9311af 100644 --- a/docs/content/en/docs/references/yaml/main.js +++ b/docs/content/en/docs/references/yaml/main.js @@ -20,8 +20,8 @@ function* template(definitions, parentDefinition, ref, ident) { for (var key in properties) { allProperties.push([key, properties[key]]); } - if (definitions[name].oneOf) { - for (var properties of definitions[name].oneOf) { + if (definitions[name].anyOf) { + for (var properties of definitions[name].anyOf) { for (var key in properties.properties) { allProperties.push([key, properties.properties[key]]); } @@ -70,7 +70,7 @@ function* template(definitions, parentDefinition, ref, ident) { if (definition.$ref) { // Check if the referenced description is a final one const refName = definition.$ref.replace('#/definitions/', ''); - if (!definitions[refName].properties && !definitions[refName].oneOf) { + if (!definitions[refName].properties && !definitions[refName].anyOf) { value = '{}' } diff --git a/docs/content/en/schemas/v1alpha1.json b/docs/content/en/schemas/v1alpha1.json index 9dc50719988..1c86026aaf5 100755 --- a/docs/content/en/schemas/v1alpha1.json +++ b/docs/content/en/schemas/v1alpha1.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -23,6 +23,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "top level config object that is parsed from a skaffold.yaml" }, "BuildConfig": { @@ -38,7 +39,8 @@ "default": "\"\"" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -65,6 +67,7 @@ "$ref": "#/definitions/GoogleCloudBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -73,6 +76,7 @@ "type": "boolean" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -81,7 +85,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "DeployConfig": { "properties": { @@ -90,7 +95,8 @@ "default": "\"\"" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -117,6 +123,7 @@ "$ref": "#/definitions/KubectlDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -128,6 +135,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "Manifest": { @@ -148,7 +156,8 @@ "type": "object", "default": "{}" } - } + }, + "additionalProperties": false }, "HelmDeploy": { "properties": { @@ -158,7 +167,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "HelmRelease": { "properties": { @@ -190,7 +200,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "Artifact": { "properties": { @@ -214,6 +225,7 @@ "default": "{}" } }, + "additionalProperties": false, "description": "represents items that need should be built, along with the context in which they should be built." } } diff --git a/docs/content/en/schemas/v1alpha2.json b/docs/content/en/schemas/v1alpha2.json index 08208fe16f5..fcc02cb24a1 100755 --- a/docs/content/en/schemas/v1alpha2.json +++ b/docs/content/en/schemas/v1alpha2.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -28,7 +28,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -42,7 +43,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -82,12 +84,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -97,6 +102,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -110,6 +116,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -124,6 +131,7 @@ "$ref": "#/definitions/KanikoBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -140,6 +148,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -165,6 +174,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "KanikoBuild": { @@ -190,10 +200,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -230,6 +242,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -254,6 +267,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -283,6 +297,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -294,6 +309,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -305,7 +321,8 @@ "flags": { "$ref": "#/definitions/KubectlFlags" } - } + }, + "additionalProperties": false }, "HelmRelease": { "properties": { @@ -372,7 +389,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -387,10 +405,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -415,7 +435,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -424,9 +445,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -440,7 +463,8 @@ "default": "\"\"" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -471,6 +495,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "ArtifactType": { @@ -481,7 +506,8 @@ "bazel": { "$ref": "#/definitions/BazelArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -508,7 +534,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "BazelArtifact": { "properties": { @@ -516,7 +543,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1alpha3.json b/docs/content/en/schemas/v1alpha3.json index 4f63b43d53f..bcedabcd3d2 100755 --- a/docs/content/en/schemas/v1alpha3.json +++ b/docs/content/en/schemas/v1alpha3.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -28,7 +28,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -42,7 +43,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -82,12 +84,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -97,6 +102,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -110,6 +116,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -124,6 +131,7 @@ "$ref": "#/definitions/KanikoBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -140,6 +148,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -165,6 +174,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "KanikoBuildContext": { @@ -174,6 +184,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the different fields available to specify a kaniko build context" }, "KanikoBuild": { @@ -198,10 +209,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -238,6 +251,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -262,6 +276,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -291,6 +306,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -302,6 +318,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -313,7 +330,8 @@ "flags": { "$ref": "#/definitions/KubectlFlags" } - } + }, + "additionalProperties": false }, "HelmRelease": { "properties": { @@ -384,7 +402,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -399,10 +418,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -427,7 +448,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -436,9 +458,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -452,7 +476,8 @@ "default": "\"\"" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -483,6 +508,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "ArtifactType": { @@ -493,7 +519,8 @@ "bazel": { "$ref": "#/definitions/BazelArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -520,7 +547,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "BazelArtifact": { "properties": { @@ -528,7 +556,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1alpha4.json b/docs/content/en/schemas/v1alpha4.json index 844fe22fe76..1c0e54ed888 100755 --- a/docs/content/en/schemas/v1alpha4.json +++ b/docs/content/en/schemas/v1alpha4.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -31,12 +31,14 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "TestConfig": { "items": { "$ref": "#/definitions/TestCase" }, + "additionalProperties": false, "type": "array" }, "BuildConfig": { @@ -51,7 +53,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -91,12 +94,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -106,6 +112,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -119,6 +126,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -133,6 +141,7 @@ "$ref": "#/definitions/KanikoBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -149,6 +158,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -174,9 +184,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "LocalDir": { + "additionalProperties": false, "description": "represents the local directory kaniko build context" }, "KanikoBuildContext": { @@ -189,6 +201,7 @@ "$ref": "#/definitions/LocalDir" } }, + "additionalProperties": false, "description": "contains the different fields available to specify a kaniko build context" }, "KanikoBuild": { @@ -217,6 +230,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "TestCase": { @@ -234,10 +248,12 @@ "default": "[]" } }, + "additionalProperties": false, "description": "a struct containing all the specified test configuration for an image." }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -274,6 +290,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -298,6 +315,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -327,6 +345,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -338,6 +357,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -350,6 +370,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kustomize." }, "HelmRelease": { @@ -421,7 +442,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -436,10 +458,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -464,7 +488,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -473,9 +498,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -497,7 +524,8 @@ "default": "{}" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -548,6 +576,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "ArtifactType": { @@ -564,7 +593,8 @@ "jibGradle": { "$ref": "#/definitions/JibGradleArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -592,6 +622,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built from a Dockerfile, usually using docker build." }, "BazelArtifact": { @@ -601,6 +632,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built with Bazel." }, "JibMavenArtifact": { @@ -614,7 +646,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "JibGradleArtifact": { "properties": { @@ -623,7 +656,8 @@ "description": "Only multi-module", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1alpha5.json b/docs/content/en/schemas/v1alpha5.json index b095360854e..8df2576ccce 100755 --- a/docs/content/en/schemas/v1alpha5.json +++ b/docs/content/en/schemas/v1alpha5.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -31,7 +31,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -45,7 +46,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -92,12 +94,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -107,6 +112,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -120,6 +126,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -137,6 +144,7 @@ "$ref": "#/definitions/AzureContainerBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -153,6 +161,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -178,9 +187,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "LocalDir": { + "additionalProperties": false, "description": "represents the local directory kaniko build context" }, "KanikoBuildContext": { @@ -193,6 +204,7 @@ "$ref": "#/definitions/LocalDir" } }, + "additionalProperties": false, "description": "contains the different fields available to specify a kaniko build context" }, "KanikoBuild": { @@ -221,6 +233,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "AzureContainerBuild": { @@ -242,12 +255,14 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on Azure Container Registry" }, "TestConfig": { "items": { "$ref": "#/definitions/TestCase" }, + "additionalProperties": false, "type": "array" }, "TestCase": { @@ -265,10 +280,12 @@ "default": "[]" } }, + "additionalProperties": false, "description": "a struct containing all the specified test configuration for an image." }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -305,6 +322,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -329,6 +347,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -358,6 +377,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -369,6 +389,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -381,6 +402,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kustomize." }, "HelmRelease": { @@ -452,7 +474,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -467,10 +490,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -495,7 +520,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -504,9 +530,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -528,7 +556,8 @@ "default": "{}" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -576,6 +605,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "ArtifactType": { @@ -592,7 +622,8 @@ "jibGradle": { "$ref": "#/definitions/JibGradleArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -620,6 +651,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built from a Dockerfile, usually using docker build." }, "BazelArtifact": { @@ -629,6 +661,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built with Bazel." }, "JibMavenArtifact": { @@ -642,7 +675,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "JibGradleArtifact": { "properties": { @@ -651,7 +685,8 @@ "description": "Only multi-module", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1beta1.json b/docs/content/en/schemas/v1beta1.json index 41c4ef972bf..062da078d07 100755 --- a/docs/content/en/schemas/v1beta1.json +++ b/docs/content/en/schemas/v1beta1.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -31,7 +31,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -45,7 +46,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -85,12 +87,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -100,6 +105,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -113,6 +119,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -127,6 +134,7 @@ "$ref": "#/definitions/KanikoBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -143,6 +151,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -168,9 +177,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "LocalDir": { + "additionalProperties": false, "description": "represents the local directory kaniko build context" }, "KanikoBuildContext": { @@ -183,6 +194,7 @@ "$ref": "#/definitions/LocalDir" } }, + "additionalProperties": false, "description": "contains the different fields available to specify a kaniko build context" }, "KanikoCache": { @@ -192,6 +204,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains fields related to kaniko caching" }, "KanikoBuild": { @@ -223,12 +236,14 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "TestConfig": { "items": { "$ref": "#/definitions/TestCase" }, + "additionalProperties": false, "type": "array" }, "TestCase": { @@ -246,10 +261,12 @@ "default": "[]" } }, + "additionalProperties": false, "description": "a struct containing all the specified test configuration for an image." }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -286,6 +303,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -310,6 +328,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -339,6 +358,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -350,6 +370,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -362,6 +383,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kustomize." }, "HelmRelease": { @@ -433,7 +455,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -448,10 +471,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -476,7 +501,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -485,9 +511,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -509,7 +537,8 @@ "default": "{}" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -557,6 +586,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "ArtifactType": { @@ -573,7 +603,8 @@ "jibGradle": { "$ref": "#/definitions/JibGradleArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -601,6 +632,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built from a Dockerfile, usually using docker build." }, "BazelArtifact": { @@ -618,6 +650,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes an artifact built with Bazel." }, "JibMavenArtifact": { @@ -631,7 +664,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "JibGradleArtifact": { "properties": { @@ -640,7 +674,8 @@ "description": "Only multi-module", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1beta2.json b/docs/content/en/schemas/v1beta2.json index 87cc935806a..402c977c53f 100755 --- a/docs/content/en/schemas/v1beta2.json +++ b/docs/content/en/schemas/v1beta2.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -31,7 +31,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -45,7 +46,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -85,12 +87,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -100,6 +105,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -113,6 +119,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -127,6 +134,7 @@ "$ref": "#/definitions/KanikoBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -143,6 +151,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -168,9 +177,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "LocalDir": { + "additionalProperties": false, "description": "represents the local directory kaniko build context" }, "KanikoBuildContext": { @@ -183,6 +194,7 @@ "$ref": "#/definitions/LocalDir" } }, + "additionalProperties": false, "description": "contains the different fields available to specify a kaniko build context" }, "KanikoCache": { @@ -192,6 +204,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains fields related to kaniko caching" }, "KanikoBuild": { @@ -231,12 +244,14 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "TestConfig": { "items": { "$ref": "#/definitions/TestCase" }, + "additionalProperties": false, "type": "array" }, "TestCase": { @@ -254,10 +269,12 @@ "default": "[]" } }, + "additionalProperties": false, "description": "a struct containing all the specified test configuration for an image." }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -294,6 +311,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -318,6 +336,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -347,6 +366,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -358,6 +378,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -370,6 +391,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kustomize." }, "HelmRelease": { @@ -441,7 +463,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -456,10 +479,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -484,7 +509,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -493,9 +519,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -517,7 +545,8 @@ "default": "{}" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -565,6 +594,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "ArtifactType": { @@ -581,7 +611,8 @@ "jibGradle": { "$ref": "#/definitions/JibGradleArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -609,6 +640,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built from a Dockerfile, usually using docker build." }, "BazelArtifact": { @@ -626,6 +658,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes an artifact built with Bazel." }, "JibMavenArtifact": { @@ -639,7 +672,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "JibGradleArtifact": { "properties": { @@ -648,7 +682,8 @@ "description": "Only multi-module", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1beta3.json b/docs/content/en/schemas/v1beta3.json index 38fbca26568..b990fc6f7af 100755 --- a/docs/content/en/schemas/v1beta3.json +++ b/docs/content/en/schemas/v1beta3.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -31,7 +31,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -45,7 +46,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -85,12 +87,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -100,6 +105,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -113,6 +119,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -127,6 +134,7 @@ "$ref": "#/definitions/KanikoBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -143,6 +151,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -176,9 +185,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "LocalDir": { + "additionalProperties": false, "description": "represents the local directory kaniko build context" }, "KanikoBuildContext": { @@ -191,6 +202,7 @@ "$ref": "#/definitions/LocalDir" } }, + "additionalProperties": false, "description": "contains the different fields available to specify a kaniko build context" }, "KanikoCache": { @@ -200,6 +212,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains fields related to kaniko caching" }, "KanikoBuild": { @@ -242,6 +255,7 @@ "$ref": "#/definitions/DockerConfig" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "DockerConfig": { @@ -255,12 +269,14 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains information about the docker config.json to mount" }, "TestConfig": { "items": { "$ref": "#/definitions/TestCase" }, + "additionalProperties": false, "type": "array" }, "TestCase": { @@ -278,10 +294,12 @@ "default": "[]" } }, + "additionalProperties": false, "description": "a struct containing all the specified test configuration for an image." }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -318,6 +336,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -342,6 +361,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -371,6 +391,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -382,6 +403,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -394,6 +416,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kustomize." }, "HelmRelease": { @@ -465,7 +488,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -480,10 +504,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -508,7 +534,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -517,9 +544,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -541,7 +570,8 @@ "default": "{}" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -589,6 +619,7 @@ "$ref": "#/definitions/DeployConfig" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "ArtifactType": { @@ -605,7 +636,8 @@ "jibGradle": { "$ref": "#/definitions/JibGradleArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -633,6 +665,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built from a Dockerfile, usually using docker build." }, "BazelArtifact": { @@ -650,6 +683,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes an artifact built with Bazel." }, "JibMavenArtifact": { @@ -663,7 +697,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "JibGradleArtifact": { "properties": { @@ -672,7 +707,8 @@ "description": "Only multi-module", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1beta4.json b/docs/content/en/schemas/v1beta4.json index 118670a8ae1..7bcf831791c 100755 --- a/docs/content/en/schemas/v1beta4.json +++ b/docs/content/en/schemas/v1beta4.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -31,7 +31,8 @@ }, "type": "array" } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -45,7 +46,8 @@ "$ref": "#/definitions/TagPolicy" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -85,12 +87,15 @@ "$ref": "#/definitions/DateTimeTagger" } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step" }, "ShaTagger": { + "additionalProperties": false, "description": "contains the configuration for the SHA tagger." }, "GitTagger": { + "additionalProperties": false, "description": "contains the configuration for the git tagger." }, "EnvTemplateTagger": { @@ -100,6 +105,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the envTemplate tagger." }, "DateTimeTagger": { @@ -113,6 +119,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the configuration for the DateTime tagger." }, "BuildType": { @@ -127,6 +134,7 @@ "$ref": "#/definitions/KanikoBuild" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -143,6 +151,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -176,9 +185,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains the fields needed to do a remote build on Google Cloud Build." }, "LocalDir": { + "additionalProperties": false, "description": "represents the local directory kaniko build context" }, "KanikoBuildContext": { @@ -191,6 +202,7 @@ "$ref": "#/definitions/LocalDir" } }, + "additionalProperties": false, "description": "contains the different fields available to specify a kaniko build context" }, "KanikoCache": { @@ -200,6 +212,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains fields related to kaniko caching" }, "KanikoBuild": { @@ -242,6 +255,7 @@ "$ref": "#/definitions/DockerConfig" } }, + "additionalProperties": false, "description": "contains the fields needed to do a on-cluster build using the kaniko image" }, "DockerConfig": { @@ -255,12 +269,14 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains information about the docker config.json to mount" }, "TestConfig": { "items": { "$ref": "#/definitions/TestCase" }, + "additionalProperties": false, "type": "array" }, "TestCase": { @@ -278,10 +294,12 @@ "default": "[]" } }, + "additionalProperties": false, "description": "a struct containing all the specified test configuration for an image." }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -318,6 +336,7 @@ "$ref": "#/definitions/KustomizeDeploy" } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -342,6 +361,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kubectl apply" }, "KubectlFlags": { @@ -371,6 +391,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes additional options flags that are passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -382,6 +403,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with helm" }, "KustomizeDeploy": { @@ -394,6 +416,7 @@ "$ref": "#/definitions/KubectlFlags" } }, + "additionalProperties": false, "description": "contains the configuration needed for deploying with kustomize." }, "HelmRelease": { @@ -469,7 +492,8 @@ "imageStrategy": { "$ref": "#/definitions/HelmImageStrategy" } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -484,10 +508,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents parameters for packaging helm chart." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -512,7 +538,8 @@ "helm": { "$ref": "#/definitions/HelmConventionConfig" } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -521,9 +548,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "represents image config to use the FullyQualifiedImageName as param to set" }, "HelmConventionConfig": { + "additionalProperties": false, "description": "represents image config in the syntax of image.repository and image.tag" }, "Artifact": { @@ -545,7 +574,8 @@ "default": "{}" } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -600,6 +630,7 @@ "type": "array" } }, + "additionalProperties": false, "description": "additional configuration that overrides default configuration when it is activated." }, "Activation": { @@ -617,6 +648,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "defines criteria to auto-activate a profile." }, "ArtifactType": { @@ -633,7 +665,8 @@ "jibGradle": { "$ref": "#/definitions/JibGradleArtifact" } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -661,6 +694,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "describes an artifact built from a Dockerfile, usually using docker build." }, "BazelArtifact": { @@ -678,6 +712,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "describes an artifact built with Bazel." }, "JibMavenArtifact": { @@ -691,7 +726,8 @@ "type": "string", "default": "\"\"" } - } + }, + "additionalProperties": false }, "JibGradleArtifact": { "properties": { @@ -700,7 +736,8 @@ "description": "Only multi-module", "default": "\"\"" } - } + }, + "additionalProperties": false } } } diff --git a/docs/content/en/schemas/v1beta5.json b/docs/content/en/schemas/v1beta5.json index 1f3472209bd..a3b8d2fce8c 100755 --- a/docs/content/en/schemas/v1beta5.json +++ b/docs/content/en/schemas/v1beta5.json @@ -1,6 +1,6 @@ { "type": "object", - "oneOf": [ + "anyOf": [ { "$ref": "#/definitions/SkaffoldPipeline" } @@ -37,7 +37,8 @@ "type": "array", "description": "(beta) can override be used to build, test or deploy configuration." } - } + }, + "additionalProperties": false }, "BuildConfig": { "properties": { @@ -57,7 +58,8 @@ "description": "environment in which the build should run. Possible values: googleCloudBuild." } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "local": { @@ -86,6 +88,7 @@ "description": "contains all the configuration for the build steps." }, "ExecEnvironment": { + "additionalProperties": false, "type": "string", "default": "\"\"" }, @@ -102,6 +105,7 @@ "default": "{}" } }, + "additionalProperties": false, "description": "environment in which the build should run (ex. local or in-cluster, etc.)." }, "BuilderPlugin": { @@ -118,6 +122,7 @@ "default": "{}" } }, + "additionalProperties": false, "description": "contains all fields necessary for specifying a build plugin." }, "TagPolicy": { @@ -139,12 +144,15 @@ "description": "(beta) tags images with the build timestamp." } }, + "additionalProperties": false, "description": "contains all the configuration for the tagging step." }, "ShaTagger": { + "additionalProperties": false, "description": "(beta) tags images with their sha256 digest." }, "GitTagger": { + "additionalProperties": false, "description": "(beta) tags images with the git tag or commit of the artifact's workspace." }, "EnvTemplateTagger": { @@ -161,6 +169,7 @@ ] } }, + "additionalProperties": false, "description": "(beta) tags images with a configurable template string." }, "DateTimeTagger": { @@ -176,6 +185,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "(beta) tags images with the build timestamp." }, "BuildType": { @@ -193,6 +203,7 @@ "description": "(beta) describes how to do an on-cluster build using Kaniko." } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the build step. Only one field should be populated." }, "LocalBuild": { @@ -212,6 +223,7 @@ "default": "false" } }, + "additionalProperties": false, "description": "(beta) describes how to do a build on the local docker daemon and optionally push to a repository." }, "GoogleCloudBuild": { @@ -252,9 +264,11 @@ "default": "gcr.io/cloud-builders/gradle" } }, + "additionalProperties": false, "description": "(beta) describes how to do a remote build on Google Cloud Build. Docker and Jib artifacts can be built on Cloud Build. The projectId needs to be provided and the currently logged in user should be given permissions to trigger new builds." }, "LocalDir": { + "additionalProperties": false, "description": "configures how Kaniko mounts sources directly via an emptyDir volume." }, "KanikoBuildContext": { @@ -269,6 +283,7 @@ "description": "configures how Kaniko mounts sources directly via an emptyDir volume." } }, + "additionalProperties": false, "description": "contains the different fields available to specify a Kaniko build context." }, "KanikoCache": { @@ -279,6 +294,7 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "configures Kaniko caching. If a cache is specified, Kaniko will use a remote cache which will speed up builds." }, "KanikoBuild": { @@ -330,6 +346,7 @@ "description": "describes how to mount the local Docker configuration into the Kaniko pod." } }, + "additionalProperties": false, "description": "(beta) describes how to do an on-cluster build using Kaniko." }, "DockerConfig": { @@ -345,12 +362,14 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "contains information about the docker config.json to mount." }, "TestConfig": { "items": { "$ref": "#/definitions/TestCase" }, + "additionalProperties": false, "type": "array" }, "TestCase": { @@ -376,10 +395,12 @@ ] } }, + "additionalProperties": false, "description": "a list of structure tests to run on images that Skaffold builds." }, "DeployConfig": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "helm": { @@ -422,6 +443,7 @@ "description": "(beta) uses the kustomize CLI to "patch" a deployment for a target environment." } }, + "additionalProperties": false, "description": "contains the specific implementation and parameters needed for the deploy step. Only one field should be populated." }, "KubectlDeploy": { @@ -449,6 +471,7 @@ "description": "additional flags passed to kubectl." } }, + "additionalProperties": false, "description": "(beta) uses a client side kubectl apply to deploy manifests. You'll need a kubectl CLI version installed that's compatible with your cluster." }, "KubectlFlags": { @@ -481,6 +504,7 @@ "default": "[]" } }, + "additionalProperties": false, "description": "additional flags passed on the command line to kubectl either on every command (Global), on creations (Apply) or deletions (Delete)." }, "HelmDeploy": { @@ -496,6 +520,7 @@ "description": "a list of Helm releases." } }, + "additionalProperties": false, "description": "(beta) uses the helm CLI to apply the charts to the cluster." }, "KustomizeDeploy": { @@ -510,6 +535,7 @@ "description": "additional flags passed to kubectl." } }, + "additionalProperties": false, "description": "(beta) uses the kustomize CLI to "patch" a deployment for a target environment." }, "HelmRelease": { @@ -603,7 +629,8 @@ "$ref": "#/definitions/HelmImageStrategy", "description": "adds image configurations to the Helm values file." } - } + }, + "additionalProperties": false }, "HelmPackaged": { "properties": { @@ -618,10 +645,12 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "parameters for packaging helm chart (helm package)." }, "HelmImageStrategy": { - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "fqn": { @@ -651,7 +680,8 @@ "$ref": "#/definitions/HelmConventionConfig", "description": "image configuration uses the syntax IMAGE-NAME.repository=IMAGE-REPOSITORY, IMAGE-NAME.tag=IMAGE-TAG." } - } + }, + "additionalProperties": false }, "HelmFQNConfig": { "properties": { @@ -661,9 +691,11 @@ "default": "\"\"" } }, + "additionalProperties": false, "description": "image config to use the FullyQualifiedImageName as param to set." }, "HelmConventionConfig": { + "additionalProperties": false, "description": "image config in the syntax of image.repository and image.tag." }, "Artifact": { @@ -701,7 +733,8 @@ "description": "plugin used to build this artifact." } }, - "oneOf": [ + "additionalProperties": false, + "anyOf": [ { "properties": { "docker": { @@ -779,6 +812,7 @@ "description": "criteria by which a profile can be auto-activated. This can be based on Environment Variables, the current Kubernetes context name, or depending on which Skaffold command is running." } }, + "additionalProperties": false, "description": "(beta) profiles are used to override any build, test or deploy configuration." }, "Activation": { @@ -808,6 +842,7 @@ ] } }, + "additionalProperties": false, "description": "criteria by which a profile is auto-activated." }, "ArtifactType": { @@ -828,7 +863,8 @@ "$ref": "#/definitions/JibGradleArtifact", "description": "(alpha) builds images using the Jib plugin for Gradle." } - } + }, + "additionalProperties": false }, "DockerArtifact": { "properties": { @@ -866,6 +902,7 @@ ] } }, + "additionalProperties": false, "description": "(beta) describes an artifact built from a Dockerfile, usually using docker build." }, "BazelArtifact": { @@ -894,6 +931,7 @@ ] } }, + "additionalProperties": false, "description": "(beta) describes an artifact built with Bazel." }, "JibMavenArtifact": { @@ -921,6 +959,7 @@ ] } }, + "additionalProperties": false, "description": "(alpha) builds images using the Jib plugin for Maven." }, "JibGradleArtifact": { @@ -943,6 +982,7 @@ ] } }, + "additionalProperties": false, "description": "(alpha) builds images using the Jib plugin for Gradle." } } diff --git a/hack/schemas/main.go b/hack/schemas/main.go index 3423fb65986..d5cff91c8e7 100644 --- a/hack/schemas/main.go +++ b/hack/schemas/main.go @@ -89,9 +89,9 @@ type Definition struct { Items *Definition `json:"items,omitempty"` Required []string `json:"required,omitempty"` Properties *Definitions `json:"properties,omitempty"` - AdditionalProperties *Definition `json:"additionalProperties,omitempty"` + AdditionalProperties interface{} `json:"additionalProperties,omitempty"` Type string `json:"type,omitempty"` - OneOf []*Definition `json:"oneOf,omitempty"` + AnyOf []*Definition `json:"anyOf,omitempty"` Description string `json:"description,omitempty"` Default interface{} `json:"default,omitempty"` Examples []string `json:"examples,omitempty"` @@ -203,7 +203,7 @@ func newDefinition(name string, t ast.Expr, comment string) *Definition { yamlName := yamlFieldName(field) if strings.Contains(field.Tag.Value, "inline") { - def.OneOf = append(def.OneOf, &Definition{ + def.AnyOf = append(def.AnyOf, &Definition{ Ref: defPrefix + field.Type.(*ast.Ident).Name, }) continue @@ -222,6 +222,7 @@ func newDefinition(name string, t ast.Expr, comment string) *Definition { } def.Properties.Add(yamlName, newDefinition(field.Names[0].Name, field.Type, field.Doc.Text())) + def.AdditionalProperties = false } } @@ -282,12 +283,12 @@ func generateSchema(inputPath string) ([]byte, error) { } } - // Inline oneOfs + // Inline anyOfs for _, v := range definitions.values { var options []*Definition - for _, oneOf := range v.OneOf { - ref := strings.TrimPrefix(oneOf.Ref, defPrefix) + for _, anyOf := range v.AnyOf { + ref := strings.TrimPrefix(anyOf.Ref, defPrefix) referenced := definitions.values[ref] for _, key := range referenced.Properties.keys { @@ -300,13 +301,14 @@ func generateSchema(inputPath string) ([]byte, error) { } } - v.OneOf = options + v.AnyOf = options + v.AdditionalProperties = false } schema := Schema{ Definition: &Definition{ Type: "object", - OneOf: []*Definition{{ + AnyOf: []*Definition{{ Ref: defPrefix + "SkaffoldPipeline", }}, },