github.com/oam-dev/kubevela@v1.9.11/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml (about) 1 --- 2 apiVersion: apiextensions.k8s.io/v1 3 kind: CustomResourceDefinition 4 metadata: 5 annotations: 6 controller-gen.kubebuilder.io/version: v0.11.4 7 name: applicationrevisions.core.oam.dev 8 spec: 9 group: core.oam.dev 10 names: 11 categories: 12 - oam 13 kind: ApplicationRevision 14 listKind: ApplicationRevisionList 15 plural: applicationrevisions 16 shortNames: 17 - apprev 18 singular: applicationrevision 19 scope: Namespaced 20 versions: 21 - additionalPrinterColumns: 22 - jsonPath: .metadata.creationTimestamp 23 name: AGE 24 type: date 25 - jsonPath: .metadata.annotations['app\.oam\.dev\/publishVersion'] 26 name: PUBLISH_VERSION 27 type: string 28 - jsonPath: .status.succeeded 29 name: SUCCEEDED 30 type: string 31 name: v1beta1 32 schema: 33 openAPIV3Schema: 34 description: ApplicationRevision is the Schema for the ApplicationRevision 35 API 36 properties: 37 apiVersion: 38 description: 'APIVersion defines the versioned schema of this representation 39 of an object. Servers should convert recognized schemas to the latest 40 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 41 type: string 42 kind: 43 description: 'Kind is a string value representing the REST resource this 44 object represents. Servers may infer this from the endpoint the client 45 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 46 type: string 47 metadata: 48 type: object 49 spec: 50 description: ApplicationRevisionSpec is the spec of ApplicationRevision 51 properties: 52 application: 53 description: Application records the snapshot of the created/modified 54 Application 55 properties: 56 apiVersion: 57 description: 'APIVersion defines the versioned schema of this 58 representation of an object. Servers should convert recognized 59 schemas to the latest internal value, and may reject unrecognized 60 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 61 type: string 62 kind: 63 description: 'Kind is a string value representing the REST resource 64 this object represents. Servers may infer this from the endpoint 65 the client submits requests to. Cannot be updated. In CamelCase. 66 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 67 type: string 68 metadata: 69 properties: 70 annotations: 71 additionalProperties: 72 type: string 73 type: object 74 finalizers: 75 items: 76 type: string 77 type: array 78 labels: 79 additionalProperties: 80 type: string 81 type: object 82 name: 83 type: string 84 namespace: 85 type: string 86 type: object 87 spec: 88 description: ApplicationSpec is the spec of Application 89 properties: 90 components: 91 items: 92 description: ApplicationComponent describe the component 93 of application 94 properties: 95 dependsOn: 96 items: 97 type: string 98 type: array 99 externalRevision: 100 description: ExternalRevision specified the component 101 revisionName 102 type: string 103 inputs: 104 description: StepInputs defines variable input of WorkflowStep 105 items: 106 description: InputItem defines an input variable of 107 WorkflowStep 108 properties: 109 from: 110 type: string 111 parameterKey: 112 type: string 113 required: 114 - from 115 type: object 116 type: array 117 name: 118 type: string 119 outputs: 120 description: StepOutputs defines output variable of 121 WorkflowStep 122 items: 123 description: OutputItem defines an output variable 124 of WorkflowStep 125 properties: 126 name: 127 type: string 128 valueFrom: 129 type: string 130 required: 131 - name 132 - valueFrom 133 type: object 134 type: array 135 properties: 136 type: object 137 x-kubernetes-preserve-unknown-fields: true 138 scopes: 139 additionalProperties: 140 type: string 141 description: scopes in ApplicationComponent defines 142 the component-level scopes the format is <scope-type:scope-instance-name> 143 pairs, the key represents type of `ScopeDefinition` 144 while the value represent the name of scope instance. 145 type: object 146 x-kubernetes-preserve-unknown-fields: true 147 traits: 148 description: Traits define the trait of one component, 149 the type must be array to keep the order. 150 items: 151 description: ApplicationTrait defines the trait of 152 application 153 properties: 154 properties: 155 type: object 156 x-kubernetes-preserve-unknown-fields: true 157 type: 158 type: string 159 required: 160 - type 161 type: object 162 type: array 163 type: 164 type: string 165 required: 166 - name 167 - type 168 type: object 169 type: array 170 policies: 171 description: Policies defines the global policies for all 172 components in the app, e.g. security, metrics, gitops, multi-cluster 173 placement rules, etc. Policies are applied after components 174 are rendered and before workflow steps are executed. 175 items: 176 description: AppPolicy defines a global policy for all components 177 in the app. 178 properties: 179 name: 180 description: Name is the unique name of the policy. 181 type: string 182 properties: 183 type: object 184 x-kubernetes-preserve-unknown-fields: true 185 type: 186 description: Type is the type of the policy 187 type: string 188 required: 189 - type 190 type: object 191 type: array 192 workflow: 193 description: 'Workflow defines how to customize the control 194 logic. If workflow is specified, Vela won''t apply any resource, 195 but provide rendered output in AppRevision. Workflow steps 196 are executed in array order, and each step: - will have 197 a context in annotation. - should mark "finish" phase in 198 status.conditions.' 199 properties: 200 mode: 201 description: WorkflowExecuteMode defines the mode of workflow 202 execution 203 properties: 204 steps: 205 description: Steps is the mode of workflow steps execution 206 type: string 207 subSteps: 208 description: SubSteps is the mode of workflow sub 209 steps execution 210 type: string 211 type: object 212 ref: 213 type: string 214 steps: 215 items: 216 description: WorkflowStep defines how to execute a workflow 217 step. 218 properties: 219 dependsOn: 220 description: DependsOn is the dependency of the 221 step 222 items: 223 type: string 224 type: array 225 if: 226 description: If is the if condition of the step 227 type: string 228 inputs: 229 description: Inputs is the inputs of the step 230 items: 231 description: InputItem defines an input variable 232 of WorkflowStep 233 properties: 234 from: 235 type: string 236 parameterKey: 237 type: string 238 required: 239 - from 240 type: object 241 type: array 242 meta: 243 description: Meta is the meta data of the workflow 244 step. 245 properties: 246 alias: 247 type: string 248 type: object 249 mode: 250 description: Mode is only valid for sub steps, it 251 defines the mode of the sub steps 252 nullable: true 253 type: string 254 name: 255 description: Name is the unique name of the workflow 256 step. 257 type: string 258 outputs: 259 description: Outputs is the outputs of the step 260 items: 261 description: OutputItem defines an output variable 262 of WorkflowStep 263 properties: 264 name: 265 type: string 266 valueFrom: 267 type: string 268 required: 269 - name 270 - valueFrom 271 type: object 272 type: array 273 properties: 274 description: Properties is the properties of the 275 step 276 type: object 277 x-kubernetes-preserve-unknown-fields: true 278 subSteps: 279 items: 280 description: WorkflowStepBase defines the workflow 281 step base 282 properties: 283 dependsOn: 284 description: DependsOn is the dependency of 285 the step 286 items: 287 type: string 288 type: array 289 if: 290 description: If is the if condition of the 291 step 292 type: string 293 inputs: 294 description: Inputs is the inputs of the step 295 items: 296 description: InputItem defines an input 297 variable of WorkflowStep 298 properties: 299 from: 300 type: string 301 parameterKey: 302 type: string 303 required: 304 - from 305 type: object 306 type: array 307 meta: 308 description: Meta is the meta data of the 309 workflow step. 310 properties: 311 alias: 312 type: string 313 type: object 314 name: 315 description: Name is the unique name of the 316 workflow step. 317 type: string 318 outputs: 319 description: Outputs is the outputs of the 320 step 321 items: 322 description: OutputItem defines an output 323 variable of WorkflowStep 324 properties: 325 name: 326 type: string 327 valueFrom: 328 type: string 329 required: 330 - name 331 - valueFrom 332 type: object 333 type: array 334 properties: 335 description: Properties is the properties 336 of the step 337 type: object 338 x-kubernetes-preserve-unknown-fields: true 339 timeout: 340 description: Timeout is the timeout of the 341 step 342 type: string 343 type: 344 description: Type is the type of the workflow 345 step. 346 type: string 347 required: 348 - type 349 type: object 350 type: array 351 timeout: 352 description: Timeout is the timeout of the step 353 type: string 354 type: 355 description: Type is the type of the workflow step. 356 type: string 357 required: 358 - type 359 type: object 360 type: array 361 type: object 362 required: 363 - components 364 type: object 365 status: 366 description: AppStatus defines the observed state of Application 367 properties: 368 appliedResources: 369 description: AppliedResources record the resources that the workflow 370 step apply. 371 items: 372 description: ClusterObjectReference defines the object reference 373 with cluster. 374 properties: 375 apiVersion: 376 description: API version of the referent. 377 type: string 378 cluster: 379 type: string 380 creator: 381 type: string 382 fieldPath: 383 description: 'If referring to a piece of an object instead 384 of an entire object, this string should contain a 385 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 386 For example, if the object reference is to a container 387 within a pod, this would take on a value like: "spec.containers{name}" 388 (where "name" refers to the name of the container 389 that triggered the event) or if no container name 390 is specified "spec.containers[2]" (container with 391 index 2 in this pod). This syntax is chosen only to 392 have some well-defined way of referencing a part of 393 an object. TODO: this design is not final and this 394 field is subject to change in the future.' 395 type: string 396 kind: 397 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 398 type: string 399 name: 400 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 401 type: string 402 namespace: 403 description: 'Namespace of the referent. More info: 404 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 405 type: string 406 resourceVersion: 407 description: 'Specific resourceVersion to which this 408 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 409 type: string 410 uid: 411 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 412 type: string 413 type: object 414 x-kubernetes-map-type: atomic 415 type: array 416 components: 417 description: Components record the related Components created 418 by Application Controller 419 items: 420 description: "ObjectReference contains enough information 421 to let you inspect or modify the referred object. --- 422 New uses of this type are discouraged because of difficulty 423 describing its usage when embedded in APIs. 1. Ignored 424 fields. It includes many fields which are not generally 425 honored. For instance, ResourceVersion and FieldPath 426 are both very rarely valid in actual usage. 2. Invalid 427 usage help. It is impossible to add specific help for 428 individual usage. In most embedded usages, there are 429 particular restrictions like, \"must refer only to types 430 A and B\" or \"UID not honored\" or \"name must be restricted\". 431 Those cannot be well described when embedded. 3. Inconsistent 432 validation. Because the usages are different, the validation 433 rules are different by usage, which makes it hard for 434 users to predict what will happen. 4. The fields are both 435 imprecise and overly precise. Kind is not a precise mapping 436 to a URL. This can produce ambiguity during interpretation 437 and require a REST mapping. In most cases, the dependency 438 is on the group,resource tuple and the version of the 439 actual struct is irrelevant. 5. We cannot easily change 440 it. Because this type is embedded in many locations, 441 updates to this type will affect numerous schemas. Don't 442 make new APIs embed an underspecified API type they do 443 not control. \n Instead of using this type, create a locally 444 provided and used type that is well-focused on your reference. 445 For example, ServiceReferences for admission registration: 446 https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 447 ." 448 properties: 449 apiVersion: 450 description: API version of the referent. 451 type: string 452 fieldPath: 453 description: 'If referring to a piece of an object instead 454 of an entire object, this string should contain a 455 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 456 For example, if the object reference is to a container 457 within a pod, this would take on a value like: "spec.containers{name}" 458 (where "name" refers to the name of the container 459 that triggered the event) or if no container name 460 is specified "spec.containers[2]" (container with 461 index 2 in this pod). This syntax is chosen only to 462 have some well-defined way of referencing a part of 463 an object. TODO: this design is not final and this 464 field is subject to change in the future.' 465 type: string 466 kind: 467 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 468 type: string 469 name: 470 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 471 type: string 472 namespace: 473 description: 'Namespace of the referent. More info: 474 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 475 type: string 476 resourceVersion: 477 description: 'Specific resourceVersion to which this 478 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 479 type: string 480 uid: 481 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 482 type: string 483 type: object 484 x-kubernetes-map-type: atomic 485 type: array 486 conditions: 487 description: Conditions of the resource. 488 items: 489 description: A Condition that may apply to a resource. 490 properties: 491 lastTransitionTime: 492 description: LastTransitionTime is the last time this 493 condition transitioned from one status to another. 494 format: date-time 495 type: string 496 message: 497 description: A Message containing details about this 498 condition's last transition from one status to another, 499 if any. 500 type: string 501 reason: 502 description: A Reason for this condition's last transition 503 from one status to another. 504 type: string 505 status: 506 description: Status of this condition; is it currently 507 True, False, or Unknown? 508 type: string 509 type: 510 description: Type of this condition. At most one of 511 each condition type may apply to a resource at any 512 point in time. 513 type: string 514 required: 515 - lastTransitionTime 516 - reason 517 - status 518 - type 519 type: object 520 type: array 521 latestRevision: 522 description: LatestRevision of the application configuration 523 it generates 524 properties: 525 name: 526 type: string 527 revision: 528 format: int64 529 type: integer 530 revisionHash: 531 description: RevisionHash record the hash value of the 532 spec of ApplicationRevision object. 533 type: string 534 required: 535 - name 536 - revision 537 type: object 538 observedGeneration: 539 description: The generation observed by the application controller. 540 format: int64 541 type: integer 542 policy: 543 description: PolicyStatus records the status of policy Deprecated 544 This field is only used by EnvBinding Policy which is deprecated. 545 items: 546 description: PolicyStatus records the status of policy Deprecated 547 properties: 548 name: 549 type: string 550 status: 551 type: object 552 x-kubernetes-preserve-unknown-fields: true 553 type: 554 type: string 555 required: 556 - name 557 - type 558 type: object 559 type: array 560 services: 561 description: Services record the status of the application 562 services 563 items: 564 description: ApplicationComponentStatus record the health 565 status of App component 566 properties: 567 cluster: 568 type: string 569 env: 570 type: string 571 healthy: 572 type: boolean 573 message: 574 type: string 575 name: 576 type: string 577 namespace: 578 type: string 579 scopes: 580 items: 581 description: "ObjectReference contains enough information 582 to let you inspect or modify the referred object. 583 --- New uses of this type are discouraged because 584 of difficulty describing its usage when embedded 585 in APIs. 1. Ignored fields. It includes many fields 586 which are not generally honored. For instance, 587 ResourceVersion and FieldPath are both very rarely 588 valid in actual usage. 2. Invalid usage help. It 589 is impossible to add specific help for individual 590 usage. In most embedded usages, there are particular 591 restrictions like, \"must refer only to types A 592 and B\" or \"UID not honored\" or \"name must be 593 restricted\". Those cannot be well described when 594 embedded. 3. Inconsistent validation. Because the 595 usages are different, the validation rules are different 596 by usage, which makes it hard for users to predict 597 what will happen. 4. The fields are both imprecise 598 and overly precise. Kind is not a precise mapping 599 to a URL. This can produce ambiguity during interpretation 600 and require a REST mapping. In most cases, the 601 dependency is on the group,resource tuple and the 602 version of the actual struct is irrelevant. 5. We 603 cannot easily change it. Because this type is embedded 604 in many locations, updates to this type will affect 605 numerous schemas. Don't make new APIs embed an 606 underspecified API type they do not control. \n 607 Instead of using this type, create a locally provided 608 and used type that is well-focused on your reference. 609 For example, ServiceReferences for admission registration: 610 https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 611 ." 612 properties: 613 apiVersion: 614 description: API version of the referent. 615 type: string 616 fieldPath: 617 description: 'If referring to a piece of an object 618 instead of an entire object, this string should 619 contain a valid JSON/Go field access statement, 620 such as desiredState.manifest.containers[2]. 621 For example, if the object reference is to a 622 container within a pod, this would take on a 623 value like: "spec.containers{name}" (where "name" 624 refers to the name of the container that triggered 625 the event) or if no container name is specified 626 "spec.containers[2]" (container with index 2 627 in this pod). This syntax is chosen only to 628 have some well-defined way of referencing a 629 part of an object. TODO: this design is not 630 final and this field is subject to change in 631 the future.' 632 type: string 633 kind: 634 description: 'Kind of the referent. More info: 635 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 636 type: string 637 name: 638 description: 'Name of the referent. More info: 639 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 640 type: string 641 namespace: 642 description: 'Namespace of the referent. More 643 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 644 type: string 645 resourceVersion: 646 description: 'Specific resourceVersion to which 647 this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 648 type: string 649 uid: 650 description: 'UID of the referent. More info: 651 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 652 type: string 653 type: object 654 x-kubernetes-map-type: atomic 655 type: array 656 traits: 657 items: 658 description: ApplicationTraitStatus records the trait 659 health status 660 properties: 661 healthy: 662 type: boolean 663 message: 664 type: string 665 type: 666 type: string 667 required: 668 - healthy 669 - type 670 type: object 671 type: array 672 workloadDefinition: 673 description: WorkloadDefinition is the definition of 674 a WorkloadDefinition, such as deployments/apps.v1 675 properties: 676 apiVersion: 677 type: string 678 kind: 679 type: string 680 required: 681 - apiVersion 682 - kind 683 type: object 684 required: 685 - healthy 686 - name 687 type: object 688 type: array 689 status: 690 description: ApplicationPhase is a label for the condition 691 of an application at the current time 692 type: string 693 workflow: 694 description: Workflow record the status of workflow 695 properties: 696 appRevision: 697 type: string 698 contextBackend: 699 description: "ObjectReference contains enough information 700 to let you inspect or modify the referred object. --- 701 New uses of this type are discouraged because of difficulty 702 describing its usage when embedded in APIs. 1. Ignored 703 fields. It includes many fields which are not generally 704 honored. For instance, ResourceVersion and FieldPath 705 are both very rarely valid in actual usage. 2. Invalid 706 usage help. It is impossible to add specific help for 707 individual usage. In most embedded usages, there are 708 particular restrictions like, \"must refer only to types 709 A and B\" or \"UID not honored\" or \"name must be restricted\". 710 Those cannot be well described when embedded. 3. Inconsistent 711 validation. Because the usages are different, the validation 712 rules are different by usage, which makes it hard for 713 users to predict what will happen. 4. The fields are 714 both imprecise and overly precise. Kind is not a precise 715 mapping to a URL. This can produce ambiguity during 716 interpretation and require a REST mapping. In most 717 cases, the dependency is on the group,resource tuple 718 and the version of the actual struct is irrelevant. 719 5. We cannot easily change it. Because this type is 720 embedded in many locations, updates to this type will 721 affect numerous schemas. Don't make new APIs embed 722 an underspecified API type they do not control. \n Instead 723 of using this type, create a locally provided and used 724 type that is well-focused on your reference. For example, 725 ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 726 ." 727 properties: 728 apiVersion: 729 description: API version of the referent. 730 type: string 731 fieldPath: 732 description: 'If referring to a piece of an object 733 instead of an entire object, this string should 734 contain a valid JSON/Go field access statement, 735 such as desiredState.manifest.containers[2]. For 736 example, if the object reference is to a container 737 within a pod, this would take on a value like: "spec.containers{name}" 738 (where "name" refers to the name of the container 739 that triggered the event) or if no container name 740 is specified "spec.containers[2]" (container with 741 index 2 in this pod). This syntax is chosen only 742 to have some well-defined way of referencing a part 743 of an object. TODO: this design is not final and 744 this field is subject to change in the future.' 745 type: string 746 kind: 747 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 748 type: string 749 name: 750 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 751 type: string 752 namespace: 753 description: 'Namespace of the referent. More info: 754 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 755 type: string 756 resourceVersion: 757 description: 'Specific resourceVersion to which this 758 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 759 type: string 760 uid: 761 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 762 type: string 763 type: object 764 x-kubernetes-map-type: atomic 765 endTime: 766 format: date-time 767 nullable: true 768 type: string 769 finished: 770 type: boolean 771 message: 772 type: string 773 mode: 774 type: string 775 startTime: 776 format: date-time 777 type: string 778 status: 779 description: WorkflowRunPhase is a label for the condition 780 of a WorkflowRun at the current time 781 type: string 782 steps: 783 items: 784 description: WorkflowStepStatus record the status of 785 a workflow step, include step status and subStep status 786 properties: 787 firstExecuteTime: 788 description: FirstExecuteTime is the first time 789 this step execution. 790 format: date-time 791 type: string 792 id: 793 type: string 794 lastExecuteTime: 795 description: LastExecuteTime is the last time this 796 step execution. 797 format: date-time 798 type: string 799 message: 800 description: A human readable message indicating 801 details about why the workflowStep is in this 802 state. 803 type: string 804 name: 805 type: string 806 phase: 807 description: WorkflowStepPhase describes the phase 808 of a workflow step. 809 type: string 810 reason: 811 description: A brief CamelCase message indicating 812 details about why the workflowStep is in this 813 state. 814 type: string 815 subSteps: 816 items: 817 description: StepStatus record the base status 818 of workflow step, which could be workflow step 819 or subStep 820 properties: 821 firstExecuteTime: 822 description: FirstExecuteTime is the first 823 time this step execution. 824 format: date-time 825 type: string 826 id: 827 type: string 828 lastExecuteTime: 829 description: LastExecuteTime is the last time 830 this step execution. 831 format: date-time 832 type: string 833 message: 834 description: A human readable message indicating 835 details about why the workflowStep is in 836 this state. 837 type: string 838 name: 839 type: string 840 phase: 841 description: WorkflowStepPhase describes the 842 phase of a workflow step. 843 type: string 844 reason: 845 description: A brief CamelCase message indicating 846 details about why the workflowStep is in 847 this state. 848 type: string 849 type: 850 type: string 851 required: 852 - id 853 type: object 854 type: array 855 type: 856 type: string 857 required: 858 - id 859 type: object 860 type: array 861 suspend: 862 type: boolean 863 suspendState: 864 type: string 865 terminated: 866 type: boolean 867 required: 868 - finished 869 - mode 870 - suspend 871 - terminated 872 type: object 873 type: object 874 type: object 875 componentDefinitions: 876 additionalProperties: 877 description: ComponentDefinition is the Schema for the componentdefinitions 878 API 879 properties: 880 apiVersion: 881 description: 'APIVersion defines the versioned schema of this 882 representation of an object. Servers should convert recognized 883 schemas to the latest internal value, and may reject unrecognized 884 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 885 type: string 886 kind: 887 description: 'Kind is a string value representing the REST resource 888 this object represents. Servers may infer this from the endpoint 889 the client submits requests to. Cannot be updated. In CamelCase. 890 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 891 type: string 892 metadata: 893 properties: 894 annotations: 895 additionalProperties: 896 type: string 897 type: object 898 finalizers: 899 items: 900 type: string 901 type: array 902 labels: 903 additionalProperties: 904 type: string 905 type: object 906 name: 907 type: string 908 namespace: 909 type: string 910 type: object 911 spec: 912 description: ComponentDefinitionSpec defines the desired state 913 of ComponentDefinition 914 properties: 915 childResourceKinds: 916 description: ChildResourceKinds are the list of GVK of the 917 child resources this workload generates 918 items: 919 description: A ChildResourceKind defines a child Kubernetes 920 resource kind with a selector 921 properties: 922 apiVersion: 923 description: APIVersion of the child resource 924 type: string 925 kind: 926 description: Kind of the child resource 927 type: string 928 selector: 929 additionalProperties: 930 type: string 931 description: Selector to select the child resources 932 that the workload wants to expose to traits 933 type: object 934 required: 935 - apiVersion 936 - kind 937 type: object 938 type: array 939 extension: 940 description: Extension is used for extension needs by OAM 941 platform builders 942 type: object 943 x-kubernetes-preserve-unknown-fields: true 944 podSpecPath: 945 description: PodSpecPath indicates where/if this workload 946 has K8s podSpec field if one workload has podSpec, trait 947 can do lot's of assumption such as port, env, volume fields. 948 type: string 949 revisionLabel: 950 description: RevisionLabel indicates which label for underlying 951 resources(e.g. pods) of this workload can be used by trait 952 to create resource selectors(e.g. label selector for pods). 953 type: string 954 schematic: 955 description: Schematic defines the data format and template 956 of the encapsulation of the workload 957 properties: 958 cue: 959 description: CUE defines the encapsulation in CUE format 960 properties: 961 template: 962 description: Template defines the abstraction template 963 data of the capability, it will replace the old 964 CUE template in extension field. Template is a 965 required field if CUE is defined in Capability 966 Definition. 967 type: string 968 required: 969 - template 970 type: object 971 terraform: 972 description: Terraform is the struct to describe cloud 973 resources managed by Hashicorp Terraform 974 properties: 975 configuration: 976 description: Configuration is Terraform Configuration 977 type: string 978 customRegion: 979 description: Region is cloud provider's region. 980 It will override the region in the region field 981 of ProviderReference 982 type: string 983 deleteResource: 984 default: true 985 description: DeleteResource will determine whether 986 provisioned cloud resources will be deleted when 987 CR is deleted 988 type: boolean 989 gitCredentialsSecretReference: 990 description: GitCredentialsSecretReference specifies 991 the reference to the secret containing the git 992 credentials 993 properties: 994 name: 995 description: name is unique within a namespace 996 to reference a secret resource. 997 type: string 998 namespace: 999 description: namespace defines the space within 1000 which the secret name must be unique. 1001 type: string 1002 type: object 1003 x-kubernetes-map-type: atomic 1004 path: 1005 description: Path is the sub-directory of remote 1006 git repository. It's valid when remote is set 1007 type: string 1008 providerRef: 1009 description: ProviderReference specifies the reference 1010 to Provider 1011 properties: 1012 name: 1013 description: Name of the referenced object. 1014 type: string 1015 namespace: 1016 default: default 1017 description: Namespace of the referenced object. 1018 type: string 1019 required: 1020 - name 1021 type: object 1022 type: 1023 default: hcl 1024 description: Type specifies which Terraform configuration 1025 it is, HCL or JSON syntax 1026 enum: 1027 - hcl 1028 - json 1029 - remote 1030 type: string 1031 writeConnectionSecretToRef: 1032 description: WriteConnectionSecretToReference specifies 1033 the namespace and name of a Secret to which any 1034 connection details for this managed resource should 1035 be written. Connection details frequently include 1036 the endpoint, username, and password required 1037 to connect to the managed resource. 1038 properties: 1039 name: 1040 description: Name of the secret. 1041 type: string 1042 namespace: 1043 description: Namespace of the secret. 1044 type: string 1045 required: 1046 - name 1047 type: object 1048 required: 1049 - configuration 1050 type: object 1051 type: object 1052 status: 1053 description: Status defines the custom health policy and 1054 status message for workload 1055 properties: 1056 customStatus: 1057 description: CustomStatus defines the custom status 1058 message that could display to user 1059 type: string 1060 healthPolicy: 1061 description: HealthPolicy defines the health check policy 1062 for the abstraction 1063 type: string 1064 type: object 1065 workload: 1066 description: Workload is a workload type descriptor 1067 properties: 1068 definition: 1069 description: Definition mutually exclusive to workload.type, 1070 a embedded WorkloadDefinition 1071 properties: 1072 apiVersion: 1073 type: string 1074 kind: 1075 type: string 1076 required: 1077 - apiVersion 1078 - kind 1079 type: object 1080 type: 1081 description: Type ref to a WorkloadDefinition via name 1082 type: string 1083 type: object 1084 required: 1085 - workload 1086 type: object 1087 status: 1088 description: ComponentDefinitionStatus is the status of ComponentDefinition 1089 properties: 1090 conditions: 1091 description: Conditions of the resource. 1092 items: 1093 description: A Condition that may apply to a resource. 1094 properties: 1095 lastTransitionTime: 1096 description: LastTransitionTime is the last time this 1097 condition transitioned from one status to another. 1098 format: date-time 1099 type: string 1100 message: 1101 description: A Message containing details about this 1102 condition's last transition from one status to another, 1103 if any. 1104 type: string 1105 reason: 1106 description: A Reason for this condition's last transition 1107 from one status to another. 1108 type: string 1109 status: 1110 description: Status of this condition; is it currently 1111 True, False, or Unknown? 1112 type: string 1113 type: 1114 description: Type of this condition. At most one of 1115 each condition type may apply to a resource at any 1116 point in time. 1117 type: string 1118 required: 1119 - lastTransitionTime 1120 - reason 1121 - status 1122 - type 1123 type: object 1124 type: array 1125 configMapRef: 1126 description: ConfigMapRef refer to a ConfigMap which contains 1127 OpenAPI V3 JSON schema of Component parameters. 1128 type: string 1129 latestRevision: 1130 description: LatestRevision of the component definition 1131 properties: 1132 name: 1133 type: string 1134 revision: 1135 format: int64 1136 type: integer 1137 revisionHash: 1138 description: RevisionHash record the hash value of the 1139 spec of ApplicationRevision object. 1140 type: string 1141 required: 1142 - name 1143 - revision 1144 type: object 1145 type: object 1146 type: object 1147 description: ComponentDefinitions records the snapshot of the componentDefinitions 1148 related with the created/modified Application 1149 type: object 1150 compression: 1151 description: Compression represents the compressed components in apprev 1152 in base64 (if compression is enabled). 1153 properties: 1154 data: 1155 type: string 1156 type: 1157 description: Type the compression type 1158 type: string 1159 type: object 1160 policies: 1161 additionalProperties: 1162 description: Policy is the Schema for the policy API 1163 properties: 1164 apiVersion: 1165 description: 'APIVersion defines the versioned schema of this 1166 representation of an object. Servers should convert recognized 1167 schemas to the latest internal value, and may reject unrecognized 1168 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1169 type: string 1170 kind: 1171 description: 'Kind is a string value representing the REST resource 1172 this object represents. Servers may infer this from the endpoint 1173 the client submits requests to. Cannot be updated. In CamelCase. 1174 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1175 type: string 1176 metadata: 1177 properties: 1178 annotations: 1179 additionalProperties: 1180 type: string 1181 type: object 1182 finalizers: 1183 items: 1184 type: string 1185 type: array 1186 labels: 1187 additionalProperties: 1188 type: string 1189 type: object 1190 name: 1191 type: string 1192 namespace: 1193 type: string 1194 type: object 1195 properties: 1196 type: object 1197 x-kubernetes-preserve-unknown-fields: true 1198 type: 1199 type: string 1200 required: 1201 - type 1202 type: object 1203 description: Policies records the external policies 1204 type: object 1205 policyDefinitions: 1206 additionalProperties: 1207 description: PolicyDefinition is the Schema for the policydefinitions 1208 API 1209 properties: 1210 apiVersion: 1211 description: 'APIVersion defines the versioned schema of this 1212 representation of an object. Servers should convert recognized 1213 schemas to the latest internal value, and may reject unrecognized 1214 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1215 type: string 1216 kind: 1217 description: 'Kind is a string value representing the REST resource 1218 this object represents. Servers may infer this from the endpoint 1219 the client submits requests to. Cannot be updated. In CamelCase. 1220 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1221 type: string 1222 metadata: 1223 properties: 1224 annotations: 1225 additionalProperties: 1226 type: string 1227 type: object 1228 finalizers: 1229 items: 1230 type: string 1231 type: array 1232 labels: 1233 additionalProperties: 1234 type: string 1235 type: object 1236 name: 1237 type: string 1238 namespace: 1239 type: string 1240 type: object 1241 spec: 1242 description: PolicyDefinitionSpec defines the desired state 1243 of PolicyDefinition 1244 properties: 1245 definitionRef: 1246 description: Reference to the CustomResourceDefinition that 1247 defines this trait kind. 1248 properties: 1249 name: 1250 description: Name of the referenced CustomResourceDefinition. 1251 type: string 1252 version: 1253 description: Version indicate which version should be 1254 used if CRD has multiple versions by default it will 1255 use the first one if not specified 1256 type: string 1257 required: 1258 - name 1259 type: object 1260 manageHealthCheck: 1261 description: ManageHealthCheck means the policy will handle 1262 health checking and skip application controller built-in 1263 health checking. 1264 type: boolean 1265 schematic: 1266 description: Schematic defines the data format and template 1267 of the encapsulation of the policy definition. Only CUE 1268 schematic is supported for now. 1269 properties: 1270 cue: 1271 description: CUE defines the encapsulation in CUE format 1272 properties: 1273 template: 1274 description: Template defines the abstraction template 1275 data of the capability, it will replace the old 1276 CUE template in extension field. Template is a 1277 required field if CUE is defined in Capability 1278 Definition. 1279 type: string 1280 required: 1281 - template 1282 type: object 1283 terraform: 1284 description: Terraform is the struct to describe cloud 1285 resources managed by Hashicorp Terraform 1286 properties: 1287 configuration: 1288 description: Configuration is Terraform Configuration 1289 type: string 1290 customRegion: 1291 description: Region is cloud provider's region. 1292 It will override the region in the region field 1293 of ProviderReference 1294 type: string 1295 deleteResource: 1296 default: true 1297 description: DeleteResource will determine whether 1298 provisioned cloud resources will be deleted when 1299 CR is deleted 1300 type: boolean 1301 gitCredentialsSecretReference: 1302 description: GitCredentialsSecretReference specifies 1303 the reference to the secret containing the git 1304 credentials 1305 properties: 1306 name: 1307 description: name is unique within a namespace 1308 to reference a secret resource. 1309 type: string 1310 namespace: 1311 description: namespace defines the space within 1312 which the secret name must be unique. 1313 type: string 1314 type: object 1315 x-kubernetes-map-type: atomic 1316 path: 1317 description: Path is the sub-directory of remote 1318 git repository. It's valid when remote is set 1319 type: string 1320 providerRef: 1321 description: ProviderReference specifies the reference 1322 to Provider 1323 properties: 1324 name: 1325 description: Name of the referenced object. 1326 type: string 1327 namespace: 1328 default: default 1329 description: Namespace of the referenced object. 1330 type: string 1331 required: 1332 - name 1333 type: object 1334 type: 1335 default: hcl 1336 description: Type specifies which Terraform configuration 1337 it is, HCL or JSON syntax 1338 enum: 1339 - hcl 1340 - json 1341 - remote 1342 type: string 1343 writeConnectionSecretToRef: 1344 description: WriteConnectionSecretToReference specifies 1345 the namespace and name of a Secret to which any 1346 connection details for this managed resource should 1347 be written. Connection details frequently include 1348 the endpoint, username, and password required 1349 to connect to the managed resource. 1350 properties: 1351 name: 1352 description: Name of the secret. 1353 type: string 1354 namespace: 1355 description: Namespace of the secret. 1356 type: string 1357 required: 1358 - name 1359 type: object 1360 required: 1361 - configuration 1362 type: object 1363 type: object 1364 type: object 1365 status: 1366 description: PolicyDefinitionStatus is the status of PolicyDefinition 1367 properties: 1368 conditions: 1369 description: Conditions of the resource. 1370 items: 1371 description: A Condition that may apply to a resource. 1372 properties: 1373 lastTransitionTime: 1374 description: LastTransitionTime is the last time this 1375 condition transitioned from one status to another. 1376 format: date-time 1377 type: string 1378 message: 1379 description: A Message containing details about this 1380 condition's last transition from one status to another, 1381 if any. 1382 type: string 1383 reason: 1384 description: A Reason for this condition's last transition 1385 from one status to another. 1386 type: string 1387 status: 1388 description: Status of this condition; is it currently 1389 True, False, or Unknown? 1390 type: string 1391 type: 1392 description: Type of this condition. At most one of 1393 each condition type may apply to a resource at any 1394 point in time. 1395 type: string 1396 required: 1397 - lastTransitionTime 1398 - reason 1399 - status 1400 - type 1401 type: object 1402 type: array 1403 configMapRef: 1404 description: ConfigMapRef refer to a ConfigMap which contains 1405 OpenAPI V3 JSON schema of Component parameters. 1406 type: string 1407 latestRevision: 1408 description: LatestRevision of the component definition 1409 properties: 1410 name: 1411 type: string 1412 revision: 1413 format: int64 1414 type: integer 1415 revisionHash: 1416 description: RevisionHash record the hash value of the 1417 spec of ApplicationRevision object. 1418 type: string 1419 required: 1420 - name 1421 - revision 1422 type: object 1423 type: object 1424 type: object 1425 description: PolicyDefinitions records the snapshot of the PolicyDefinitions 1426 related with the created/modified Application 1427 type: object 1428 referredObjects: 1429 description: ReferredObjects records the referred objects used in 1430 the ref-object typed components 1431 items: 1432 description: ReferredObject the referred Kubernetes object 1433 type: object 1434 x-kubernetes-embedded-resource: true 1435 x-kubernetes-preserve-unknown-fields: true 1436 type: array 1437 x-kubernetes-preserve-unknown-fields: true 1438 traitDefinitions: 1439 additionalProperties: 1440 description: A TraitDefinition registers a kind of Kubernetes custom 1441 resource as a valid OAM trait kind by referencing its CustomResourceDefinition. 1442 The CRD is used to validate the schema of the trait when it is 1443 embedded in an OAM ApplicationConfiguration. 1444 properties: 1445 apiVersion: 1446 description: 'APIVersion defines the versioned schema of this 1447 representation of an object. Servers should convert recognized 1448 schemas to the latest internal value, and may reject unrecognized 1449 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1450 type: string 1451 kind: 1452 description: 'Kind is a string value representing the REST resource 1453 this object represents. Servers may infer this from the endpoint 1454 the client submits requests to. Cannot be updated. In CamelCase. 1455 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1456 type: string 1457 metadata: 1458 properties: 1459 annotations: 1460 additionalProperties: 1461 type: string 1462 type: object 1463 finalizers: 1464 items: 1465 type: string 1466 type: array 1467 labels: 1468 additionalProperties: 1469 type: string 1470 type: object 1471 name: 1472 type: string 1473 namespace: 1474 type: string 1475 type: object 1476 spec: 1477 description: A TraitDefinitionSpec defines the desired state 1478 of a TraitDefinition. 1479 properties: 1480 appliesToWorkloads: 1481 description: AppliesToWorkloads specifies the list of workload 1482 kinds this trait applies to. Workload kinds are specified 1483 in resource.group/version format, e.g. server.core.oam.dev/v1alpha2. 1484 Traits that omit this field apply to all workload kinds. 1485 items: 1486 type: string 1487 type: array 1488 conflictsWith: 1489 description: 'ConflictsWith specifies the list of traits(CRD 1490 name, Definition name, CRD group) which could not apply 1491 to the same workloads with this trait. Traits that omit 1492 this field can work with any other traits. Example rules: 1493 "service" # Trait definition name "services.k8s.io" # 1494 API resource/crd name "*.networking.k8s.io" # API group 1495 "labelSelector:foo=bar" # label selector labelSelector 1496 format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse' 1497 items: 1498 type: string 1499 type: array 1500 controlPlaneOnly: 1501 description: ControlPlaneOnly defines which cluster is dispatched 1502 to 1503 type: boolean 1504 definitionRef: 1505 description: Reference to the CustomResourceDefinition that 1506 defines this trait kind. 1507 properties: 1508 name: 1509 description: Name of the referenced CustomResourceDefinition. 1510 type: string 1511 version: 1512 description: Version indicate which version should be 1513 used if CRD has multiple versions by default it will 1514 use the first one if not specified 1515 type: string 1516 required: 1517 - name 1518 type: object 1519 extension: 1520 description: Extension is used for extension needs by OAM 1521 platform builders 1522 type: object 1523 x-kubernetes-preserve-unknown-fields: true 1524 manageWorkload: 1525 description: ManageWorkload defines the trait would be responsible 1526 for creating the workload 1527 type: boolean 1528 podDisruptive: 1529 description: PodDisruptive specifies whether using the trait 1530 will cause the pod to restart or not. 1531 type: boolean 1532 revisionEnabled: 1533 description: Revision indicates whether a trait is aware 1534 of component revision 1535 type: boolean 1536 schematic: 1537 description: Schematic defines the data format and template 1538 of the encapsulation of the trait. Only CUE and Kube schematic 1539 are supported for now. 1540 properties: 1541 cue: 1542 description: CUE defines the encapsulation in CUE format 1543 properties: 1544 template: 1545 description: Template defines the abstraction template 1546 data of the capability, it will replace the old 1547 CUE template in extension field. Template is a 1548 required field if CUE is defined in Capability 1549 Definition. 1550 type: string 1551 required: 1552 - template 1553 type: object 1554 terraform: 1555 description: Terraform is the struct to describe cloud 1556 resources managed by Hashicorp Terraform 1557 properties: 1558 configuration: 1559 description: Configuration is Terraform Configuration 1560 type: string 1561 customRegion: 1562 description: Region is cloud provider's region. 1563 It will override the region in the region field 1564 of ProviderReference 1565 type: string 1566 deleteResource: 1567 default: true 1568 description: DeleteResource will determine whether 1569 provisioned cloud resources will be deleted when 1570 CR is deleted 1571 type: boolean 1572 gitCredentialsSecretReference: 1573 description: GitCredentialsSecretReference specifies 1574 the reference to the secret containing the git 1575 credentials 1576 properties: 1577 name: 1578 description: name is unique within a namespace 1579 to reference a secret resource. 1580 type: string 1581 namespace: 1582 description: namespace defines the space within 1583 which the secret name must be unique. 1584 type: string 1585 type: object 1586 x-kubernetes-map-type: atomic 1587 path: 1588 description: Path is the sub-directory of remote 1589 git repository. It's valid when remote is set 1590 type: string 1591 providerRef: 1592 description: ProviderReference specifies the reference 1593 to Provider 1594 properties: 1595 name: 1596 description: Name of the referenced object. 1597 type: string 1598 namespace: 1599 default: default 1600 description: Namespace of the referenced object. 1601 type: string 1602 required: 1603 - name 1604 type: object 1605 type: 1606 default: hcl 1607 description: Type specifies which Terraform configuration 1608 it is, HCL or JSON syntax 1609 enum: 1610 - hcl 1611 - json 1612 - remote 1613 type: string 1614 writeConnectionSecretToRef: 1615 description: WriteConnectionSecretToReference specifies 1616 the namespace and name of a Secret to which any 1617 connection details for this managed resource should 1618 be written. Connection details frequently include 1619 the endpoint, username, and password required 1620 to connect to the managed resource. 1621 properties: 1622 name: 1623 description: Name of the secret. 1624 type: string 1625 namespace: 1626 description: Namespace of the secret. 1627 type: string 1628 required: 1629 - name 1630 type: object 1631 required: 1632 - configuration 1633 type: object 1634 type: object 1635 stage: 1636 description: Stage defines the stage information to which 1637 this trait resource processing belongs. Currently, PreDispatch 1638 and PostDispatch are provided, which are used to control 1639 resource pre-process and post-process respectively. 1640 type: string 1641 status: 1642 description: Status defines the custom health policy and 1643 status message for trait 1644 properties: 1645 customStatus: 1646 description: CustomStatus defines the custom status 1647 message that could display to user 1648 type: string 1649 healthPolicy: 1650 description: HealthPolicy defines the health check policy 1651 for the abstraction 1652 type: string 1653 type: object 1654 workloadRefPath: 1655 description: WorkloadRefPath indicates where/if a trait 1656 accepts a workloadRef object 1657 type: string 1658 type: object 1659 status: 1660 description: TraitDefinitionStatus is the status of TraitDefinition 1661 properties: 1662 conditions: 1663 description: Conditions of the resource. 1664 items: 1665 description: A Condition that may apply to a resource. 1666 properties: 1667 lastTransitionTime: 1668 description: LastTransitionTime is the last time this 1669 condition transitioned from one status to another. 1670 format: date-time 1671 type: string 1672 message: 1673 description: A Message containing details about this 1674 condition's last transition from one status to another, 1675 if any. 1676 type: string 1677 reason: 1678 description: A Reason for this condition's last transition 1679 from one status to another. 1680 type: string 1681 status: 1682 description: Status of this condition; is it currently 1683 True, False, or Unknown? 1684 type: string 1685 type: 1686 description: Type of this condition. At most one of 1687 each condition type may apply to a resource at any 1688 point in time. 1689 type: string 1690 required: 1691 - lastTransitionTime 1692 - reason 1693 - status 1694 - type 1695 type: object 1696 type: array 1697 configMapRef: 1698 description: ConfigMapRef refer to a ConfigMap which contains 1699 OpenAPI V3 JSON schema of Component parameters. 1700 type: string 1701 latestRevision: 1702 description: LatestRevision of the component definition 1703 properties: 1704 name: 1705 type: string 1706 revision: 1707 format: int64 1708 type: integer 1709 revisionHash: 1710 description: RevisionHash record the hash value of the 1711 spec of ApplicationRevision object. 1712 type: string 1713 required: 1714 - name 1715 - revision 1716 type: object 1717 type: object 1718 type: object 1719 description: TraitDefinitions records the snapshot of the traitDefinitions 1720 related with the created/modified Application 1721 type: object 1722 workflow: 1723 description: Workflow records the external workflow 1724 properties: 1725 apiVersion: 1726 description: 'APIVersion defines the versioned schema of this 1727 representation of an object. Servers should convert recognized 1728 schemas to the latest internal value, and may reject unrecognized 1729 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1730 type: string 1731 kind: 1732 description: 'Kind is a string value representing the REST resource 1733 this object represents. Servers may infer this from the endpoint 1734 the client submits requests to. Cannot be updated. In CamelCase. 1735 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1736 type: string 1737 metadata: 1738 properties: 1739 annotations: 1740 additionalProperties: 1741 type: string 1742 type: object 1743 finalizers: 1744 items: 1745 type: string 1746 type: array 1747 labels: 1748 additionalProperties: 1749 type: string 1750 type: object 1751 name: 1752 type: string 1753 namespace: 1754 type: string 1755 type: object 1756 mode: 1757 description: WorkflowExecuteMode defines the mode of workflow 1758 execution 1759 properties: 1760 steps: 1761 description: Steps is the mode of workflow steps execution 1762 type: string 1763 subSteps: 1764 description: SubSteps is the mode of workflow sub steps execution 1765 type: string 1766 type: object 1767 steps: 1768 items: 1769 description: WorkflowStep defines how to execute a workflow 1770 step. 1771 properties: 1772 dependsOn: 1773 description: DependsOn is the dependency of the step 1774 items: 1775 type: string 1776 type: array 1777 if: 1778 description: If is the if condition of the step 1779 type: string 1780 inputs: 1781 description: Inputs is the inputs of the step 1782 items: 1783 description: InputItem defines an input variable of WorkflowStep 1784 properties: 1785 from: 1786 type: string 1787 parameterKey: 1788 type: string 1789 required: 1790 - from 1791 type: object 1792 type: array 1793 meta: 1794 description: Meta is the meta data of the workflow step. 1795 properties: 1796 alias: 1797 type: string 1798 type: object 1799 mode: 1800 description: Mode is only valid for sub steps, it defines 1801 the mode of the sub steps 1802 nullable: true 1803 type: string 1804 name: 1805 description: Name is the unique name of the workflow step. 1806 type: string 1807 outputs: 1808 description: Outputs is the outputs of the step 1809 items: 1810 description: OutputItem defines an output variable of 1811 WorkflowStep 1812 properties: 1813 name: 1814 type: string 1815 valueFrom: 1816 type: string 1817 required: 1818 - name 1819 - valueFrom 1820 type: object 1821 type: array 1822 properties: 1823 description: Properties is the properties of the step 1824 type: object 1825 x-kubernetes-preserve-unknown-fields: true 1826 subSteps: 1827 items: 1828 description: WorkflowStepBase defines the workflow step 1829 base 1830 properties: 1831 dependsOn: 1832 description: DependsOn is the dependency of the step 1833 items: 1834 type: string 1835 type: array 1836 if: 1837 description: If is the if condition of the step 1838 type: string 1839 inputs: 1840 description: Inputs is the inputs of the step 1841 items: 1842 description: InputItem defines an input variable 1843 of WorkflowStep 1844 properties: 1845 from: 1846 type: string 1847 parameterKey: 1848 type: string 1849 required: 1850 - from 1851 type: object 1852 type: array 1853 meta: 1854 description: Meta is the meta data of the workflow 1855 step. 1856 properties: 1857 alias: 1858 type: string 1859 type: object 1860 name: 1861 description: Name is the unique name of the workflow 1862 step. 1863 type: string 1864 outputs: 1865 description: Outputs is the outputs of the step 1866 items: 1867 description: OutputItem defines an output variable 1868 of WorkflowStep 1869 properties: 1870 name: 1871 type: string 1872 valueFrom: 1873 type: string 1874 required: 1875 - name 1876 - valueFrom 1877 type: object 1878 type: array 1879 properties: 1880 description: Properties is the properties of the step 1881 type: object 1882 x-kubernetes-preserve-unknown-fields: true 1883 timeout: 1884 description: Timeout is the timeout of the step 1885 type: string 1886 type: 1887 description: Type is the type of the workflow step. 1888 type: string 1889 required: 1890 - type 1891 type: object 1892 type: array 1893 timeout: 1894 description: Timeout is the timeout of the step 1895 type: string 1896 type: 1897 description: Type is the type of the workflow step. 1898 type: string 1899 required: 1900 - type 1901 type: object 1902 type: array 1903 type: object 1904 workflowStepDefinitions: 1905 additionalProperties: 1906 description: WorkflowStepDefinition is the Schema for the workflowstepdefinitions 1907 API 1908 properties: 1909 apiVersion: 1910 description: 'APIVersion defines the versioned schema of this 1911 representation of an object. Servers should convert recognized 1912 schemas to the latest internal value, and may reject unrecognized 1913 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1914 type: string 1915 kind: 1916 description: 'Kind is a string value representing the REST resource 1917 this object represents. Servers may infer this from the endpoint 1918 the client submits requests to. Cannot be updated. In CamelCase. 1919 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1920 type: string 1921 metadata: 1922 properties: 1923 annotations: 1924 additionalProperties: 1925 type: string 1926 type: object 1927 finalizers: 1928 items: 1929 type: string 1930 type: array 1931 labels: 1932 additionalProperties: 1933 type: string 1934 type: object 1935 name: 1936 type: string 1937 namespace: 1938 type: string 1939 type: object 1940 spec: 1941 description: WorkflowStepDefinitionSpec defines the desired 1942 state of WorkflowStepDefinition 1943 properties: 1944 definitionRef: 1945 description: Reference to the CustomResourceDefinition that 1946 defines this trait kind. 1947 properties: 1948 name: 1949 description: Name of the referenced CustomResourceDefinition. 1950 type: string 1951 version: 1952 description: Version indicate which version should be 1953 used if CRD has multiple versions by default it will 1954 use the first one if not specified 1955 type: string 1956 required: 1957 - name 1958 type: object 1959 schematic: 1960 description: Schematic defines the data format and template 1961 of the encapsulation of the workflow step definition. 1962 Only CUE schematic is supported for now. 1963 properties: 1964 cue: 1965 description: CUE defines the encapsulation in CUE format 1966 properties: 1967 template: 1968 description: Template defines the abstraction template 1969 data of the capability, it will replace the old 1970 CUE template in extension field. Template is a 1971 required field if CUE is defined in Capability 1972 Definition. 1973 type: string 1974 required: 1975 - template 1976 type: object 1977 terraform: 1978 description: Terraform is the struct to describe cloud 1979 resources managed by Hashicorp Terraform 1980 properties: 1981 configuration: 1982 description: Configuration is Terraform Configuration 1983 type: string 1984 customRegion: 1985 description: Region is cloud provider's region. 1986 It will override the region in the region field 1987 of ProviderReference 1988 type: string 1989 deleteResource: 1990 default: true 1991 description: DeleteResource will determine whether 1992 provisioned cloud resources will be deleted when 1993 CR is deleted 1994 type: boolean 1995 gitCredentialsSecretReference: 1996 description: GitCredentialsSecretReference specifies 1997 the reference to the secret containing the git 1998 credentials 1999 properties: 2000 name: 2001 description: name is unique within a namespace 2002 to reference a secret resource. 2003 type: string 2004 namespace: 2005 description: namespace defines the space within 2006 which the secret name must be unique. 2007 type: string 2008 type: object 2009 x-kubernetes-map-type: atomic 2010 path: 2011 description: Path is the sub-directory of remote 2012 git repository. It's valid when remote is set 2013 type: string 2014 providerRef: 2015 description: ProviderReference specifies the reference 2016 to Provider 2017 properties: 2018 name: 2019 description: Name of the referenced object. 2020 type: string 2021 namespace: 2022 default: default 2023 description: Namespace of the referenced object. 2024 type: string 2025 required: 2026 - name 2027 type: object 2028 type: 2029 default: hcl 2030 description: Type specifies which Terraform configuration 2031 it is, HCL or JSON syntax 2032 enum: 2033 - hcl 2034 - json 2035 - remote 2036 type: string 2037 writeConnectionSecretToRef: 2038 description: WriteConnectionSecretToReference specifies 2039 the namespace and name of a Secret to which any 2040 connection details for this managed resource should 2041 be written. Connection details frequently include 2042 the endpoint, username, and password required 2043 to connect to the managed resource. 2044 properties: 2045 name: 2046 description: Name of the secret. 2047 type: string 2048 namespace: 2049 description: Namespace of the secret. 2050 type: string 2051 required: 2052 - name 2053 type: object 2054 required: 2055 - configuration 2056 type: object 2057 type: object 2058 type: object 2059 status: 2060 description: WorkflowStepDefinitionStatus is the status of WorkflowStepDefinition 2061 properties: 2062 conditions: 2063 description: Conditions of the resource. 2064 items: 2065 description: A Condition that may apply to a resource. 2066 properties: 2067 lastTransitionTime: 2068 description: LastTransitionTime is the last time this 2069 condition transitioned from one status to another. 2070 format: date-time 2071 type: string 2072 message: 2073 description: A Message containing details about this 2074 condition's last transition from one status to another, 2075 if any. 2076 type: string 2077 reason: 2078 description: A Reason for this condition's last transition 2079 from one status to another. 2080 type: string 2081 status: 2082 description: Status of this condition; is it currently 2083 True, False, or Unknown? 2084 type: string 2085 type: 2086 description: Type of this condition. At most one of 2087 each condition type may apply to a resource at any 2088 point in time. 2089 type: string 2090 required: 2091 - lastTransitionTime 2092 - reason 2093 - status 2094 - type 2095 type: object 2096 type: array 2097 configMapRef: 2098 description: ConfigMapRef refer to a ConfigMap which contains 2099 OpenAPI V3 JSON schema of Component parameters. 2100 type: string 2101 latestRevision: 2102 description: LatestRevision of the component definition 2103 properties: 2104 name: 2105 type: string 2106 revision: 2107 format: int64 2108 type: integer 2109 revisionHash: 2110 description: RevisionHash record the hash value of the 2111 spec of ApplicationRevision object. 2112 type: string 2113 required: 2114 - name 2115 - revision 2116 type: object 2117 type: object 2118 type: object 2119 description: WorkflowStepDefinitions records the snapshot of the WorkflowStepDefinitions 2120 related with the created/modified Application 2121 type: object 2122 workloadDefinitions: 2123 additionalProperties: 2124 description: A WorkloadDefinition registers a kind of Kubernetes 2125 custom resource as a valid OAM workload kind by referencing its 2126 CustomResourceDefinition. The CRD is used to validate the schema 2127 of the workload when it is embedded in an OAM Component. 2128 properties: 2129 apiVersion: 2130 description: 'APIVersion defines the versioned schema of this 2131 representation of an object. Servers should convert recognized 2132 schemas to the latest internal value, and may reject unrecognized 2133 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 2134 type: string 2135 kind: 2136 description: 'Kind is a string value representing the REST resource 2137 this object represents. Servers may infer this from the endpoint 2138 the client submits requests to. Cannot be updated. In CamelCase. 2139 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2140 type: string 2141 metadata: 2142 properties: 2143 annotations: 2144 additionalProperties: 2145 type: string 2146 type: object 2147 finalizers: 2148 items: 2149 type: string 2150 type: array 2151 labels: 2152 additionalProperties: 2153 type: string 2154 type: object 2155 name: 2156 type: string 2157 namespace: 2158 type: string 2159 type: object 2160 spec: 2161 description: A WorkloadDefinitionSpec defines the desired state 2162 of a WorkloadDefinition. 2163 properties: 2164 childResourceKinds: 2165 description: ChildResourceKinds are the list of GVK of the 2166 child resources this workload generates 2167 items: 2168 description: A ChildResourceKind defines a child Kubernetes 2169 resource kind with a selector 2170 properties: 2171 apiVersion: 2172 description: APIVersion of the child resource 2173 type: string 2174 kind: 2175 description: Kind of the child resource 2176 type: string 2177 selector: 2178 additionalProperties: 2179 type: string 2180 description: Selector to select the child resources 2181 that the workload wants to expose to traits 2182 type: object 2183 required: 2184 - apiVersion 2185 - kind 2186 type: object 2187 type: array 2188 definitionRef: 2189 description: Reference to the CustomResourceDefinition that 2190 defines this workload kind. 2191 properties: 2192 name: 2193 description: Name of the referenced CustomResourceDefinition. 2194 type: string 2195 version: 2196 description: Version indicate which version should be 2197 used if CRD has multiple versions by default it will 2198 use the first one if not specified 2199 type: string 2200 required: 2201 - name 2202 type: object 2203 extension: 2204 description: Extension is used for extension needs by OAM 2205 platform builders 2206 type: object 2207 x-kubernetes-preserve-unknown-fields: true 2208 podSpecPath: 2209 description: PodSpecPath indicates where/if this workload 2210 has K8s podSpec field if one workload has podSpec, trait 2211 can do lot's of assumption such as port, env, volume fields. 2212 type: string 2213 revisionLabel: 2214 description: RevisionLabel indicates which label for underlying 2215 resources(e.g. pods) of this workload can be used by trait 2216 to create resource selectors(e.g. label selector for pods). 2217 type: string 2218 schematic: 2219 description: Schematic defines the data format and template 2220 of the encapsulation of the workload 2221 properties: 2222 cue: 2223 description: CUE defines the encapsulation in CUE format 2224 properties: 2225 template: 2226 description: Template defines the abstraction template 2227 data of the capability, it will replace the old 2228 CUE template in extension field. Template is a 2229 required field if CUE is defined in Capability 2230 Definition. 2231 type: string 2232 required: 2233 - template 2234 type: object 2235 terraform: 2236 description: Terraform is the struct to describe cloud 2237 resources managed by Hashicorp Terraform 2238 properties: 2239 configuration: 2240 description: Configuration is Terraform Configuration 2241 type: string 2242 customRegion: 2243 description: Region is cloud provider's region. 2244 It will override the region in the region field 2245 of ProviderReference 2246 type: string 2247 deleteResource: 2248 default: true 2249 description: DeleteResource will determine whether 2250 provisioned cloud resources will be deleted when 2251 CR is deleted 2252 type: boolean 2253 gitCredentialsSecretReference: 2254 description: GitCredentialsSecretReference specifies 2255 the reference to the secret containing the git 2256 credentials 2257 properties: 2258 name: 2259 description: name is unique within a namespace 2260 to reference a secret resource. 2261 type: string 2262 namespace: 2263 description: namespace defines the space within 2264 which the secret name must be unique. 2265 type: string 2266 type: object 2267 x-kubernetes-map-type: atomic 2268 path: 2269 description: Path is the sub-directory of remote 2270 git repository. It's valid when remote is set 2271 type: string 2272 providerRef: 2273 description: ProviderReference specifies the reference 2274 to Provider 2275 properties: 2276 name: 2277 description: Name of the referenced object. 2278 type: string 2279 namespace: 2280 default: default 2281 description: Namespace of the referenced object. 2282 type: string 2283 required: 2284 - name 2285 type: object 2286 type: 2287 default: hcl 2288 description: Type specifies which Terraform configuration 2289 it is, HCL or JSON syntax 2290 enum: 2291 - hcl 2292 - json 2293 - remote 2294 type: string 2295 writeConnectionSecretToRef: 2296 description: WriteConnectionSecretToReference specifies 2297 the namespace and name of a Secret to which any 2298 connection details for this managed resource should 2299 be written. Connection details frequently include 2300 the endpoint, username, and password required 2301 to connect to the managed resource. 2302 properties: 2303 name: 2304 description: Name of the secret. 2305 type: string 2306 namespace: 2307 description: Namespace of the secret. 2308 type: string 2309 required: 2310 - name 2311 type: object 2312 required: 2313 - configuration 2314 type: object 2315 type: object 2316 status: 2317 description: Status defines the custom health policy and 2318 status message for workload 2319 properties: 2320 customStatus: 2321 description: CustomStatus defines the custom status 2322 message that could display to user 2323 type: string 2324 healthPolicy: 2325 description: HealthPolicy defines the health check policy 2326 for the abstraction 2327 type: string 2328 type: object 2329 required: 2330 - definitionRef 2331 type: object 2332 status: 2333 description: WorkloadDefinitionStatus is the status of WorkloadDefinition 2334 properties: 2335 conditions: 2336 description: Conditions of the resource. 2337 items: 2338 description: A Condition that may apply to a resource. 2339 properties: 2340 lastTransitionTime: 2341 description: LastTransitionTime is the last time this 2342 condition transitioned from one status to another. 2343 format: date-time 2344 type: string 2345 message: 2346 description: A Message containing details about this 2347 condition's last transition from one status to another, 2348 if any. 2349 type: string 2350 reason: 2351 description: A Reason for this condition's last transition 2352 from one status to another. 2353 type: string 2354 status: 2355 description: Status of this condition; is it currently 2356 True, False, or Unknown? 2357 type: string 2358 type: 2359 description: Type of this condition. At most one of 2360 each condition type may apply to a resource at any 2361 point in time. 2362 type: string 2363 required: 2364 - lastTransitionTime 2365 - reason 2366 - status 2367 - type 2368 type: object 2369 type: array 2370 type: object 2371 type: object 2372 description: WorkloadDefinitions records the snapshot of the workloadDefinitions 2373 related with the created/modified Application 2374 type: object 2375 required: 2376 - application 2377 type: object 2378 status: 2379 description: ApplicationRevisionStatus is the status of ApplicationRevision 2380 properties: 2381 succeeded: 2382 description: Succeeded records if the workflow finished running with 2383 success 2384 type: boolean 2385 workflow: 2386 description: Workflow the running status of the workflow 2387 properties: 2388 appRevision: 2389 type: string 2390 contextBackend: 2391 description: "ObjectReference contains enough information to let 2392 you inspect or modify the referred object. --- New uses of this 2393 type are discouraged because of difficulty describing its usage 2394 when embedded in APIs. 1. Ignored fields. It includes many 2395 fields which are not generally honored. For instance, ResourceVersion 2396 and FieldPath are both very rarely valid in actual usage. 2. 2397 Invalid usage help. It is impossible to add specific help for 2398 individual usage. In most embedded usages, there are particular 2399 restrictions like, \"must refer only to types A and B\" or \"UID 2400 not honored\" or \"name must be restricted\". Those cannot be 2401 well described when embedded. 3. Inconsistent validation. Because 2402 the usages are different, the validation rules are different 2403 by usage, which makes it hard for users to predict what will 2404 happen. 4. The fields are both imprecise and overly precise. 2405 \ Kind is not a precise mapping to a URL. This can produce ambiguity 2406 during interpretation and require a REST mapping. In most cases, 2407 the dependency is on the group,resource tuple and the version 2408 of the actual struct is irrelevant. 5. We cannot easily change 2409 it. Because this type is embedded in many locations, updates 2410 to this type will affect numerous schemas. Don't make new APIs 2411 embed an underspecified API type they do not control. \n Instead 2412 of using this type, create a locally provided and used type 2413 that is well-focused on your reference. For example, ServiceReferences 2414 for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 2415 ." 2416 properties: 2417 apiVersion: 2418 description: API version of the referent. 2419 type: string 2420 fieldPath: 2421 description: 'If referring to a piece of an object instead 2422 of an entire object, this string should contain a valid 2423 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 2424 For example, if the object reference is to a container within 2425 a pod, this would take on a value like: "spec.containers{name}" 2426 (where "name" refers to the name of the container that triggered 2427 the event) or if no container name is specified "spec.containers[2]" 2428 (container with index 2 in this pod). This syntax is chosen 2429 only to have some well-defined way of referencing a part 2430 of an object. TODO: this design is not final and this field 2431 is subject to change in the future.' 2432 type: string 2433 kind: 2434 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2435 type: string 2436 name: 2437 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 2438 type: string 2439 namespace: 2440 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 2441 type: string 2442 resourceVersion: 2443 description: 'Specific resourceVersion to which this reference 2444 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 2445 type: string 2446 uid: 2447 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 2448 type: string 2449 type: object 2450 x-kubernetes-map-type: atomic 2451 endTime: 2452 format: date-time 2453 nullable: true 2454 type: string 2455 finished: 2456 type: boolean 2457 message: 2458 type: string 2459 mode: 2460 type: string 2461 startTime: 2462 format: date-time 2463 type: string 2464 status: 2465 description: WorkflowRunPhase is a label for the condition of 2466 a WorkflowRun at the current time 2467 type: string 2468 steps: 2469 items: 2470 description: WorkflowStepStatus record the status of a workflow 2471 step, include step status and subStep status 2472 properties: 2473 firstExecuteTime: 2474 description: FirstExecuteTime is the first time this step 2475 execution. 2476 format: date-time 2477 type: string 2478 id: 2479 type: string 2480 lastExecuteTime: 2481 description: LastExecuteTime is the last time this step 2482 execution. 2483 format: date-time 2484 type: string 2485 message: 2486 description: A human readable message indicating details 2487 about why the workflowStep is in this state. 2488 type: string 2489 name: 2490 type: string 2491 phase: 2492 description: WorkflowStepPhase describes the phase of a 2493 workflow step. 2494 type: string 2495 reason: 2496 description: A brief CamelCase message indicating details 2497 about why the workflowStep is in this state. 2498 type: string 2499 subSteps: 2500 items: 2501 description: StepStatus record the base status of workflow 2502 step, which could be workflow step or subStep 2503 properties: 2504 firstExecuteTime: 2505 description: FirstExecuteTime is the first time this 2506 step execution. 2507 format: date-time 2508 type: string 2509 id: 2510 type: string 2511 lastExecuteTime: 2512 description: LastExecuteTime is the last time this 2513 step execution. 2514 format: date-time 2515 type: string 2516 message: 2517 description: A human readable message indicating details 2518 about why the workflowStep is in this state. 2519 type: string 2520 name: 2521 type: string 2522 phase: 2523 description: WorkflowStepPhase describes the phase 2524 of a workflow step. 2525 type: string 2526 reason: 2527 description: A brief CamelCase message indicating 2528 details about why the workflowStep is in this state. 2529 type: string 2530 type: 2531 type: string 2532 required: 2533 - id 2534 type: object 2535 type: array 2536 type: 2537 type: string 2538 required: 2539 - id 2540 type: object 2541 type: array 2542 suspend: 2543 type: boolean 2544 suspendState: 2545 type: string 2546 terminated: 2547 type: boolean 2548 required: 2549 - finished 2550 - mode 2551 - suspend 2552 - terminated 2553 type: object 2554 workflowContext: 2555 additionalProperties: 2556 type: string 2557 description: Record the context values to the revision. 2558 type: object 2559 required: 2560 - succeeded 2561 type: object 2562 type: object 2563 served: true 2564 storage: true 2565 subresources: 2566 status: {}