github.com/GoogleContainerTools/skaffold/v2@v2.13.2/docs-v2/content/en/schemas/v1beta4.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 "Activation": { 11 "properties": { 12 "command": { 13 "type": "string" 14 }, 15 "env": { 16 "type": "string" 17 }, 18 "kubeContext": { 19 "type": "string" 20 } 21 }, 22 "preferredOrder": [ 23 "env", 24 "kubeContext", 25 "command" 26 ], 27 "additionalProperties": false, 28 "type": "object", 29 "description": "defines criteria to auto-activate a profile.", 30 "x-intellij-html-description": "defines criteria to auto-activate a profile." 31 }, 32 "Artifact": { 33 "type": "object", 34 "anyOf": [ 35 { 36 "properties": { 37 "context": { 38 "type": "string" 39 }, 40 "image": { 41 "type": "string" 42 }, 43 "sync": { 44 "additionalProperties": { 45 "type": "string" 46 }, 47 "type": "object", 48 "default": "{}" 49 } 50 }, 51 "preferredOrder": [ 52 "image", 53 "context", 54 "sync" 55 ], 56 "additionalProperties": false 57 }, 58 { 59 "properties": { 60 "context": { 61 "type": "string" 62 }, 63 "docker": { 64 "$ref": "#/definitions/DockerArtifact" 65 }, 66 "image": { 67 "type": "string" 68 }, 69 "sync": { 70 "additionalProperties": { 71 "type": "string" 72 }, 73 "type": "object", 74 "default": "{}" 75 } 76 }, 77 "preferredOrder": [ 78 "image", 79 "context", 80 "sync", 81 "docker" 82 ], 83 "additionalProperties": false 84 }, 85 { 86 "properties": { 87 "bazel": { 88 "$ref": "#/definitions/BazelArtifact" 89 }, 90 "context": { 91 "type": "string" 92 }, 93 "image": { 94 "type": "string" 95 }, 96 "sync": { 97 "additionalProperties": { 98 "type": "string" 99 }, 100 "type": "object", 101 "default": "{}" 102 } 103 }, 104 "preferredOrder": [ 105 "image", 106 "context", 107 "sync", 108 "bazel" 109 ], 110 "additionalProperties": false 111 }, 112 { 113 "properties": { 114 "context": { 115 "type": "string" 116 }, 117 "image": { 118 "type": "string" 119 }, 120 "jibMaven": { 121 "$ref": "#/definitions/JibMavenArtifact" 122 }, 123 "sync": { 124 "additionalProperties": { 125 "type": "string" 126 }, 127 "type": "object", 128 "default": "{}" 129 } 130 }, 131 "preferredOrder": [ 132 "image", 133 "context", 134 "sync", 135 "jibMaven" 136 ], 137 "additionalProperties": false 138 }, 139 { 140 "properties": { 141 "context": { 142 "type": "string" 143 }, 144 "image": { 145 "type": "string" 146 }, 147 "jibGradle": { 148 "$ref": "#/definitions/JibGradleArtifact" 149 }, 150 "sync": { 151 "additionalProperties": { 152 "type": "string" 153 }, 154 "type": "object", 155 "default": "{}" 156 } 157 }, 158 "preferredOrder": [ 159 "image", 160 "context", 161 "sync", 162 "jibGradle" 163 ], 164 "additionalProperties": false 165 } 166 ], 167 "description": "represents items that need to be built, along with the context in which they should be built.", 168 "x-intellij-html-description": "represents items that need to be built, along with the context in which they should be built." 169 }, 170 "BazelArtifact": { 171 "properties": { 172 "args": { 173 "items": { 174 "type": "string" 175 }, 176 "type": "array", 177 "default": "[]" 178 }, 179 "target": { 180 "type": "string" 181 } 182 }, 183 "preferredOrder": [ 184 "target", 185 "args" 186 ], 187 "additionalProperties": false, 188 "type": "object", 189 "description": "describes an artifact built with Bazel.", 190 "x-intellij-html-description": "describes an artifact built with Bazel." 191 }, 192 "BuildConfig": { 193 "type": "object", 194 "anyOf": [ 195 { 196 "properties": { 197 "artifacts": { 198 "items": { 199 "$ref": "#/definitions/Artifact" 200 }, 201 "type": "array" 202 }, 203 "tagPolicy": { 204 "$ref": "#/definitions/TagPolicy" 205 } 206 }, 207 "preferredOrder": [ 208 "artifacts", 209 "tagPolicy" 210 ], 211 "additionalProperties": false 212 }, 213 { 214 "properties": { 215 "artifacts": { 216 "items": { 217 "$ref": "#/definitions/Artifact" 218 }, 219 "type": "array" 220 }, 221 "local": { 222 "$ref": "#/definitions/LocalBuild" 223 }, 224 "tagPolicy": { 225 "$ref": "#/definitions/TagPolicy" 226 } 227 }, 228 "preferredOrder": [ 229 "artifacts", 230 "tagPolicy", 231 "local" 232 ], 233 "additionalProperties": false 234 }, 235 { 236 "properties": { 237 "artifacts": { 238 "items": { 239 "$ref": "#/definitions/Artifact" 240 }, 241 "type": "array" 242 }, 243 "googleCloudBuild": { 244 "$ref": "#/definitions/GoogleCloudBuild" 245 }, 246 "tagPolicy": { 247 "$ref": "#/definitions/TagPolicy" 248 } 249 }, 250 "preferredOrder": [ 251 "artifacts", 252 "tagPolicy", 253 "googleCloudBuild" 254 ], 255 "additionalProperties": false 256 }, 257 { 258 "properties": { 259 "artifacts": { 260 "items": { 261 "$ref": "#/definitions/Artifact" 262 }, 263 "type": "array" 264 }, 265 "kaniko": { 266 "$ref": "#/definitions/KanikoBuild" 267 }, 268 "tagPolicy": { 269 "$ref": "#/definitions/TagPolicy" 270 } 271 }, 272 "preferredOrder": [ 273 "artifacts", 274 "tagPolicy", 275 "kaniko" 276 ], 277 "additionalProperties": false 278 } 279 ], 280 "description": "contains all the configuration for the build steps", 281 "x-intellij-html-description": "contains all the configuration for the build steps" 282 }, 283 "DateTimeTagger": { 284 "properties": { 285 "format": { 286 "type": "string" 287 }, 288 "timezone": { 289 "type": "string" 290 } 291 }, 292 "preferredOrder": [ 293 "format", 294 "timezone" 295 ], 296 "additionalProperties": false, 297 "type": "object", 298 "description": "contains the configuration for the DateTime tagger.", 299 "x-intellij-html-description": "contains the configuration for the DateTime tagger." 300 }, 301 "DeployConfig": { 302 "type": "object", 303 "anyOf": [ 304 { 305 "additionalProperties": false 306 }, 307 { 308 "properties": { 309 "helm": { 310 "$ref": "#/definitions/HelmDeploy" 311 } 312 }, 313 "preferredOrder": [ 314 "helm" 315 ], 316 "additionalProperties": false 317 }, 318 { 319 "properties": { 320 "kubectl": { 321 "$ref": "#/definitions/KubectlDeploy" 322 } 323 }, 324 "preferredOrder": [ 325 "kubectl" 326 ], 327 "additionalProperties": false 328 }, 329 { 330 "properties": { 331 "kustomize": { 332 "$ref": "#/definitions/KustomizeDeploy" 333 } 334 }, 335 "preferredOrder": [ 336 "kustomize" 337 ], 338 "additionalProperties": false 339 } 340 ], 341 "description": "contains all the configuration needed by the deploy steps", 342 "x-intellij-html-description": "contains all the configuration needed by the deploy steps" 343 }, 344 "DockerArtifact": { 345 "properties": { 346 "buildArgs": { 347 "additionalProperties": { 348 "type": "string" 349 }, 350 "type": "object", 351 "default": "{}" 352 }, 353 "cacheFrom": { 354 "items": { 355 "type": "string" 356 }, 357 "type": "array", 358 "default": "[]" 359 }, 360 "dockerfile": { 361 "type": "string" 362 }, 363 "target": { 364 "type": "string" 365 } 366 }, 367 "preferredOrder": [ 368 "dockerfile", 369 "buildArgs", 370 "cacheFrom", 371 "target" 372 ], 373 "additionalProperties": false, 374 "type": "object", 375 "description": "describes an artifact built from a Dockerfile, usually using `docker build`.", 376 "x-intellij-html-description": "describes an artifact built from a Dockerfile, usually using <code>docker build</code>." 377 }, 378 "DockerConfig": { 379 "properties": { 380 "path": { 381 "type": "string" 382 }, 383 "secretName": { 384 "type": "string" 385 } 386 }, 387 "preferredOrder": [ 388 "path", 389 "secretName" 390 ], 391 "additionalProperties": false, 392 "type": "object", 393 "description": "contains information about the docker config.json to mount", 394 "x-intellij-html-description": "contains information about the docker config.json to mount" 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 "gradleImage": { 424 "type": "string" 425 }, 426 "machineType": { 427 "type": "string" 428 }, 429 "mavenImage": { 430 "type": "string" 431 }, 432 "projectId": { 433 "type": "string" 434 }, 435 "timeout": { 436 "type": "string" 437 } 438 }, 439 "preferredOrder": [ 440 "projectId", 441 "diskSizeGb", 442 "machineType", 443 "timeout", 444 "dockerImage", 445 "mavenImage", 446 "gradleImage" 447 ], 448 "additionalProperties": false, 449 "type": "object", 450 "description": "contains the fields needed to do a remote build on Google Cloud Build.", 451 "x-intellij-html-description": "contains the fields needed to do a remote build on Google Cloud Build." 452 }, 453 "HelmConventionConfig": { 454 "type": "object", 455 "description": "represents image config in the syntax of image.repository and image.tag", 456 "x-intellij-html-description": "represents image config in the syntax of image.repository and image.tag" 457 }, 458 "HelmDeploy": { 459 "properties": { 460 "releases": { 461 "items": { 462 "$ref": "#/definitions/HelmRelease" 463 }, 464 "type": "array" 465 } 466 }, 467 "preferredOrder": [ 468 "releases" 469 ], 470 "additionalProperties": false, 471 "type": "object", 472 "description": "contains the configuration needed for deploying with helm", 473 "x-intellij-html-description": "contains the configuration needed for deploying with helm" 474 }, 475 "HelmFQNConfig": { 476 "properties": { 477 "property": { 478 "type": "string" 479 } 480 }, 481 "preferredOrder": [ 482 "property" 483 ], 484 "additionalProperties": false, 485 "type": "object", 486 "description": "represents image config to use the FullyQualifiedImageName as param to set", 487 "x-intellij-html-description": "represents image config to use the FullyQualifiedImageName as param to set" 488 }, 489 "HelmImageStrategy": { 490 "type": "object", 491 "anyOf": [ 492 { 493 "additionalProperties": false 494 }, 495 { 496 "properties": { 497 "fqn": { 498 "$ref": "#/definitions/HelmFQNConfig" 499 } 500 }, 501 "preferredOrder": [ 502 "fqn" 503 ], 504 "additionalProperties": false 505 }, 506 { 507 "properties": { 508 "helm": { 509 "$ref": "#/definitions/HelmConventionConfig" 510 } 511 }, 512 "preferredOrder": [ 513 "helm" 514 ], 515 "additionalProperties": false 516 } 517 ] 518 }, 519 "HelmPackaged": { 520 "properties": { 521 "appVersion": { 522 "type": "string", 523 "description": "set the appVersion on the chart to this version", 524 "x-intellij-html-description": "set the appVersion on the chart to this version" 525 }, 526 "version": { 527 "type": "string", 528 "description": "sets the version on the chart to this semver version.", 529 "x-intellij-html-description": "sets the version on the chart to this semver version." 530 } 531 }, 532 "preferredOrder": [ 533 "version", 534 "appVersion" 535 ], 536 "additionalProperties": false, 537 "type": "object", 538 "description": "represents parameters for packaging helm chart.", 539 "x-intellij-html-description": "represents parameters for packaging helm chart." 540 }, 541 "HelmRelease": { 542 "properties": { 543 "chartPath": { 544 "type": "string" 545 }, 546 "imageStrategy": { 547 "$ref": "#/definitions/HelmImageStrategy" 548 }, 549 "name": { 550 "type": "string" 551 }, 552 "namespace": { 553 "type": "string" 554 }, 555 "overrides": {}, 556 "packaged": { 557 "$ref": "#/definitions/HelmPackaged" 558 }, 559 "recreatePods": { 560 "type": "boolean", 561 "default": "false" 562 }, 563 "setValueTemplates": { 564 "additionalProperties": { 565 "type": "string" 566 }, 567 "type": "object", 568 "default": "{}" 569 }, 570 "setValues": { 571 "additionalProperties": { 572 "type": "string" 573 }, 574 "type": "object", 575 "default": "{}" 576 }, 577 "skipBuildDependencies": { 578 "type": "boolean", 579 "default": "false" 580 }, 581 "values": { 582 "additionalProperties": { 583 "type": "string" 584 }, 585 "type": "object", 586 "default": "{}" 587 }, 588 "valuesFiles": { 589 "items": { 590 "type": "string" 591 }, 592 "type": "array", 593 "default": "[]" 594 }, 595 "version": { 596 "type": "string" 597 }, 598 "wait": { 599 "type": "boolean", 600 "default": "false" 601 } 602 }, 603 "preferredOrder": [ 604 "name", 605 "chartPath", 606 "valuesFiles", 607 "values", 608 "namespace", 609 "version", 610 "setValues", 611 "setValueTemplates", 612 "wait", 613 "recreatePods", 614 "skipBuildDependencies", 615 "overrides", 616 "packaged", 617 "imageStrategy" 618 ], 619 "additionalProperties": false, 620 "type": "object" 621 }, 622 "JibGradleArtifact": { 623 "properties": { 624 "project": { 625 "type": "string", 626 "description": "Only multi-module", 627 "x-intellij-html-description": "Only multi-module" 628 } 629 }, 630 "preferredOrder": [ 631 "project" 632 ], 633 "additionalProperties": false, 634 "type": "object" 635 }, 636 "JibMavenArtifact": { 637 "properties": { 638 "module": { 639 "type": "string", 640 "description": "Only multi-module", 641 "x-intellij-html-description": "Only multi-module" 642 }, 643 "profile": { 644 "type": "string" 645 } 646 }, 647 "preferredOrder": [ 648 "module", 649 "profile" 650 ], 651 "additionalProperties": false, 652 "type": "object" 653 }, 654 "KanikoBuild": { 655 "properties": { 656 "buildContext": { 657 "$ref": "#/definitions/KanikoBuildContext" 658 }, 659 "cache": { 660 "$ref": "#/definitions/KanikoCache" 661 }, 662 "dockerConfig": { 663 "$ref": "#/definitions/DockerConfig" 664 }, 665 "flags": { 666 "items": { 667 "type": "string" 668 }, 669 "type": "array", 670 "default": "[]" 671 }, 672 "image": { 673 "type": "string" 674 }, 675 "namespace": { 676 "type": "string" 677 }, 678 "pullSecret": { 679 "type": "string" 680 }, 681 "pullSecretName": { 682 "type": "string" 683 }, 684 "timeout": { 685 "type": "string" 686 } 687 }, 688 "preferredOrder": [ 689 "buildContext", 690 "cache", 691 "flags", 692 "pullSecret", 693 "pullSecretName", 694 "namespace", 695 "timeout", 696 "image", 697 "dockerConfig" 698 ], 699 "additionalProperties": false, 700 "type": "object", 701 "description": "contains the fields needed to do a on-cluster build using the kaniko image", 702 "x-intellij-html-description": "contains the fields needed to do a on-cluster build using the kaniko image" 703 }, 704 "KanikoBuildContext": { 705 "properties": { 706 "gcsBucket": { 707 "type": "string" 708 }, 709 "localDir": { 710 "$ref": "#/definitions/LocalDir" 711 } 712 }, 713 "preferredOrder": [ 714 "gcsBucket", 715 "localDir" 716 ], 717 "additionalProperties": false, 718 "type": "object", 719 "description": "contains the different fields available to specify a kaniko build context", 720 "x-intellij-html-description": "contains the different fields available to specify a kaniko build context" 721 }, 722 "KanikoCache": { 723 "properties": { 724 "repo": { 725 "type": "string" 726 } 727 }, 728 "preferredOrder": [ 729 "repo" 730 ], 731 "additionalProperties": false, 732 "type": "object", 733 "description": "contains fields related to kaniko caching", 734 "x-intellij-html-description": "contains fields related to kaniko caching" 735 }, 736 "KubectlDeploy": { 737 "properties": { 738 "flags": { 739 "$ref": "#/definitions/KubectlFlags" 740 }, 741 "manifests": { 742 "items": { 743 "type": "string" 744 }, 745 "type": "array", 746 "default": "[]" 747 }, 748 "remoteManifests": { 749 "items": { 750 "type": "string" 751 }, 752 "type": "array", 753 "default": "[]" 754 } 755 }, 756 "preferredOrder": [ 757 "manifests", 758 "remoteManifests", 759 "flags" 760 ], 761 "additionalProperties": false, 762 "type": "object", 763 "description": "contains the configuration needed for deploying with `kubectl apply`", 764 "x-intellij-html-description": "contains the configuration needed for deploying with <code>kubectl apply</code>" 765 }, 766 "KubectlFlags": { 767 "properties": { 768 "apply": { 769 "items": { 770 "type": "string" 771 }, 772 "type": "array", 773 "default": "[]" 774 }, 775 "delete": { 776 "items": { 777 "type": "string" 778 }, 779 "type": "array", 780 "default": "[]" 781 }, 782 "global": { 783 "items": { 784 "type": "string" 785 }, 786 "type": "array", 787 "default": "[]" 788 } 789 }, 790 "preferredOrder": [ 791 "global", 792 "apply", 793 "delete" 794 ], 795 "additionalProperties": false, 796 "type": "object", 797 "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).", 798 "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)." 799 }, 800 "KustomizeDeploy": { 801 "properties": { 802 "flags": { 803 "$ref": "#/definitions/KubectlFlags" 804 }, 805 "path": { 806 "type": "string" 807 } 808 }, 809 "preferredOrder": [ 810 "path", 811 "flags" 812 ], 813 "additionalProperties": false, 814 "type": "object", 815 "description": "contains the configuration needed for deploying with kustomize.", 816 "x-intellij-html-description": "contains the configuration needed for deploying with kustomize." 817 }, 818 "LocalBuild": { 819 "properties": { 820 "push": { 821 "type": "boolean" 822 }, 823 "useBuildkit": { 824 "type": "boolean", 825 "default": "false" 826 }, 827 "useDockerCLI": { 828 "type": "boolean", 829 "default": "false" 830 } 831 }, 832 "preferredOrder": [ 833 "push", 834 "useDockerCLI", 835 "useBuildkit" 836 ], 837 "additionalProperties": false, 838 "type": "object", 839 "description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository.", 840 "x-intellij-html-description": "contains the fields needed to do a build on the local docker daemon and optionally push to a repository." 841 }, 842 "LocalDir": { 843 "type": "object", 844 "description": "represents the local directory kaniko build context", 845 "x-intellij-html-description": "represents the local directory kaniko build context" 846 }, 847 "Profile": { 848 "properties": { 849 "activation": { 850 "items": { 851 "$ref": "#/definitions/Activation" 852 }, 853 "type": "array" 854 }, 855 "build": { 856 "$ref": "#/definitions/BuildConfig" 857 }, 858 "deploy": { 859 "$ref": "#/definitions/DeployConfig" 860 }, 861 "name": { 862 "type": "string" 863 }, 864 "patches": {}, 865 "test": { 866 "$ref": "#/definitions/TestConfig" 867 } 868 }, 869 "preferredOrder": [ 870 "name", 871 "build", 872 "test", 873 "deploy", 874 "patches", 875 "activation" 876 ], 877 "additionalProperties": false, 878 "type": "object", 879 "description": "additional configuration that overrides default configuration when it is activated.", 880 "x-intellij-html-description": "additional configuration that overrides default configuration when it is activated." 881 }, 882 "ShaTagger": { 883 "type": "object", 884 "description": "contains the configuration for the SHA tagger.", 885 "x-intellij-html-description": "contains the configuration for the SHA tagger." 886 }, 887 "SkaffoldConfig": { 888 "properties": { 889 "apiVersion": { 890 "type": "string" 891 }, 892 "build": { 893 "$ref": "#/definitions/BuildConfig" 894 }, 895 "deploy": { 896 "$ref": "#/definitions/DeployConfig" 897 }, 898 "kind": { 899 "type": "string" 900 }, 901 "profiles": { 902 "items": { 903 "$ref": "#/definitions/Profile" 904 }, 905 "type": "array" 906 }, 907 "test": { 908 "$ref": "#/definitions/TestConfig" 909 } 910 }, 911 "preferredOrder": [ 912 "apiVersion", 913 "kind", 914 "build", 915 "test", 916 "deploy", 917 "profiles" 918 ], 919 "additionalProperties": false, 920 "type": "object" 921 }, 922 "TagPolicy": { 923 "properties": { 924 "dateTime": { 925 "$ref": "#/definitions/DateTimeTagger" 926 }, 927 "envTemplate": { 928 "$ref": "#/definitions/EnvTemplateTagger" 929 }, 930 "gitCommit": { 931 "$ref": "#/definitions/GitTagger" 932 }, 933 "sha256": { 934 "$ref": "#/definitions/ShaTagger" 935 } 936 }, 937 "preferredOrder": [ 938 "gitCommit", 939 "sha256", 940 "envTemplate", 941 "dateTime" 942 ], 943 "additionalProperties": false, 944 "type": "object", 945 "description": "contains all the configuration for the tagging step", 946 "x-intellij-html-description": "contains all the configuration for the tagging step" 947 }, 948 "TestCase": { 949 "properties": { 950 "image": { 951 "type": "string" 952 }, 953 "structureTests": { 954 "items": { 955 "type": "string" 956 }, 957 "type": "array", 958 "default": "[]" 959 } 960 }, 961 "preferredOrder": [ 962 "image", 963 "structureTests" 964 ], 965 "additionalProperties": false, 966 "type": "object", 967 "description": "a struct containing all the specified test configuration for an image.", 968 "x-intellij-html-description": "a struct containing all the specified test configuration for an image." 969 }, 970 "TestConfig": { 971 "items": { 972 "$ref": "#/definitions/TestCase" 973 }, 974 "type": "array" 975 } 976 } 977 }