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",
}},
},