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