github.com/GoogleContainerTools/skaffold/v2@v2.13.2/docs-v2/content/en/schemas/v1beta1.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 "image": { 610 "type": "string" 611 }, 612 "namespace": { 613 "type": "string" 614 }, 615 "pullSecret": { 616 "type": "string" 617 }, 618 "pullSecretName": { 619 "type": "string" 620 }, 621 "timeout": { 622 "type": "string" 623 } 624 }, 625 "preferredOrder": [ 626 "buildContext", 627 "cache", 628 "pullSecret", 629 "pullSecretName", 630 "namespace", 631 "timeout", 632 "image" 633 ], 634 "additionalProperties": false, 635 "type": "object", 636 "description": "contains the fields needed to do a on-cluster build using the kaniko image", 637 "x-intellij-html-description": "contains the fields needed to do a on-cluster build using the kaniko image" 638 }, 639 "KanikoBuildContext": { 640 "properties": { 641 "gcsBucket": { 642 "type": "string" 643 }, 644 "localDir": { 645 "$ref": "#/definitions/LocalDir" 646 } 647 }, 648 "preferredOrder": [ 649 "gcsBucket", 650 "localDir" 651 ], 652 "additionalProperties": false, 653 "type": "object", 654 "description": "contains the different fields available to specify a kaniko build context", 655 "x-intellij-html-description": "contains the different fields available to specify a kaniko build context" 656 }, 657 "KanikoCache": { 658 "properties": { 659 "repo": { 660 "type": "string" 661 } 662 }, 663 "preferredOrder": [ 664 "repo" 665 ], 666 "additionalProperties": false, 667 "type": "object", 668 "description": "contains fields related to kaniko caching", 669 "x-intellij-html-description": "contains fields related to kaniko caching" 670 }, 671 "KubectlDeploy": { 672 "properties": { 673 "flags": { 674 "$ref": "#/definitions/KubectlFlags" 675 }, 676 "manifests": { 677 "items": { 678 "type": "string" 679 }, 680 "type": "array", 681 "default": "[]" 682 }, 683 "remoteManifests": { 684 "items": { 685 "type": "string" 686 }, 687 "type": "array", 688 "default": "[]" 689 } 690 }, 691 "preferredOrder": [ 692 "manifests", 693 "remoteManifests", 694 "flags" 695 ], 696 "additionalProperties": false, 697 "type": "object", 698 "description": "contains the configuration needed for deploying with `kubectl apply`", 699 "x-intellij-html-description": "contains the configuration needed for deploying with <code>kubectl apply</code>" 700 }, 701 "KubectlFlags": { 702 "properties": { 703 "apply": { 704 "items": { 705 "type": "string" 706 }, 707 "type": "array", 708 "default": "[]" 709 }, 710 "delete": { 711 "items": { 712 "type": "string" 713 }, 714 "type": "array", 715 "default": "[]" 716 }, 717 "global": { 718 "items": { 719 "type": "string" 720 }, 721 "type": "array", 722 "default": "[]" 723 } 724 }, 725 "preferredOrder": [ 726 "global", 727 "apply", 728 "delete" 729 ], 730 "additionalProperties": false, 731 "type": "object", 732 "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).", 733 "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)." 734 }, 735 "KustomizeDeploy": { 736 "properties": { 737 "flags": { 738 "$ref": "#/definitions/KubectlFlags" 739 }, 740 "path": { 741 "type": "string" 742 } 743 }, 744 "preferredOrder": [ 745 "path", 746 "flags" 747 ], 748 "additionalProperties": false, 749 "type": "object", 750 "description": "contains the configuration needed for deploying with kustomize.", 751 "x-intellij-html-description": "contains the configuration needed for deploying with kustomize." 752 }, 753 "LocalBuild": { 754 "properties": { 755 "push": { 756 "type": "boolean" 757 }, 758 "useBuildkit": { 759 "type": "boolean", 760 "default": "false" 761 }, 762 "useDockerCLI": { 763 "type": "boolean", 764 "default": "false" 765 } 766 }, 767 "preferredOrder": [ 768 "push", 769 "useDockerCLI", 770 "useBuildkit" 771 ], 772 "additionalProperties": false, 773 "type": "object", 774 "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository.", 775 "x-intellij-html-description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." 776 }, 777 "LocalDir": { 778 "type": "object", 779 "description": "represents the local directory kaniko build context", 780 "x-intellij-html-description": "represents the local directory kaniko build context" 781 }, 782 "Profile": { 783 "properties": { 784 "build": { 785 "$ref": "#/definitions/BuildConfig" 786 }, 787 "deploy": { 788 "$ref": "#/definitions/DeployConfig" 789 }, 790 "name": { 791 "type": "string" 792 }, 793 "test": { 794 "$ref": "#/definitions/TestConfig" 795 } 796 }, 797 "preferredOrder": [ 798 "name", 799 "build", 800 "test", 801 "deploy" 802 ], 803 "additionalProperties": false, 804 "type": "object", 805 "description": "additional configuration that overrides default configuration when it is activated.", 806 "x-intellij-html-description": "additional configuration that overrides default configuration when it is activated." 807 }, 808 "ShaTagger": { 809 "type": "object", 810 "description": "contains the configuration for the SHA tagger.", 811 "x-intellij-html-description": "contains the configuration for the SHA tagger." 812 }, 813 "SkaffoldConfig": { 814 "properties": { 815 "apiVersion": { 816 "type": "string" 817 }, 818 "build": { 819 "$ref": "#/definitions/BuildConfig" 820 }, 821 "deploy": { 822 "$ref": "#/definitions/DeployConfig" 823 }, 824 "kind": { 825 "type": "string" 826 }, 827 "profiles": { 828 "items": { 829 "$ref": "#/definitions/Profile" 830 }, 831 "type": "array" 832 }, 833 "test": { 834 "$ref": "#/definitions/TestConfig" 835 } 836 }, 837 "preferredOrder": [ 838 "apiVersion", 839 "kind", 840 "build", 841 "test", 842 "deploy", 843 "profiles" 844 ], 845 "additionalProperties": false, 846 "type": "object" 847 }, 848 "TagPolicy": { 849 "properties": { 850 "dateTime": { 851 "$ref": "#/definitions/DateTimeTagger" 852 }, 853 "envTemplate": { 854 "$ref": "#/definitions/EnvTemplateTagger" 855 }, 856 "gitCommit": { 857 "$ref": "#/definitions/GitTagger" 858 }, 859 "sha256": { 860 "$ref": "#/definitions/ShaTagger" 861 } 862 }, 863 "preferredOrder": [ 864 "gitCommit", 865 "sha256", 866 "envTemplate", 867 "dateTime" 868 ], 869 "additionalProperties": false, 870 "type": "object", 871 "description": "contains all the configuration for the tagging step", 872 "x-intellij-html-description": "contains all the configuration for the tagging step" 873 }, 874 "TestCase": { 875 "properties": { 876 "image": { 877 "type": "string" 878 }, 879 "structureTests": { 880 "items": { 881 "type": "string" 882 }, 883 "type": "array", 884 "default": "[]" 885 } 886 }, 887 "preferredOrder": [ 888 "image", 889 "structureTests" 890 ], 891 "additionalProperties": false, 892 "type": "object", 893 "description": "a struct containing all the specified test configuration for an image.", 894 "x-intellij-html-description": "a struct containing all the specified test configuration for an image." 895 }, 896 "TestConfig": { 897 "items": { 898 "$ref": "#/definitions/TestCase" 899 }, 900 "type": "array" 901 } 902 } 903 }