github.com/GoogleContainerTools/skaffold/v2@v2.13.2/docs-v2/content/en/schemas/v1alpha4.json (about)

     1  {
     2    "type": "object",
     3    "anyOf": [
     4      {
     5        "$ref": "#/definitions/SkaffoldConfig"
     6      }
     7    ],
     8    "$schema": "http://json-schema.org/draft-07/schema#",
     9    "definitions": {
    10      "Artifact": {
    11        "type": "object",
    12        "anyOf": [
    13          {
    14            "properties": {
    15              "context": {
    16                "type": "string"
    17              },
    18              "image": {
    19                "type": "string"
    20              },
    21              "sync": {
    22                "additionalProperties": {
    23                  "type": "string"
    24                },
    25                "type": "object",
    26                "default": "{}"
    27              }
    28            },
    29            "preferredOrder": [
    30              "image",
    31              "context",
    32              "sync"
    33            ],
    34            "additionalProperties": false
    35          },
    36          {
    37            "properties": {
    38              "context": {
    39                "type": "string"
    40              },
    41              "docker": {
    42                "$ref": "#/definitions/DockerArtifact"
    43              },
    44              "image": {
    45                "type": "string"
    46              },
    47              "sync": {
    48                "additionalProperties": {
    49                  "type": "string"
    50                },
    51                "type": "object",
    52                "default": "{}"
    53              }
    54            },
    55            "preferredOrder": [
    56              "image",
    57              "context",
    58              "sync",
    59              "docker"
    60            ],
    61            "additionalProperties": false
    62          },
    63          {
    64            "properties": {
    65              "bazel": {
    66                "$ref": "#/definitions/BazelArtifact"
    67              },
    68              "context": {
    69                "type": "string"
    70              },
    71              "image": {
    72                "type": "string"
    73              },
    74              "sync": {
    75                "additionalProperties": {
    76                  "type": "string"
    77                },
    78                "type": "object",
    79                "default": "{}"
    80              }
    81            },
    82            "preferredOrder": [
    83              "image",
    84              "context",
    85              "sync",
    86              "bazel"
    87            ],
    88            "additionalProperties": false
    89          },
    90          {
    91            "properties": {
    92              "context": {
    93                "type": "string"
    94              },
    95              "image": {
    96                "type": "string"
    97              },
    98              "jibMaven": {
    99                "$ref": "#/definitions/JibMavenArtifact"
   100              },
   101              "sync": {
   102                "additionalProperties": {
   103                  "type": "string"
   104                },
   105                "type": "object",
   106                "default": "{}"
   107              }
   108            },
   109            "preferredOrder": [
   110              "image",
   111              "context",
   112              "sync",
   113              "jibMaven"
   114            ],
   115            "additionalProperties": false
   116          },
   117          {
   118            "properties": {
   119              "context": {
   120                "type": "string"
   121              },
   122              "image": {
   123                "type": "string"
   124              },
   125              "jibGradle": {
   126                "$ref": "#/definitions/JibGradleArtifact"
   127              },
   128              "sync": {
   129                "additionalProperties": {
   130                  "type": "string"
   131                },
   132                "type": "object",
   133                "default": "{}"
   134              }
   135            },
   136            "preferredOrder": [
   137              "image",
   138              "context",
   139              "sync",
   140              "jibGradle"
   141            ],
   142            "additionalProperties": false
   143          }
   144        ],
   145        "description": "represents items that need to be built, along with the context in which they should be built.",
   146        "x-intellij-html-description": "represents items that need to be built, along with the context in which they should be built."
   147      },
   148      "BazelArtifact": {
   149        "properties": {
   150          "target": {
   151            "type": "string"
   152          }
   153        },
   154        "preferredOrder": [
   155          "target"
   156        ],
   157        "additionalProperties": false,
   158        "type": "object",
   159        "description": "describes an artifact built with Bazel.",
   160        "x-intellij-html-description": "describes an artifact built with Bazel."
   161      },
   162      "BuildConfig": {
   163        "type": "object",
   164        "anyOf": [
   165          {
   166            "properties": {
   167              "artifacts": {
   168                "items": {
   169                  "$ref": "#/definitions/Artifact"
   170                },
   171                "type": "array"
   172              },
   173              "tagPolicy": {
   174                "$ref": "#/definitions/TagPolicy"
   175              }
   176            },
   177            "preferredOrder": [
   178              "artifacts",
   179              "tagPolicy"
   180            ],
   181            "additionalProperties": false
   182          },
   183          {
   184            "properties": {
   185              "artifacts": {
   186                "items": {
   187                  "$ref": "#/definitions/Artifact"
   188                },
   189                "type": "array"
   190              },
   191              "local": {
   192                "$ref": "#/definitions/LocalBuild"
   193              },
   194              "tagPolicy": {
   195                "$ref": "#/definitions/TagPolicy"
   196              }
   197            },
   198            "preferredOrder": [
   199              "artifacts",
   200              "tagPolicy",
   201              "local"
   202            ],
   203            "additionalProperties": false
   204          },
   205          {
   206            "properties": {
   207              "artifacts": {
   208                "items": {
   209                  "$ref": "#/definitions/Artifact"
   210                },
   211                "type": "array"
   212              },
   213              "googleCloudBuild": {
   214                "$ref": "#/definitions/GoogleCloudBuild"
   215              },
   216              "tagPolicy": {
   217                "$ref": "#/definitions/TagPolicy"
   218              }
   219            },
   220            "preferredOrder": [
   221              "artifacts",
   222              "tagPolicy",
   223              "googleCloudBuild"
   224            ],
   225            "additionalProperties": false
   226          },
   227          {
   228            "properties": {
   229              "artifacts": {
   230                "items": {
   231                  "$ref": "#/definitions/Artifact"
   232                },
   233                "type": "array"
   234              },
   235              "kaniko": {
   236                "$ref": "#/definitions/KanikoBuild"
   237              },
   238              "tagPolicy": {
   239                "$ref": "#/definitions/TagPolicy"
   240              }
   241            },
   242            "preferredOrder": [
   243              "artifacts",
   244              "tagPolicy",
   245              "kaniko"
   246            ],
   247            "additionalProperties": false
   248          }
   249        ],
   250        "description": "contains all the configuration for the build steps",
   251        "x-intellij-html-description": "contains all the configuration for the build steps"
   252      },
   253      "DateTimeTagger": {
   254        "properties": {
   255          "format": {
   256            "type": "string"
   257          },
   258          "timezone": {
   259            "type": "string"
   260          }
   261        },
   262        "preferredOrder": [
   263          "format",
   264          "timezone"
   265        ],
   266        "additionalProperties": false,
   267        "type": "object",
   268        "description": "contains the configuration for the DateTime tagger.",
   269        "x-intellij-html-description": "contains the configuration for the DateTime tagger."
   270      },
   271      "DeployConfig": {
   272        "type": "object",
   273        "anyOf": [
   274          {
   275            "additionalProperties": false
   276          },
   277          {
   278            "properties": {
   279              "helm": {
   280                "$ref": "#/definitions/HelmDeploy"
   281              }
   282            },
   283            "preferredOrder": [
   284              "helm"
   285            ],
   286            "additionalProperties": false
   287          },
   288          {
   289            "properties": {
   290              "kubectl": {
   291                "$ref": "#/definitions/KubectlDeploy"
   292              }
   293            },
   294            "preferredOrder": [
   295              "kubectl"
   296            ],
   297            "additionalProperties": false
   298          },
   299          {
   300            "properties": {
   301              "kustomize": {
   302                "$ref": "#/definitions/KustomizeDeploy"
   303              }
   304            },
   305            "preferredOrder": [
   306              "kustomize"
   307            ],
   308            "additionalProperties": false
   309          }
   310        ],
   311        "description": "contains all the configuration needed by the deploy steps",
   312        "x-intellij-html-description": "contains all the configuration needed by the deploy steps"
   313      },
   314      "DockerArtifact": {
   315        "properties": {
   316          "buildArgs": {
   317            "additionalProperties": {
   318              "type": "string"
   319            },
   320            "type": "object",
   321            "default": "{}"
   322          },
   323          "cacheFrom": {
   324            "items": {
   325              "type": "string"
   326            },
   327            "type": "array",
   328            "default": "[]"
   329          },
   330          "dockerfile": {
   331            "type": "string"
   332          },
   333          "target": {
   334            "type": "string"
   335          }
   336        },
   337        "preferredOrder": [
   338          "dockerfile",
   339          "buildArgs",
   340          "cacheFrom",
   341          "target"
   342        ],
   343        "additionalProperties": false,
   344        "type": "object",
   345        "description": "describes an artifact built from a Dockerfile, usually using `docker build`.",
   346        "x-intellij-html-description": "describes an artifact built from a Dockerfile, usually using <code>docker build</code>."
   347      },
   348      "EnvTemplateTagger": {
   349        "properties": {
   350          "template": {
   351            "type": "string"
   352          }
   353        },
   354        "preferredOrder": [
   355          "template"
   356        ],
   357        "additionalProperties": false,
   358        "type": "object",
   359        "description": "contains the configuration for the envTemplate tagger.",
   360        "x-intellij-html-description": "contains the configuration for the envTemplate tagger."
   361      },
   362      "GitTagger": {
   363        "type": "object",
   364        "description": "contains the configuration for the git tagger.",
   365        "x-intellij-html-description": "contains the configuration for the git tagger."
   366      },
   367      "GoogleCloudBuild": {
   368        "properties": {
   369          "diskSizeGb": {
   370            "type": "integer"
   371          },
   372          "dockerImage": {
   373            "type": "string"
   374          },
   375          "machineType": {
   376            "type": "string"
   377          },
   378          "projectId": {
   379            "type": "string"
   380          },
   381          "timeout": {
   382            "type": "string"
   383          }
   384        },
   385        "preferredOrder": [
   386          "projectId",
   387          "diskSizeGb",
   388          "machineType",
   389          "timeout",
   390          "dockerImage"
   391        ],
   392        "additionalProperties": false,
   393        "type": "object",
   394        "description": "contains the fields needed to do a remote build on Google Cloud Build.",
   395        "x-intellij-html-description": "contains the fields needed to do a remote build on Google Cloud Build."
   396      },
   397      "HelmConventionConfig": {
   398        "type": "object",
   399        "description": "represents image config in the syntax of image.repository and image.tag",
   400        "x-intellij-html-description": "represents image config in the syntax of image.repository and image.tag"
   401      },
   402      "HelmDeploy": {
   403        "properties": {
   404          "releases": {
   405            "items": {
   406              "$ref": "#/definitions/HelmRelease"
   407            },
   408            "type": "array"
   409          }
   410        },
   411        "preferredOrder": [
   412          "releases"
   413        ],
   414        "additionalProperties": false,
   415        "type": "object",
   416        "description": "contains the configuration needed for deploying with helm",
   417        "x-intellij-html-description": "contains the configuration needed for deploying with helm"
   418      },
   419      "HelmFQNConfig": {
   420        "properties": {
   421          "property": {
   422            "type": "string"
   423          }
   424        },
   425        "preferredOrder": [
   426          "property"
   427        ],
   428        "additionalProperties": false,
   429        "type": "object",
   430        "description": "represents image config to use the FullyQualifiedImageName as param to set",
   431        "x-intellij-html-description": "represents image config to use the FullyQualifiedImageName as param to set"
   432      },
   433      "HelmImageStrategy": {
   434        "type": "object",
   435        "anyOf": [
   436          {
   437            "additionalProperties": false
   438          },
   439          {
   440            "properties": {
   441              "fqn": {
   442                "$ref": "#/definitions/HelmFQNConfig"
   443              }
   444            },
   445            "preferredOrder": [
   446              "fqn"
   447            ],
   448            "additionalProperties": false
   449          },
   450          {
   451            "properties": {
   452              "helm": {
   453                "$ref": "#/definitions/HelmConventionConfig"
   454              }
   455            },
   456            "preferredOrder": [
   457              "helm"
   458            ],
   459            "additionalProperties": false
   460          }
   461        ]
   462      },
   463      "HelmPackaged": {
   464        "properties": {
   465          "appVersion": {
   466            "type": "string",
   467            "description": "set the appVersion on the chart to this version",
   468            "x-intellij-html-description": "set the appVersion on the chart to this version"
   469          },
   470          "version": {
   471            "type": "string",
   472            "description": "sets the version on the chart to this semver version.",
   473            "x-intellij-html-description": "sets the version on the chart to this semver version."
   474          }
   475        },
   476        "preferredOrder": [
   477          "version",
   478          "appVersion"
   479        ],
   480        "additionalProperties": false,
   481        "type": "object",
   482        "description": "represents parameters for packaging helm chart.",
   483        "x-intellij-html-description": "represents parameters for packaging helm chart."
   484      },
   485      "HelmRelease": {
   486        "properties": {
   487          "chartPath": {
   488            "type": "string"
   489          },
   490          "imageStrategy": {
   491            "$ref": "#/definitions/HelmImageStrategy"
   492          },
   493          "name": {
   494            "type": "string"
   495          },
   496          "namespace": {
   497            "type": "string"
   498          },
   499          "overrides": {},
   500          "packaged": {
   501            "$ref": "#/definitions/HelmPackaged"
   502          },
   503          "recreatePods": {
   504            "type": "boolean",
   505            "default": "false"
   506          },
   507          "setValueTemplates": {
   508            "additionalProperties": {
   509              "type": "string"
   510            },
   511            "type": "object",
   512            "default": "{}"
   513          },
   514          "setValues": {
   515            "additionalProperties": {
   516              "type": "string"
   517            },
   518            "type": "object",
   519            "default": "{}"
   520          },
   521          "values": {
   522            "additionalProperties": {
   523              "type": "string"
   524            },
   525            "type": "object",
   526            "default": "{}"
   527          },
   528          "valuesFiles": {
   529            "items": {
   530              "type": "string"
   531            },
   532            "type": "array",
   533            "default": "[]"
   534          },
   535          "version": {
   536            "type": "string"
   537          },
   538          "wait": {
   539            "type": "boolean",
   540            "default": "false"
   541          }
   542        },
   543        "preferredOrder": [
   544          "name",
   545          "chartPath",
   546          "valuesFiles",
   547          "values",
   548          "namespace",
   549          "version",
   550          "setValues",
   551          "setValueTemplates",
   552          "wait",
   553          "recreatePods",
   554          "overrides",
   555          "packaged",
   556          "imageStrategy"
   557        ],
   558        "additionalProperties": false,
   559        "type": "object"
   560      },
   561      "JibGradleArtifact": {
   562        "properties": {
   563          "project": {
   564            "type": "string",
   565            "description": "Only multi-module",
   566            "x-intellij-html-description": "Only multi-module"
   567          }
   568        },
   569        "preferredOrder": [
   570          "project"
   571        ],
   572        "additionalProperties": false,
   573        "type": "object"
   574      },
   575      "JibMavenArtifact": {
   576        "properties": {
   577          "module": {
   578            "type": "string",
   579            "description": "Only multi-module",
   580            "x-intellij-html-description": "Only multi-module"
   581          },
   582          "profile": {
   583            "type": "string"
   584          }
   585        },
   586        "preferredOrder": [
   587          "module",
   588          "profile"
   589        ],
   590        "additionalProperties": false,
   591        "type": "object"
   592      },
   593      "KanikoBuild": {
   594        "properties": {
   595          "buildContext": {
   596            "$ref": "#/definitions/KanikoBuildContext"
   597          },
   598          "image": {
   599            "type": "string"
   600          },
   601          "namespace": {
   602            "type": "string"
   603          },
   604          "pullSecret": {
   605            "type": "string"
   606          },
   607          "pullSecretName": {
   608            "type": "string"
   609          },
   610          "timeout": {
   611            "type": "string"
   612          }
   613        },
   614        "preferredOrder": [
   615          "buildContext",
   616          "pullSecret",
   617          "pullSecretName",
   618          "namespace",
   619          "timeout",
   620          "image"
   621        ],
   622        "additionalProperties": false,
   623        "type": "object",
   624        "description": "contains the fields needed to do a on-cluster build using the kaniko image",
   625        "x-intellij-html-description": "contains the fields needed to do a on-cluster build using the kaniko image"
   626      },
   627      "KanikoBuildContext": {
   628        "properties": {
   629          "gcsBucket": {
   630            "type": "string"
   631          },
   632          "localDir": {
   633            "$ref": "#/definitions/LocalDir"
   634          }
   635        },
   636        "preferredOrder": [
   637          "gcsBucket",
   638          "localDir"
   639        ],
   640        "additionalProperties": false,
   641        "type": "object",
   642        "description": "contains the different fields available to specify a kaniko build context",
   643        "x-intellij-html-description": "contains the different fields available to specify a kaniko build context"
   644      },
   645      "KubectlDeploy": {
   646        "properties": {
   647          "flags": {
   648            "$ref": "#/definitions/KubectlFlags"
   649          },
   650          "manifests": {
   651            "items": {
   652              "type": "string"
   653            },
   654            "type": "array",
   655            "default": "[]"
   656          },
   657          "remoteManifests": {
   658            "items": {
   659              "type": "string"
   660            },
   661            "type": "array",
   662            "default": "[]"
   663          }
   664        },
   665        "preferredOrder": [
   666          "manifests",
   667          "remoteManifests",
   668          "flags"
   669        ],
   670        "additionalProperties": false,
   671        "type": "object",
   672        "description": "contains the configuration needed for deploying with `kubectl apply`",
   673        "x-intellij-html-description": "contains the configuration needed for deploying with <code>kubectl apply</code>"
   674      },
   675      "KubectlFlags": {
   676        "properties": {
   677          "apply": {
   678            "items": {
   679              "type": "string"
   680            },
   681            "type": "array",
   682            "default": "[]"
   683          },
   684          "delete": {
   685            "items": {
   686              "type": "string"
   687            },
   688            "type": "array",
   689            "default": "[]"
   690          },
   691          "global": {
   692            "items": {
   693              "type": "string"
   694            },
   695            "type": "array",
   696            "default": "[]"
   697          }
   698        },
   699        "preferredOrder": [
   700          "global",
   701          "apply",
   702          "delete"
   703        ],
   704        "additionalProperties": false,
   705        "type": "object",
   706        "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).",
   707        "x-intellij-html-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)."
   708      },
   709      "KustomizeDeploy": {
   710        "properties": {
   711          "flags": {
   712            "$ref": "#/definitions/KubectlFlags"
   713          },
   714          "path": {
   715            "type": "string"
   716          }
   717        },
   718        "preferredOrder": [
   719          "path",
   720          "flags"
   721        ],
   722        "additionalProperties": false,
   723        "type": "object",
   724        "description": "contains the configuration needed for deploying with kustomize.",
   725        "x-intellij-html-description": "contains the configuration needed for deploying with kustomize."
   726      },
   727      "LocalBuild": {
   728        "properties": {
   729          "push": {
   730            "type": "boolean"
   731          },
   732          "useBuildkit": {
   733            "type": "boolean",
   734            "default": "false"
   735          },
   736          "useDockerCLI": {
   737            "type": "boolean",
   738            "default": "false"
   739          }
   740        },
   741        "preferredOrder": [
   742          "push",
   743          "useDockerCLI",
   744          "useBuildkit"
   745        ],
   746        "additionalProperties": false,
   747        "type": "object",
   748        "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository.",
   749        "x-intellij-html-description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository."
   750      },
   751      "LocalDir": {
   752        "type": "object",
   753        "description": "represents the local directory kaniko build context",
   754        "x-intellij-html-description": "represents the local directory kaniko build context"
   755      },
   756      "Profile": {
   757        "properties": {
   758          "build": {
   759            "$ref": "#/definitions/BuildConfig"
   760          },
   761          "deploy": {
   762            "$ref": "#/definitions/DeployConfig"
   763          },
   764          "name": {
   765            "type": "string"
   766          },
   767          "test": {
   768            "items": {
   769              "$ref": "#/definitions/TestCase"
   770            },
   771            "type": "array"
   772          }
   773        },
   774        "preferredOrder": [
   775          "name",
   776          "build",
   777          "test",
   778          "deploy"
   779        ],
   780        "additionalProperties": false,
   781        "type": "object",
   782        "description": "additional configuration that overrides default configuration when it is activated.",
   783        "x-intellij-html-description": "additional configuration that overrides default configuration when it is activated."
   784      },
   785      "ShaTagger": {
   786        "type": "object",
   787        "description": "contains the configuration for the SHA tagger.",
   788        "x-intellij-html-description": "contains the configuration for the SHA tagger."
   789      },
   790      "SkaffoldConfig": {
   791        "properties": {
   792          "apiVersion": {
   793            "type": "string"
   794          },
   795          "build": {
   796            "$ref": "#/definitions/BuildConfig"
   797          },
   798          "deploy": {
   799            "$ref": "#/definitions/DeployConfig"
   800          },
   801          "kind": {
   802            "type": "string"
   803          },
   804          "profiles": {
   805            "items": {
   806              "$ref": "#/definitions/Profile"
   807            },
   808            "type": "array"
   809          },
   810          "test": {
   811            "$ref": "#/definitions/TestConfig"
   812          }
   813        },
   814        "preferredOrder": [
   815          "apiVersion",
   816          "kind",
   817          "build",
   818          "test",
   819          "deploy",
   820          "profiles"
   821        ],
   822        "additionalProperties": false,
   823        "type": "object"
   824      },
   825      "TagPolicy": {
   826        "properties": {
   827          "dateTime": {
   828            "$ref": "#/definitions/DateTimeTagger"
   829          },
   830          "envTemplate": {
   831            "$ref": "#/definitions/EnvTemplateTagger"
   832          },
   833          "gitCommit": {
   834            "$ref": "#/definitions/GitTagger"
   835          },
   836          "sha256": {
   837            "$ref": "#/definitions/ShaTagger"
   838          }
   839        },
   840        "preferredOrder": [
   841          "gitCommit",
   842          "sha256",
   843          "envTemplate",
   844          "dateTime"
   845        ],
   846        "additionalProperties": false,
   847        "type": "object",
   848        "description": "contains all the configuration for the tagging step",
   849        "x-intellij-html-description": "contains all the configuration for the tagging step"
   850      },
   851      "TestCase": {
   852        "properties": {
   853          "image": {
   854            "type": "string"
   855          },
   856          "structureTests": {
   857            "items": {
   858              "type": "string"
   859            },
   860            "type": "array",
   861            "default": "[]"
   862          }
   863        },
   864        "preferredOrder": [
   865          "image",
   866          "structureTests"
   867        ],
   868        "additionalProperties": false,
   869        "type": "object",
   870        "description": "a struct containing all the specified test configuration for an image.",
   871        "x-intellij-html-description": "a struct containing all the specified test configuration for an image."
   872      },
   873      "TestConfig": {
   874        "items": {
   875          "$ref": "#/definitions/TestCase"
   876        },
   877        "type": "array"
   878      }
   879    }
   880  }