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