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 }