github.com/GoogleContainerTools/skaffold/v2@v2.13.2/docs-v2/content/en/schemas/v1alpha3.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 "imageName": { 16 "type": "string" 17 }, 18 "workspace": { 19 "type": "string" 20 } 21 }, 22 "preferredOrder": [ 23 "imageName", 24 "workspace" 25 ], 26 "additionalProperties": false 27 }, 28 { 29 "properties": { 30 "docker": { 31 "$ref": "#/definitions/DockerArtifact" 32 }, 33 "imageName": { 34 "type": "string" 35 }, 36 "workspace": { 37 "type": "string" 38 } 39 }, 40 "preferredOrder": [ 41 "imageName", 42 "workspace", 43 "docker" 44 ], 45 "additionalProperties": false 46 }, 47 { 48 "properties": { 49 "bazel": { 50 "$ref": "#/definitions/BazelArtifact" 51 }, 52 "imageName": { 53 "type": "string" 54 }, 55 "workspace": { 56 "type": "string" 57 } 58 }, 59 "preferredOrder": [ 60 "imageName", 61 "workspace", 62 "bazel" 63 ], 64 "additionalProperties": false 65 } 66 ], 67 "description": "represents items that need to be built, along with the context in which they should be built.", 68 "x-intellij-html-description": "represents items that need to be built, along with the context in which they should be built." 69 }, 70 "BazelArtifact": { 71 "properties": { 72 "target": { 73 "type": "string" 74 } 75 }, 76 "preferredOrder": [ 77 "target" 78 ], 79 "additionalProperties": false, 80 "type": "object" 81 }, 82 "BuildConfig": { 83 "type": "object", 84 "anyOf": [ 85 { 86 "properties": { 87 "artifacts": { 88 "items": { 89 "$ref": "#/definitions/Artifact" 90 }, 91 "type": "array" 92 }, 93 "tagPolicy": { 94 "$ref": "#/definitions/TagPolicy" 95 } 96 }, 97 "preferredOrder": [ 98 "artifacts", 99 "tagPolicy" 100 ], 101 "additionalProperties": false 102 }, 103 { 104 "properties": { 105 "artifacts": { 106 "items": { 107 "$ref": "#/definitions/Artifact" 108 }, 109 "type": "array" 110 }, 111 "local": { 112 "$ref": "#/definitions/LocalBuild" 113 }, 114 "tagPolicy": { 115 "$ref": "#/definitions/TagPolicy" 116 } 117 }, 118 "preferredOrder": [ 119 "artifacts", 120 "tagPolicy", 121 "local" 122 ], 123 "additionalProperties": false 124 }, 125 { 126 "properties": { 127 "artifacts": { 128 "items": { 129 "$ref": "#/definitions/Artifact" 130 }, 131 "type": "array" 132 }, 133 "googleCloudBuild": { 134 "$ref": "#/definitions/GoogleCloudBuild" 135 }, 136 "tagPolicy": { 137 "$ref": "#/definitions/TagPolicy" 138 } 139 }, 140 "preferredOrder": [ 141 "artifacts", 142 "tagPolicy", 143 "googleCloudBuild" 144 ], 145 "additionalProperties": false 146 }, 147 { 148 "properties": { 149 "artifacts": { 150 "items": { 151 "$ref": "#/definitions/Artifact" 152 }, 153 "type": "array" 154 }, 155 "kaniko": { 156 "$ref": "#/definitions/KanikoBuild" 157 }, 158 "tagPolicy": { 159 "$ref": "#/definitions/TagPolicy" 160 } 161 }, 162 "preferredOrder": [ 163 "artifacts", 164 "tagPolicy", 165 "kaniko" 166 ], 167 "additionalProperties": false 168 } 169 ], 170 "description": "contains all the configuration for the build steps", 171 "x-intellij-html-description": "contains all the configuration for the build steps" 172 }, 173 "DateTimeTagger": { 174 "properties": { 175 "format": { 176 "type": "string" 177 }, 178 "timezone": { 179 "type": "string" 180 } 181 }, 182 "preferredOrder": [ 183 "format", 184 "timezone" 185 ], 186 "additionalProperties": false, 187 "type": "object", 188 "description": "contains the configuration for the DateTime tagger.", 189 "x-intellij-html-description": "contains the configuration for the DateTime tagger." 190 }, 191 "DeployConfig": { 192 "type": "object", 193 "anyOf": [ 194 { 195 "additionalProperties": false 196 }, 197 { 198 "properties": { 199 "helm": { 200 "$ref": "#/definitions/HelmDeploy" 201 } 202 }, 203 "preferredOrder": [ 204 "helm" 205 ], 206 "additionalProperties": false 207 }, 208 { 209 "properties": { 210 "kubectl": { 211 "$ref": "#/definitions/KubectlDeploy" 212 } 213 }, 214 "preferredOrder": [ 215 "kubectl" 216 ], 217 "additionalProperties": false 218 }, 219 { 220 "properties": { 221 "kustomize": { 222 "$ref": "#/definitions/KustomizeDeploy" 223 } 224 }, 225 "preferredOrder": [ 226 "kustomize" 227 ], 228 "additionalProperties": false 229 } 230 ], 231 "description": "contains all the configuration needed by the deploy steps", 232 "x-intellij-html-description": "contains all the configuration needed by the deploy steps" 233 }, 234 "DockerArtifact": { 235 "properties": { 236 "buildArgs": { 237 "additionalProperties": { 238 "type": "string" 239 }, 240 "type": "object", 241 "default": "{}" 242 }, 243 "cacheFrom": { 244 "items": { 245 "type": "string" 246 }, 247 "type": "array", 248 "default": "[]" 249 }, 250 "dockerfilePath": { 251 "type": "string" 252 }, 253 "target": { 254 "type": "string" 255 } 256 }, 257 "preferredOrder": [ 258 "dockerfilePath", 259 "buildArgs", 260 "cacheFrom", 261 "target" 262 ], 263 "additionalProperties": false, 264 "type": "object" 265 }, 266 "EnvTemplateTagger": { 267 "properties": { 268 "template": { 269 "type": "string" 270 } 271 }, 272 "preferredOrder": [ 273 "template" 274 ], 275 "additionalProperties": false, 276 "type": "object", 277 "description": "contains the configuration for the envTemplate tagger.", 278 "x-intellij-html-description": "contains the configuration for the envTemplate tagger." 279 }, 280 "GitTagger": { 281 "type": "object", 282 "description": "contains the configuration for the git tagger.", 283 "x-intellij-html-description": "contains the configuration for the git tagger." 284 }, 285 "GoogleCloudBuild": { 286 "properties": { 287 "diskSizeGb": { 288 "type": "integer" 289 }, 290 "dockerImage": { 291 "type": "string" 292 }, 293 "machineType": { 294 "type": "string" 295 }, 296 "projectId": { 297 "type": "string" 298 }, 299 "timeout": { 300 "type": "string" 301 } 302 }, 303 "preferredOrder": [ 304 "projectId", 305 "diskSizeGb", 306 "machineType", 307 "timeout", 308 "dockerImage" 309 ], 310 "additionalProperties": false, 311 "type": "object", 312 "description": "contains the fields needed to do a remote build on Google Cloud Build.", 313 "x-intellij-html-description": "contains the fields needed to do a remote build on Google Cloud Build." 314 }, 315 "HelmConventionConfig": { 316 "type": "object", 317 "description": "represents image config in the syntax of image.repository and image.tag", 318 "x-intellij-html-description": "represents image config in the syntax of image.repository and image.tag" 319 }, 320 "HelmDeploy": { 321 "properties": { 322 "releases": { 323 "items": { 324 "$ref": "#/definitions/HelmRelease" 325 }, 326 "type": "array" 327 } 328 }, 329 "preferredOrder": [ 330 "releases" 331 ], 332 "additionalProperties": false, 333 "type": "object", 334 "description": "contains the configuration needed for deploying with helm", 335 "x-intellij-html-description": "contains the configuration needed for deploying with helm" 336 }, 337 "HelmFQNConfig": { 338 "properties": { 339 "property": { 340 "type": "string" 341 } 342 }, 343 "preferredOrder": [ 344 "property" 345 ], 346 "additionalProperties": false, 347 "type": "object", 348 "description": "represents image config to use the FullyQualifiedImageName as param to set", 349 "x-intellij-html-description": "represents image config to use the FullyQualifiedImageName as param to set" 350 }, 351 "HelmImageStrategy": { 352 "type": "object", 353 "anyOf": [ 354 { 355 "additionalProperties": false 356 }, 357 { 358 "properties": { 359 "fqn": { 360 "$ref": "#/definitions/HelmFQNConfig" 361 } 362 }, 363 "preferredOrder": [ 364 "fqn" 365 ], 366 "additionalProperties": false 367 }, 368 { 369 "properties": { 370 "helm": { 371 "$ref": "#/definitions/HelmConventionConfig" 372 } 373 }, 374 "preferredOrder": [ 375 "helm" 376 ], 377 "additionalProperties": false 378 } 379 ] 380 }, 381 "HelmPackaged": { 382 "properties": { 383 "appVersion": { 384 "type": "string", 385 "description": "set the appVersion on the chart to this version", 386 "x-intellij-html-description": "set the appVersion on the chart to this version" 387 }, 388 "version": { 389 "type": "string", 390 "description": "sets the version on the chart to this semver version.", 391 "x-intellij-html-description": "sets the version on the chart to this semver version." 392 } 393 }, 394 "preferredOrder": [ 395 "version", 396 "appVersion" 397 ], 398 "additionalProperties": false, 399 "type": "object", 400 "description": "represents parameters for packaging helm chart.", 401 "x-intellij-html-description": "represents parameters for packaging helm chart." 402 }, 403 "HelmRelease": { 404 "properties": { 405 "chartPath": { 406 "type": "string" 407 }, 408 "imageStrategy": { 409 "$ref": "#/definitions/HelmImageStrategy" 410 }, 411 "name": { 412 "type": "string" 413 }, 414 "namespace": { 415 "type": "string" 416 }, 417 "overrides": {}, 418 "packaged": { 419 "$ref": "#/definitions/HelmPackaged" 420 }, 421 "recreatePods": { 422 "type": "boolean", 423 "default": "false" 424 }, 425 "setValueTemplates": { 426 "additionalProperties": { 427 "type": "string" 428 }, 429 "type": "object", 430 "default": "{}" 431 }, 432 "setValues": { 433 "additionalProperties": { 434 "type": "string" 435 }, 436 "type": "object", 437 "default": "{}" 438 }, 439 "values": { 440 "additionalProperties": { 441 "type": "string" 442 }, 443 "type": "object", 444 "default": "{}" 445 }, 446 "valuesFiles": { 447 "items": { 448 "type": "string" 449 }, 450 "type": "array", 451 "default": "[]" 452 }, 453 "version": { 454 "type": "string" 455 }, 456 "wait": { 457 "type": "boolean", 458 "default": "false" 459 } 460 }, 461 "preferredOrder": [ 462 "name", 463 "chartPath", 464 "valuesFiles", 465 "values", 466 "namespace", 467 "version", 468 "setValues", 469 "setValueTemplates", 470 "wait", 471 "recreatePods", 472 "overrides", 473 "packaged", 474 "imageStrategy" 475 ], 476 "additionalProperties": false, 477 "type": "object" 478 }, 479 "KanikoBuild": { 480 "properties": { 481 "buildContext": { 482 "$ref": "#/definitions/KanikoBuildContext" 483 }, 484 "namespace": { 485 "type": "string" 486 }, 487 "pullSecret": { 488 "type": "string" 489 }, 490 "pullSecretName": { 491 "type": "string" 492 }, 493 "timeout": { 494 "type": "string" 495 } 496 }, 497 "preferredOrder": [ 498 "buildContext", 499 "pullSecret", 500 "pullSecretName", 501 "namespace", 502 "timeout" 503 ], 504 "additionalProperties": false, 505 "type": "object", 506 "description": "contains the fields needed to do a on-cluster build using the kaniko image", 507 "x-intellij-html-description": "contains the fields needed to do a on-cluster build using the kaniko image" 508 }, 509 "KanikoBuildContext": { 510 "properties": { 511 "gcsBucket": { 512 "type": "string" 513 } 514 }, 515 "preferredOrder": [ 516 "gcsBucket" 517 ], 518 "additionalProperties": false, 519 "type": "object", 520 "description": "contains the different fields available to specify a kaniko build context", 521 "x-intellij-html-description": "contains the different fields available to specify a kaniko build context" 522 }, 523 "KubectlDeploy": { 524 "properties": { 525 "flags": { 526 "$ref": "#/definitions/KubectlFlags" 527 }, 528 "manifests": { 529 "items": { 530 "type": "string" 531 }, 532 "type": "array", 533 "default": "[]" 534 }, 535 "remoteManifests": { 536 "items": { 537 "type": "string" 538 }, 539 "type": "array", 540 "default": "[]" 541 } 542 }, 543 "preferredOrder": [ 544 "manifests", 545 "remoteManifests", 546 "flags" 547 ], 548 "additionalProperties": false, 549 "type": "object", 550 "description": "contains the configuration needed for deploying with `kubectl apply`", 551 "x-intellij-html-description": "contains the configuration needed for deploying with <code>kubectl apply</code>" 552 }, 553 "KubectlFlags": { 554 "properties": { 555 "apply": { 556 "items": { 557 "type": "string" 558 }, 559 "type": "array", 560 "default": "[]" 561 }, 562 "delete": { 563 "items": { 564 "type": "string" 565 }, 566 "type": "array", 567 "default": "[]" 568 }, 569 "global": { 570 "items": { 571 "type": "string" 572 }, 573 "type": "array", 574 "default": "[]" 575 } 576 }, 577 "preferredOrder": [ 578 "global", 579 "apply", 580 "delete" 581 ], 582 "additionalProperties": false, 583 "type": "object", 584 "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).", 585 "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)." 586 }, 587 "KustomizeDeploy": { 588 "properties": { 589 "flags": { 590 "$ref": "#/definitions/KubectlFlags" 591 }, 592 "kustomizePath": { 593 "type": "string" 594 } 595 }, 596 "preferredOrder": [ 597 "kustomizePath", 598 "flags" 599 ], 600 "additionalProperties": false, 601 "type": "object" 602 }, 603 "LocalBuild": { 604 "properties": { 605 "skipPush": { 606 "type": "boolean" 607 }, 608 "useBuildkit": { 609 "type": "boolean", 610 "default": "false" 611 }, 612 "useDockerCLI": { 613 "type": "boolean", 614 "default": "false" 615 } 616 }, 617 "preferredOrder": [ 618 "skipPush", 619 "useDockerCLI", 620 "useBuildkit" 621 ], 622 "additionalProperties": false, 623 "type": "object", 624 "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository.", 625 "x-intellij-html-description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." 626 }, 627 "Profile": { 628 "properties": { 629 "build": { 630 "$ref": "#/definitions/BuildConfig" 631 }, 632 "deploy": { 633 "$ref": "#/definitions/DeployConfig" 634 }, 635 "name": { 636 "type": "string" 637 } 638 }, 639 "preferredOrder": [ 640 "name", 641 "build", 642 "deploy" 643 ], 644 "additionalProperties": false, 645 "type": "object", 646 "description": "additional configuration that overrides default configuration when it is activated.", 647 "x-intellij-html-description": "additional configuration that overrides default configuration when it is activated." 648 }, 649 "ShaTagger": { 650 "type": "object", 651 "description": "contains the configuration for the SHA tagger.", 652 "x-intellij-html-description": "contains the configuration for the SHA tagger." 653 }, 654 "SkaffoldConfig": { 655 "properties": { 656 "apiVersion": { 657 "type": "string" 658 }, 659 "build": { 660 "$ref": "#/definitions/BuildConfig" 661 }, 662 "deploy": { 663 "$ref": "#/definitions/DeployConfig" 664 }, 665 "kind": { 666 "type": "string" 667 }, 668 "profiles": { 669 "items": { 670 "$ref": "#/definitions/Profile" 671 }, 672 "type": "array" 673 } 674 }, 675 "preferredOrder": [ 676 "apiVersion", 677 "kind", 678 "build", 679 "deploy", 680 "profiles" 681 ], 682 "additionalProperties": false, 683 "type": "object" 684 }, 685 "TagPolicy": { 686 "properties": { 687 "dateTime": { 688 "$ref": "#/definitions/DateTimeTagger" 689 }, 690 "envTemplate": { 691 "$ref": "#/definitions/EnvTemplateTagger" 692 }, 693 "gitCommit": { 694 "$ref": "#/definitions/GitTagger" 695 }, 696 "sha256": { 697 "$ref": "#/definitions/ShaTagger" 698 } 699 }, 700 "preferredOrder": [ 701 "gitCommit", 702 "sha256", 703 "envTemplate", 704 "dateTime" 705 ], 706 "additionalProperties": false, 707 "type": "object", 708 "description": "contains all the configuration for the tagging step", 709 "x-intellij-html-description": "contains all the configuration for the tagging step" 710 } 711 } 712 }