github.com/GoogleContainerTools/skaffold/v2@v2.13.2/docs-v2/content/en/schemas/v1beta3.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 "DockerConfig": { 357 "properties": { 358 "path": { 359 "type": "string" 360 }, 361 "secretName": { 362 "type": "string" 363 } 364 }, 365 "preferredOrder": [ 366 "path", 367 "secretName" 368 ], 369 "additionalProperties": false, 370 "type": "object", 371 "description": "contains information about the docker config.json to mount", 372 "x-intellij-html-description": "contains information about the docker config.json to mount" 373 }, 374 "EnvTemplateTagger": { 375 "properties": { 376 "template": { 377 "type": "string" 378 } 379 }, 380 "preferredOrder": [ 381 "template" 382 ], 383 "additionalProperties": false, 384 "type": "object", 385 "description": "contains the configuration for the envTemplate tagger.", 386 "x-intellij-html-description": "contains the configuration for the envTemplate tagger." 387 }, 388 "GitTagger": { 389 "type": "object", 390 "description": "contains the configuration for the git tagger.", 391 "x-intellij-html-description": "contains the configuration for the git tagger." 392 }, 393 "GoogleCloudBuild": { 394 "properties": { 395 "diskSizeGb": { 396 "type": "integer" 397 }, 398 "dockerImage": { 399 "type": "string" 400 }, 401 "gradleImage": { 402 "type": "string" 403 }, 404 "machineType": { 405 "type": "string" 406 }, 407 "mavenImage": { 408 "type": "string" 409 }, 410 "projectId": { 411 "type": "string" 412 }, 413 "timeout": { 414 "type": "string" 415 } 416 }, 417 "preferredOrder": [ 418 "projectId", 419 "diskSizeGb", 420 "machineType", 421 "timeout", 422 "dockerImage", 423 "mavenImage", 424 "gradleImage" 425 ], 426 "additionalProperties": false, 427 "type": "object", 428 "description": "contains the fields needed to do a remote build on Google Cloud Build.", 429 "x-intellij-html-description": "contains the fields needed to do a remote build on Google Cloud Build." 430 }, 431 "HelmConventionConfig": { 432 "type": "object", 433 "description": "represents image config in the syntax of image.repository and image.tag", 434 "x-intellij-html-description": "represents image config in the syntax of image.repository and image.tag" 435 }, 436 "HelmDeploy": { 437 "properties": { 438 "releases": { 439 "items": { 440 "$ref": "#/definitions/HelmRelease" 441 }, 442 "type": "array" 443 } 444 }, 445 "preferredOrder": [ 446 "releases" 447 ], 448 "additionalProperties": false, 449 "type": "object", 450 "description": "contains the configuration needed for deploying with helm", 451 "x-intellij-html-description": "contains the configuration needed for deploying with helm" 452 }, 453 "HelmFQNConfig": { 454 "properties": { 455 "property": { 456 "type": "string" 457 } 458 }, 459 "preferredOrder": [ 460 "property" 461 ], 462 "additionalProperties": false, 463 "type": "object", 464 "description": "represents image config to use the FullyQualifiedImageName as param to set", 465 "x-intellij-html-description": "represents image config to use the FullyQualifiedImageName as param to set" 466 }, 467 "HelmImageStrategy": { 468 "type": "object", 469 "anyOf": [ 470 { 471 "additionalProperties": false 472 }, 473 { 474 "properties": { 475 "fqn": { 476 "$ref": "#/definitions/HelmFQNConfig" 477 } 478 }, 479 "preferredOrder": [ 480 "fqn" 481 ], 482 "additionalProperties": false 483 }, 484 { 485 "properties": { 486 "helm": { 487 "$ref": "#/definitions/HelmConventionConfig" 488 } 489 }, 490 "preferredOrder": [ 491 "helm" 492 ], 493 "additionalProperties": false 494 } 495 ] 496 }, 497 "HelmPackaged": { 498 "properties": { 499 "appVersion": { 500 "type": "string", 501 "description": "set the appVersion on the chart to this version", 502 "x-intellij-html-description": "set the appVersion on the chart to this version" 503 }, 504 "version": { 505 "type": "string", 506 "description": "sets the version on the chart to this semver version.", 507 "x-intellij-html-description": "sets the version on the chart to this semver version." 508 } 509 }, 510 "preferredOrder": [ 511 "version", 512 "appVersion" 513 ], 514 "additionalProperties": false, 515 "type": "object", 516 "description": "represents parameters for packaging helm chart.", 517 "x-intellij-html-description": "represents parameters for packaging helm chart." 518 }, 519 "HelmRelease": { 520 "properties": { 521 "chartPath": { 522 "type": "string" 523 }, 524 "imageStrategy": { 525 "$ref": "#/definitions/HelmImageStrategy" 526 }, 527 "name": { 528 "type": "string" 529 }, 530 "namespace": { 531 "type": "string" 532 }, 533 "overrides": {}, 534 "packaged": { 535 "$ref": "#/definitions/HelmPackaged" 536 }, 537 "recreatePods": { 538 "type": "boolean", 539 "default": "false" 540 }, 541 "setValueTemplates": { 542 "additionalProperties": { 543 "type": "string" 544 }, 545 "type": "object", 546 "default": "{}" 547 }, 548 "setValues": { 549 "additionalProperties": { 550 "type": "string" 551 }, 552 "type": "object", 553 "default": "{}" 554 }, 555 "values": { 556 "additionalProperties": { 557 "type": "string" 558 }, 559 "type": "object", 560 "default": "{}" 561 }, 562 "valuesFiles": { 563 "items": { 564 "type": "string" 565 }, 566 "type": "array", 567 "default": "[]" 568 }, 569 "version": { 570 "type": "string" 571 }, 572 "wait": { 573 "type": "boolean", 574 "default": "false" 575 } 576 }, 577 "preferredOrder": [ 578 "name", 579 "chartPath", 580 "valuesFiles", 581 "values", 582 "namespace", 583 "version", 584 "setValues", 585 "setValueTemplates", 586 "wait", 587 "recreatePods", 588 "overrides", 589 "packaged", 590 "imageStrategy" 591 ], 592 "additionalProperties": false, 593 "type": "object" 594 }, 595 "JibGradleArtifact": { 596 "properties": { 597 "project": { 598 "type": "string", 599 "description": "Only multi-module", 600 "x-intellij-html-description": "Only multi-module" 601 } 602 }, 603 "preferredOrder": [ 604 "project" 605 ], 606 "additionalProperties": false, 607 "type": "object" 608 }, 609 "JibMavenArtifact": { 610 "properties": { 611 "module": { 612 "type": "string", 613 "description": "Only multi-module", 614 "x-intellij-html-description": "Only multi-module" 615 }, 616 "profile": { 617 "type": "string" 618 } 619 }, 620 "preferredOrder": [ 621 "module", 622 "profile" 623 ], 624 "additionalProperties": false, 625 "type": "object" 626 }, 627 "KanikoBuild": { 628 "properties": { 629 "buildContext": { 630 "$ref": "#/definitions/KanikoBuildContext" 631 }, 632 "cache": { 633 "$ref": "#/definitions/KanikoCache" 634 }, 635 "dockerConfig": { 636 "$ref": "#/definitions/DockerConfig" 637 }, 638 "flags": { 639 "items": { 640 "type": "string" 641 }, 642 "type": "array", 643 "default": "[]" 644 }, 645 "image": { 646 "type": "string" 647 }, 648 "namespace": { 649 "type": "string" 650 }, 651 "pullSecret": { 652 "type": "string" 653 }, 654 "pullSecretName": { 655 "type": "string" 656 }, 657 "timeout": { 658 "type": "string" 659 } 660 }, 661 "preferredOrder": [ 662 "buildContext", 663 "cache", 664 "flags", 665 "pullSecret", 666 "pullSecretName", 667 "namespace", 668 "timeout", 669 "image", 670 "dockerConfig" 671 ], 672 "additionalProperties": false, 673 "type": "object", 674 "description": "contains the fields needed to do a on-cluster build using the kaniko image", 675 "x-intellij-html-description": "contains the fields needed to do a on-cluster build using the kaniko image" 676 }, 677 "KanikoBuildContext": { 678 "properties": { 679 "gcsBucket": { 680 "type": "string" 681 }, 682 "localDir": { 683 "$ref": "#/definitions/LocalDir" 684 } 685 }, 686 "preferredOrder": [ 687 "gcsBucket", 688 "localDir" 689 ], 690 "additionalProperties": false, 691 "type": "object", 692 "description": "contains the different fields available to specify a kaniko build context", 693 "x-intellij-html-description": "contains the different fields available to specify a kaniko build context" 694 }, 695 "KanikoCache": { 696 "properties": { 697 "repo": { 698 "type": "string" 699 } 700 }, 701 "preferredOrder": [ 702 "repo" 703 ], 704 "additionalProperties": false, 705 "type": "object", 706 "description": "contains fields related to kaniko caching", 707 "x-intellij-html-description": "contains fields related to kaniko caching" 708 }, 709 "KubectlDeploy": { 710 "properties": { 711 "flags": { 712 "$ref": "#/definitions/KubectlFlags" 713 }, 714 "manifests": { 715 "items": { 716 "type": "string" 717 }, 718 "type": "array", 719 "default": "[]" 720 }, 721 "remoteManifests": { 722 "items": { 723 "type": "string" 724 }, 725 "type": "array", 726 "default": "[]" 727 } 728 }, 729 "preferredOrder": [ 730 "manifests", 731 "remoteManifests", 732 "flags" 733 ], 734 "additionalProperties": false, 735 "type": "object", 736 "description": "contains the configuration needed for deploying with `kubectl apply`", 737 "x-intellij-html-description": "contains the configuration needed for deploying with <code>kubectl apply</code>" 738 }, 739 "KubectlFlags": { 740 "properties": { 741 "apply": { 742 "items": { 743 "type": "string" 744 }, 745 "type": "array", 746 "default": "[]" 747 }, 748 "delete": { 749 "items": { 750 "type": "string" 751 }, 752 "type": "array", 753 "default": "[]" 754 }, 755 "global": { 756 "items": { 757 "type": "string" 758 }, 759 "type": "array", 760 "default": "[]" 761 } 762 }, 763 "preferredOrder": [ 764 "global", 765 "apply", 766 "delete" 767 ], 768 "additionalProperties": false, 769 "type": "object", 770 "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).", 771 "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)." 772 }, 773 "KustomizeDeploy": { 774 "properties": { 775 "flags": { 776 "$ref": "#/definitions/KubectlFlags" 777 }, 778 "path": { 779 "type": "string" 780 } 781 }, 782 "preferredOrder": [ 783 "path", 784 "flags" 785 ], 786 "additionalProperties": false, 787 "type": "object", 788 "description": "contains the configuration needed for deploying with kustomize.", 789 "x-intellij-html-description": "contains the configuration needed for deploying with kustomize." 790 }, 791 "LocalBuild": { 792 "properties": { 793 "push": { 794 "type": "boolean" 795 }, 796 "useBuildkit": { 797 "type": "boolean", 798 "default": "false" 799 }, 800 "useDockerCLI": { 801 "type": "boolean", 802 "default": "false" 803 } 804 }, 805 "preferredOrder": [ 806 "push", 807 "useDockerCLI", 808 "useBuildkit" 809 ], 810 "additionalProperties": false, 811 "type": "object", 812 "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository.", 813 "x-intellij-html-description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." 814 }, 815 "LocalDir": { 816 "type": "object", 817 "description": "represents the local directory kaniko build context", 818 "x-intellij-html-description": "represents the local directory kaniko build context" 819 }, 820 "Profile": { 821 "properties": { 822 "build": { 823 "$ref": "#/definitions/BuildConfig" 824 }, 825 "deploy": { 826 "$ref": "#/definitions/DeployConfig" 827 }, 828 "name": { 829 "type": "string" 830 }, 831 "test": { 832 "$ref": "#/definitions/TestConfig" 833 } 834 }, 835 "preferredOrder": [ 836 "name", 837 "build", 838 "test", 839 "deploy" 840 ], 841 "additionalProperties": false, 842 "type": "object", 843 "description": "additional configuration that overrides default configuration when it is activated.", 844 "x-intellij-html-description": "additional configuration that overrides default configuration when it is activated." 845 }, 846 "ShaTagger": { 847 "type": "object", 848 "description": "contains the configuration for the SHA tagger.", 849 "x-intellij-html-description": "contains the configuration for the SHA tagger." 850 }, 851 "SkaffoldConfig": { 852 "properties": { 853 "apiVersion": { 854 "type": "string" 855 }, 856 "build": { 857 "$ref": "#/definitions/BuildConfig" 858 }, 859 "deploy": { 860 "$ref": "#/definitions/DeployConfig" 861 }, 862 "kind": { 863 "type": "string" 864 }, 865 "profiles": { 866 "items": { 867 "$ref": "#/definitions/Profile" 868 }, 869 "type": "array" 870 }, 871 "test": { 872 "$ref": "#/definitions/TestConfig" 873 } 874 }, 875 "preferredOrder": [ 876 "apiVersion", 877 "kind", 878 "build", 879 "test", 880 "deploy", 881 "profiles" 882 ], 883 "additionalProperties": false, 884 "type": "object" 885 }, 886 "TagPolicy": { 887 "properties": { 888 "dateTime": { 889 "$ref": "#/definitions/DateTimeTagger" 890 }, 891 "envTemplate": { 892 "$ref": "#/definitions/EnvTemplateTagger" 893 }, 894 "gitCommit": { 895 "$ref": "#/definitions/GitTagger" 896 }, 897 "sha256": { 898 "$ref": "#/definitions/ShaTagger" 899 } 900 }, 901 "preferredOrder": [ 902 "gitCommit", 903 "sha256", 904 "envTemplate", 905 "dateTime" 906 ], 907 "additionalProperties": false, 908 "type": "object", 909 "description": "contains all the configuration for the tagging step", 910 "x-intellij-html-description": "contains all the configuration for the tagging step" 911 }, 912 "TestCase": { 913 "properties": { 914 "image": { 915 "type": "string" 916 }, 917 "structureTests": { 918 "items": { 919 "type": "string" 920 }, 921 "type": "array", 922 "default": "[]" 923 } 924 }, 925 "preferredOrder": [ 926 "image", 927 "structureTests" 928 ], 929 "additionalProperties": false, 930 "type": "object", 931 "description": "a struct containing all the specified test configuration for an image.", 932 "x-intellij-html-description": "a struct containing all the specified test configuration for an image." 933 }, 934 "TestConfig": { 935 "items": { 936 "$ref": "#/definitions/TestCase" 937 }, 938 "type": "array" 939 } 940 } 941 }