github.com/oam-dev/kubevela@v1.9.11/cmd/core/app/hooks/testdata/old_apprev_crd.yaml (about) 1 apiVersion: apiextensions.k8s.io/v1 2 kind: CustomResourceDefinition 3 metadata: 4 annotations: 5 controller-gen.kubebuilder.io/version: v0.6.2 6 name: applicationrevisions.core.oam.dev 7 spec: 8 group: core.oam.dev 9 names: 10 categories: 11 - oam 12 kind: ApplicationRevision 13 listKind: ApplicationRevisionList 14 plural: applicationrevisions 15 shortNames: 16 - apprev 17 singular: applicationrevision 18 scope: Namespaced 19 versions: 20 - additionalPrinterColumns: 21 - jsonPath: .metadata.creationTimestamp 22 name: AGE 23 type: date 24 name: v1alpha2 25 schema: 26 openAPIV3Schema: 27 description: ApplicationRevision is the Schema for the ApplicationRevision 28 API 29 properties: 30 apiVersion: 31 description: 'APIVersion defines the versioned schema of this representation 32 of an object. Servers should convert recognized schemas to the latest 33 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 34 type: string 35 kind: 36 description: 'Kind is a string value representing the REST resource this 37 object represents. Servers may infer this from the endpoint the client 38 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 39 type: string 40 metadata: 41 type: object 42 spec: 43 description: ApplicationRevisionSpec is the spec of ApplicationRevision 44 properties: 45 application: 46 description: Application records the snapshot of the created/modified 47 Application 48 properties: 49 apiVersion: 50 description: 'APIVersion defines the versioned schema of this 51 representation of an object. Servers should convert recognized 52 schemas to the latest internal value, and may reject unrecognized 53 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 54 type: string 55 kind: 56 description: 'Kind is a string value representing the REST resource 57 this object represents. Servers may infer this from the endpoint 58 the client submits requests to. Cannot be updated. In CamelCase. 59 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 60 type: string 61 metadata: 62 properties: 63 annotations: 64 additionalProperties: 65 type: string 66 type: object 67 finalizers: 68 items: 69 type: string 70 type: array 71 labels: 72 additionalProperties: 73 type: string 74 type: object 75 name: 76 type: string 77 namespace: 78 type: string 79 type: object 80 spec: 81 description: ApplicationSpec is the spec of Application 82 properties: 83 components: 84 items: 85 description: ApplicationComponent describe the component 86 of application 87 properties: 88 name: 89 type: string 90 scopes: 91 additionalProperties: 92 type: string 93 description: scopes in ApplicationComponent defines 94 the component-level scopes the format is <scope-type:scope-instance-name> 95 pairs, the key represents type of `ScopeDefinition` 96 while the value represent the name of scope instance. 97 type: object 98 x-kubernetes-preserve-unknown-fields: true 99 settings: 100 type: object 101 x-kubernetes-preserve-unknown-fields: true 102 traits: 103 description: Traits define the trait of one component, 104 the type must be array to keep the order. 105 items: 106 description: ApplicationTrait defines the trait of 107 application 108 properties: 109 name: 110 type: string 111 properties: 112 type: object 113 x-kubernetes-preserve-unknown-fields: true 114 required: 115 - name 116 type: object 117 type: array 118 type: 119 type: string 120 required: 121 - name 122 - type 123 type: object 124 type: array 125 rolloutPlan: 126 description: RolloutPlan is the details on how to rollout 127 the resources The controller simply replace the old resources 128 with the new one if there is no rollout plan involved 129 properties: 130 batchPartition: 131 description: All pods in the batches up to the batchPartition 132 (included) will have the target resource specification 133 while the rest still have the source resource This is 134 designed for the operators to manually rollout Default 135 is the the number of batches which will rollout all 136 the batches 137 format: int32 138 type: integer 139 canaryMetric: 140 description: CanaryMetric provides a way for the rollout 141 process to automatically check certain metrics before 142 complete the process 143 items: 144 description: CanaryMetric holds the reference to metrics 145 used for canary analysis 146 properties: 147 interval: 148 description: Interval represents the windows size 149 type: string 150 metricsRange: 151 description: Range value accepted for this metric 152 properties: 153 max: 154 anyOf: 155 - type: integer 156 - type: string 157 description: Maximum value 158 x-kubernetes-int-or-string: true 159 min: 160 anyOf: 161 - type: integer 162 - type: string 163 description: Minimum value 164 x-kubernetes-int-or-string: true 165 type: object 166 name: 167 description: Name of the metric 168 type: string 169 templateRef: 170 description: TemplateRef references a metric template 171 object 172 properties: 173 apiVersion: 174 description: API version of the referent. 175 type: string 176 fieldPath: 177 description: 'If referring to a piece of an 178 object instead of an entire object, this string 179 should contain a valid JSON/Go field access 180 statement, such as desiredState.manifest.containers[2]. 181 For example, if the object reference is to 182 a container within a pod, this would take 183 on a value like: "spec.containers{name}" (where 184 "name" refers to the name of the container 185 that triggered the event) or if no container 186 name is specified "spec.containers[2]" (container 187 with index 2 in this pod). This syntax is 188 chosen only to have some well-defined way 189 of referencing a part of an object. TODO: 190 this design is not final and this field is 191 subject to change in the future.' 192 type: string 193 kind: 194 description: 'Kind of the referent. More info: 195 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 196 type: string 197 name: 198 description: 'Name of the referent. More info: 199 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 200 type: string 201 namespace: 202 description: 'Namespace of the referent. More 203 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 204 type: string 205 resourceVersion: 206 description: 'Specific resourceVersion to which 207 this reference is made, if any. More info: 208 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 209 type: string 210 uid: 211 description: 'UID of the referent. More info: 212 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 213 type: string 214 type: object 215 required: 216 - name 217 type: object 218 type: array 219 numBatches: 220 description: The number of batches, default = 1 221 format: int32 222 type: integer 223 paused: 224 description: Paused the rollout, default is false 225 type: boolean 226 rolloutBatches: 227 description: The exact distribution among batches. its 228 size has to be exactly the same as the NumBatches (if 229 set) The total number cannot exceed the targetSize or 230 the size of the source resource We will IGNORE the last 231 batch's replica field if it's a percentage since round 232 errors can lead to inaccurate sum We highly recommend 233 to leave the last batch's replica field empty 234 items: 235 description: RolloutBatch is used to describe how the 236 each batch rollout should be 237 properties: 238 batchRolloutWebhooks: 239 description: RolloutWebhooks provides a way for 240 the batch rollout to interact with an external 241 process 242 items: 243 description: RolloutWebhook holds the reference 244 to external checks used for canary analysis 245 properties: 246 expectedStatus: 247 description: ExpectedStatus contains all the 248 expected http status code that we will accept 249 as success 250 items: 251 type: integer 252 type: array 253 metadata: 254 additionalProperties: 255 type: string 256 description: Metadata (key-value pairs) for 257 this webhook 258 type: object 259 method: 260 description: Method the HTTP call method, 261 default is POST 262 type: string 263 name: 264 description: Name of this webhook 265 type: string 266 type: 267 description: Type of this webhook 268 type: string 269 url: 270 description: URL address of this webhook 271 type: string 272 required: 273 - name 274 - type 275 - url 276 type: object 277 type: array 278 canaryMetric: 279 description: CanaryMetric provides a way for the 280 batch rollout process to automatically check certain 281 metrics before moving to the next batch 282 items: 283 description: CanaryMetric holds the reference 284 to metrics used for canary analysis 285 properties: 286 interval: 287 description: Interval represents the windows 288 size 289 type: string 290 metricsRange: 291 description: Range value accepted for this 292 metric 293 properties: 294 max: 295 anyOf: 296 - type: integer 297 - type: string 298 description: Maximum value 299 x-kubernetes-int-or-string: true 300 min: 301 anyOf: 302 - type: integer 303 - type: string 304 description: Minimum value 305 x-kubernetes-int-or-string: true 306 type: object 307 name: 308 description: Name of the metric 309 type: string 310 templateRef: 311 description: TemplateRef references a metric 312 template object 313 properties: 314 apiVersion: 315 description: API version of the referent. 316 type: string 317 fieldPath: 318 description: 'If referring to a piece 319 of an object instead of an entire object, 320 this string should contain a valid JSON/Go 321 field access statement, such as desiredState.manifest.containers[2]. 322 For example, if the object reference 323 is to a container within a pod, this 324 would take on a value like: "spec.containers{name}" 325 (where "name" refers to the name of 326 the container that triggered the event) 327 or if no container name is specified 328 "spec.containers[2]" (container with 329 index 2 in this pod). This syntax is 330 chosen only to have some well-defined 331 way of referencing a part of an object. 332 TODO: this design is not final and this 333 field is subject to change in the future.' 334 type: string 335 kind: 336 description: 'Kind of the referent. More 337 info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 338 type: string 339 name: 340 description: 'Name of the referent. More 341 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 342 type: string 343 namespace: 344 description: 'Namespace of the referent. 345 More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 346 type: string 347 resourceVersion: 348 description: 'Specific resourceVersion 349 to which this reference is made, if 350 any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 351 type: string 352 uid: 353 description: 'UID of the referent. More 354 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 355 type: string 356 type: object 357 required: 358 - name 359 type: object 360 type: array 361 instanceInterval: 362 description: The wait time, in seconds, between 363 instances upgrades, default = 0 364 format: int32 365 type: integer 366 maxUnavailable: 367 anyOf: 368 - type: integer 369 - type: string 370 description: MaxUnavailable is the max allowed number 371 of pods that is unavailable during the upgrade. 372 We will mark the batch as ready as long as there 373 are less or equal number of pods unavailable than 374 this number. default = 0 375 x-kubernetes-int-or-string: true 376 podList: 377 description: The list of Pods to get upgraded it 378 is mutually exclusive with the Replicas field 379 items: 380 type: string 381 type: array 382 replicas: 383 anyOf: 384 - type: integer 385 - type: string 386 description: 'Replicas is the number of pods to 387 upgrade in this batch it can be an absolute number 388 (ex: 5) or a percentage of total pods we will 389 ignore the percentage of the last batch to just 390 fill the gap it is mutually exclusive with the 391 PodList field' 392 x-kubernetes-int-or-string: true 393 type: object 394 type: array 395 rolloutStrategy: 396 description: RolloutStrategy defines strategies for the 397 rollout plan The default is IncreaseFirstRolloutStrategyType 398 type: string 399 rolloutWebhooks: 400 description: RolloutWebhooks provide a way for the rollout 401 to interact with an external process 402 items: 403 description: RolloutWebhook holds the reference to external 404 checks used for canary analysis 405 properties: 406 expectedStatus: 407 description: ExpectedStatus contains all the expected 408 http status code that we will accept as success 409 items: 410 type: integer 411 type: array 412 metadata: 413 additionalProperties: 414 type: string 415 description: Metadata (key-value pairs) for this 416 webhook 417 type: object 418 method: 419 description: Method the HTTP call method, default 420 is POST 421 type: string 422 name: 423 description: Name of this webhook 424 type: string 425 type: 426 description: Type of this webhook 427 type: string 428 url: 429 description: URL address of this webhook 430 type: string 431 required: 432 - name 433 - type 434 - url 435 type: object 436 type: array 437 targetSize: 438 description: The size of the target resource. The default 439 is the same as the size of the source resource. 440 format: int32 441 type: integer 442 type: object 443 required: 444 - components 445 type: object 446 status: 447 description: AppStatus defines the observed state of Application 448 properties: 449 appliedResources: 450 description: AppliedResources record the resources that the workflow 451 step apply. 452 items: 453 description: ClusterObjectReference defines the object reference 454 with cluster. 455 properties: 456 apiVersion: 457 description: API version of the referent. 458 type: string 459 cluster: 460 type: string 461 creator: 462 type: string 463 fieldPath: 464 description: 'If referring to a piece of an object instead 465 of an entire object, this string should contain a 466 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 467 For example, if the object reference is to a container 468 within a pod, this would take on a value like: "spec.containers{name}" 469 (where "name" refers to the name of the container 470 that triggered the event) or if no container name 471 is specified "spec.containers[2]" (container with 472 index 2 in this pod). This syntax is chosen only to 473 have some well-defined way of referencing a part of 474 an object. TODO: this design is not final and this 475 field is subject to change in the future.' 476 type: string 477 kind: 478 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 479 type: string 480 name: 481 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 482 type: string 483 namespace: 484 description: 'Namespace of the referent. More info: 485 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 486 type: string 487 resourceVersion: 488 description: 'Specific resourceVersion to which this 489 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 490 type: string 491 uid: 492 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 493 type: string 494 type: object 495 type: array 496 components: 497 description: Components record the related Components created 498 by Application Controller 499 items: 500 description: 'ObjectReference contains enough information 501 to let you inspect or modify the referred object. --- 502 New uses of this type are discouraged because of difficulty 503 describing its usage when embedded in APIs. 1. Ignored 504 fields. It includes many fields which are not generally 505 honored. For instance, ResourceVersion and FieldPath 506 are both very rarely valid in actual usage. 2. Invalid 507 usage help. It is impossible to add specific help for 508 individual usage. In most embedded usages, there are 509 particular restrictions like, "must refer only to 510 types A and B" or "UID not honored" or "name must be restricted". Those 511 cannot be well described when embedded. 3. Inconsistent 512 validation. Because the usages are different, the validation 513 rules are different by usage, which makes it hard for 514 users to predict what will happen. 4. The fields are 515 both imprecise and overly precise. Kind is not a precise 516 mapping to a URL. This can produce ambiguity during 517 interpretation and require a REST mapping. In most cases, 518 the dependency is on the group,resource tuple and 519 the version of the actual struct is irrelevant. 5. We 520 cannot easily change it. Because this type is embedded 521 in many locations, updates to this type will affect 522 numerous schemas. Don''t make new APIs embed an underspecified 523 API type they do not control. Instead of using this type, 524 create a locally provided and used type that is well-focused 525 on your reference. For example, ServiceReferences for 526 admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 527 .' 528 properties: 529 apiVersion: 530 description: API version of the referent. 531 type: string 532 fieldPath: 533 description: 'If referring to a piece of an object instead 534 of an entire object, this string should contain a 535 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 536 For example, if the object reference is to a container 537 within a pod, this would take on a value like: "spec.containers{name}" 538 (where "name" refers to the name of the container 539 that triggered the event) or if no container name 540 is specified "spec.containers[2]" (container with 541 index 2 in this pod). This syntax is chosen only to 542 have some well-defined way of referencing a part of 543 an object. TODO: this design is not final and this 544 field is subject to change in the future.' 545 type: string 546 kind: 547 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 548 type: string 549 name: 550 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 551 type: string 552 namespace: 553 description: 'Namespace of the referent. More info: 554 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 555 type: string 556 resourceVersion: 557 description: 'Specific resourceVersion to which this 558 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 559 type: string 560 uid: 561 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 562 type: string 563 type: object 564 type: array 565 conditions: 566 description: Conditions of the resource. 567 items: 568 description: A Condition that may apply to a resource. 569 properties: 570 lastTransitionTime: 571 description: LastTransitionTime is the last time this 572 condition transitioned from one status to another. 573 format: date-time 574 type: string 575 message: 576 description: A Message containing details about this 577 condition's last transition from one status to another, 578 if any. 579 type: string 580 reason: 581 description: A Reason for this condition's last transition 582 from one status to another. 583 type: string 584 status: 585 description: Status of this condition; is it currently 586 True, False, or Unknown? 587 type: string 588 type: 589 description: Type of this condition. At most one of 590 each condition type may apply to a resource at any 591 point in time. 592 type: string 593 required: 594 - lastTransitionTime 595 - reason 596 - status 597 - type 598 type: object 599 type: array 600 latestRevision: 601 description: LatestRevision of the application configuration 602 it generates 603 properties: 604 name: 605 type: string 606 revision: 607 format: int64 608 type: integer 609 revisionHash: 610 description: RevisionHash record the hash value of the 611 spec of ApplicationRevision object. 612 type: string 613 required: 614 - name 615 - revision 616 type: object 617 observedGeneration: 618 description: The generation observed by the application controller. 619 format: int64 620 type: integer 621 policy: 622 description: PolicyStatus records the status of policy Deprecated 623 This field is only used by EnvBinding Policy which is deprecated. 624 items: 625 description: PolicyStatus records the status of policy Deprecated 626 properties: 627 name: 628 type: string 629 status: 630 type: object 631 x-kubernetes-preserve-unknown-fields: true 632 type: 633 type: string 634 required: 635 - name 636 - type 637 type: object 638 type: array 639 services: 640 description: Services record the status of the application 641 services 642 items: 643 description: ApplicationComponentStatus record the health 644 status of App component 645 properties: 646 cluster: 647 type: string 648 env: 649 type: string 650 healthy: 651 type: boolean 652 message: 653 type: string 654 name: 655 type: string 656 namespace: 657 type: string 658 scopes: 659 items: 660 description: 'ObjectReference contains enough information 661 to let you inspect or modify the referred object. 662 --- New uses of this type are discouraged because 663 of difficulty describing its usage when embedded 664 in APIs. 1. Ignored fields. It includes many fields 665 which are not generally honored. For instance, 666 ResourceVersion and FieldPath are both very rarely 667 valid in actual usage. 2. Invalid usage help. It 668 is impossible to add specific help for individual 669 usage. In most embedded usages, there are particular restrictions 670 like, "must refer only to types A and B" or "UID 671 not honored" or "name must be restricted". Those 672 cannot be well described when embedded. 3. Inconsistent 673 validation. Because the usages are different, the 674 validation rules are different by usage, which makes 675 it hard for users to predict what will happen. 4. 676 The fields are both imprecise and overly precise. Kind 677 is not a precise mapping to a URL. This can produce 678 ambiguity during interpretation and require 679 a REST mapping. In most cases, the dependency is 680 on the group,resource tuple and the version 681 of the actual struct is irrelevant. 5. We cannot 682 easily change it. Because this type is embedded 683 in many locations, updates to this type will 684 affect numerous schemas. Don''t make new APIs embed 685 an underspecified API type they do not control. 686 Instead of using this type, create a locally provided 687 and used type that is well-focused on your reference. 688 For example, ServiceReferences for admission registration: 689 https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 690 .' 691 properties: 692 apiVersion: 693 description: API version of the referent. 694 type: string 695 fieldPath: 696 description: 'If referring to a piece of an object 697 instead of an entire object, this string should 698 contain a valid JSON/Go field access statement, 699 such as desiredState.manifest.containers[2]. 700 For example, if the object reference is to a 701 container within a pod, this would take on a 702 value like: "spec.containers{name}" (where "name" 703 refers to the name of the container that triggered 704 the event) or if no container name is specified 705 "spec.containers[2]" (container with index 2 706 in this pod). This syntax is chosen only to 707 have some well-defined way of referencing a 708 part of an object. TODO: this design is not 709 final and this field is subject to change in 710 the future.' 711 type: string 712 kind: 713 description: 'Kind of the referent. More info: 714 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 715 type: string 716 name: 717 description: 'Name of the referent. More info: 718 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 719 type: string 720 namespace: 721 description: 'Namespace of the referent. More 722 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 723 type: string 724 resourceVersion: 725 description: 'Specific resourceVersion to which 726 this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 727 type: string 728 uid: 729 description: 'UID of the referent. More info: 730 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 731 type: string 732 type: object 733 type: array 734 traits: 735 items: 736 description: ApplicationTraitStatus records the trait 737 health status 738 properties: 739 healthy: 740 type: boolean 741 message: 742 type: string 743 type: 744 type: string 745 required: 746 - healthy 747 - type 748 type: object 749 type: array 750 workloadDefinition: 751 description: WorkloadDefinition is the definition of 752 a WorkloadDefinition, such as deployments/apps.v1 753 properties: 754 apiVersion: 755 type: string 756 kind: 757 type: string 758 required: 759 - apiVersion 760 - kind 761 type: object 762 required: 763 - healthy 764 - name 765 type: object 766 type: array 767 status: 768 description: ApplicationPhase is a label for the condition 769 of an application at the current time 770 type: string 771 workflow: 772 description: Workflow record the status of workflow 773 properties: 774 appRevision: 775 type: string 776 contextBackend: 777 description: 'ObjectReference contains enough information 778 to let you inspect or modify the referred object. --- 779 New uses of this type are discouraged because of difficulty 780 describing its usage when embedded in APIs. 1. Ignored 781 fields. It includes many fields which are not generally 782 honored. For instance, ResourceVersion and FieldPath 783 are both very rarely valid in actual usage. 2. Invalid 784 usage help. It is impossible to add specific help for 785 individual usage. In most embedded usages, there are 786 particular restrictions like, "must refer only to 787 types A and B" or "UID not honored" or "name must be 788 restricted". Those cannot be well described when 789 embedded. 3. Inconsistent validation. Because the 790 usages are different, the validation rules are different 791 by usage, which makes it hard for users to predict what 792 will happen. 4. The fields are both imprecise and overly 793 precise. Kind is not a precise mapping to a URL. This 794 can produce ambiguity during interpretation and 795 require a REST mapping. In most cases, the dependency 796 is on the group,resource tuple and the version of 797 the actual struct is irrelevant. 5. We cannot easily 798 change it. Because this type is embedded in many locations, 799 updates to this type will affect numerous schemas. Don''t 800 make new APIs embed an underspecified API type they 801 do not control. Instead of using this type, create a 802 locally provided and used type that is well-focused 803 on your reference. For example, ServiceReferences for 804 admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 805 .' 806 properties: 807 apiVersion: 808 description: API version of the referent. 809 type: string 810 fieldPath: 811 description: 'If referring to a piece of an object 812 instead of an entire object, this string should 813 contain a valid JSON/Go field access statement, 814 such as desiredState.manifest.containers[2]. For 815 example, if the object reference is to a container 816 within a pod, this would take on a value like: "spec.containers{name}" 817 (where "name" refers to the name of the container 818 that triggered the event) or if no container name 819 is specified "spec.containers[2]" (container with 820 index 2 in this pod). This syntax is chosen only 821 to have some well-defined way of referencing a part 822 of an object. TODO: this design is not final and 823 this field is subject to change in the future.' 824 type: string 825 kind: 826 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 827 type: string 828 name: 829 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 830 type: string 831 namespace: 832 description: 'Namespace of the referent. More info: 833 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 834 type: string 835 resourceVersion: 836 description: 'Specific resourceVersion to which this 837 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 838 type: string 839 uid: 840 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 841 type: string 842 type: object 843 endTime: 844 format: date-time 845 type: string 846 finished: 847 type: boolean 848 message: 849 type: string 850 mode: 851 type: string 852 startTime: 853 format: date-time 854 type: string 855 status: 856 description: WorkflowRunPhase is a label for the condition 857 of a WorkflowRun at the current time 858 type: string 859 steps: 860 items: 861 description: WorkflowStepStatus record the status of 862 a workflow step, include step status and subStep status 863 properties: 864 firstExecuteTime: 865 description: FirstExecuteTime is the first time 866 this step execution. 867 format: date-time 868 type: string 869 id: 870 type: string 871 lastExecuteTime: 872 description: LastExecuteTime is the last time this 873 step execution. 874 format: date-time 875 type: string 876 message: 877 description: A human readable message indicating 878 details about why the workflowStep is in this 879 state. 880 type: string 881 name: 882 type: string 883 phase: 884 description: WorkflowStepPhase describes the phase 885 of a workflow step. 886 type: string 887 reason: 888 description: A brief CamelCase message indicating 889 details about why the workflowStep is in this 890 state. 891 type: string 892 subSteps: 893 items: 894 description: StepStatus record the base status 895 of workflow step, which could be workflow step 896 or subStep 897 properties: 898 firstExecuteTime: 899 description: FirstExecuteTime is the first 900 time this step execution. 901 format: date-time 902 type: string 903 id: 904 type: string 905 lastExecuteTime: 906 description: LastExecuteTime is the last time 907 this step execution. 908 format: date-time 909 type: string 910 message: 911 description: A human readable message indicating 912 details about why the workflowStep is in 913 this state. 914 type: string 915 name: 916 type: string 917 phase: 918 description: WorkflowStepPhase describes the 919 phase of a workflow step. 920 type: string 921 reason: 922 description: A brief CamelCase message indicating 923 details about why the workflowStep is in 924 this state. 925 type: string 926 type: 927 type: string 928 required: 929 - id 930 type: object 931 type: array 932 type: 933 type: string 934 required: 935 - id 936 type: object 937 type: array 938 suspend: 939 type: boolean 940 suspendState: 941 type: string 942 terminated: 943 type: boolean 944 required: 945 - finished 946 - mode 947 - suspend 948 - terminated 949 type: object 950 type: object 951 type: object 952 applicationConfiguration: 953 description: ApplicationConfiguration records the rendered applicationConfiguration 954 from Application, it will contains the whole K8s CR of trait and 955 the reference component in it. 956 type: object 957 x-kubernetes-embedded-resource: true 958 x-kubernetes-preserve-unknown-fields: true 959 componentDefinitions: 960 additionalProperties: 961 description: ComponentDefinition is the Schema for the componentdefinitions 962 API 963 properties: 964 apiVersion: 965 description: 'APIVersion defines the versioned schema of this 966 representation of an object. Servers should convert recognized 967 schemas to the latest internal value, and may reject unrecognized 968 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 969 type: string 970 kind: 971 description: 'Kind is a string value representing the REST resource 972 this object represents. Servers may infer this from the endpoint 973 the client submits requests to. Cannot be updated. In CamelCase. 974 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 975 type: string 976 metadata: 977 properties: 978 annotations: 979 additionalProperties: 980 type: string 981 type: object 982 finalizers: 983 items: 984 type: string 985 type: array 986 labels: 987 additionalProperties: 988 type: string 989 type: object 990 name: 991 type: string 992 namespace: 993 type: string 994 type: object 995 spec: 996 description: ComponentDefinitionSpec defines the desired state 997 of ComponentDefinition 998 properties: 999 childResourceKinds: 1000 description: ChildResourceKinds are the list of GVK of the 1001 child resources this workload generates 1002 items: 1003 description: A ChildResourceKind defines a child Kubernetes 1004 resource kind with a selector 1005 properties: 1006 apiVersion: 1007 description: APIVersion of the child resource 1008 type: string 1009 kind: 1010 description: Kind of the child resource 1011 type: string 1012 selector: 1013 additionalProperties: 1014 type: string 1015 description: Selector to select the child resources 1016 that the workload wants to expose to traits 1017 type: object 1018 required: 1019 - apiVersion 1020 - kind 1021 type: object 1022 type: array 1023 extension: 1024 description: Extension is used for extension needs by OAM 1025 platform builders 1026 type: object 1027 x-kubernetes-preserve-unknown-fields: true 1028 podSpecPath: 1029 description: PodSpecPath indicates where/if this workload 1030 has K8s podSpec field if one workload has podSpec, trait 1031 can do lot's of assumption such as port, env, volume fields. 1032 type: string 1033 revisionLabel: 1034 description: RevisionLabel indicates which label for underlying 1035 resources(e.g. pods) of this workload can be used by trait 1036 to create resource selectors(e.g. label selector for pods). 1037 type: string 1038 schematic: 1039 description: Schematic defines the data format and template 1040 of the encapsulation of the workload 1041 properties: 1042 cue: 1043 description: CUE defines the encapsulation in CUE format 1044 properties: 1045 template: 1046 description: Template defines the abstraction template 1047 data of the capability, it will replace the old 1048 CUE template in extension field. Template is a 1049 required field if CUE is defined in Capability 1050 Definition. 1051 type: string 1052 required: 1053 - template 1054 type: object 1055 helm: 1056 description: A Helm represents resources used by a Helm 1057 module 1058 properties: 1059 release: 1060 description: Release records a Helm release used 1061 by a Helm module workload. 1062 type: object 1063 x-kubernetes-preserve-unknown-fields: true 1064 repository: 1065 description: HelmRelease records a Helm repository 1066 used by a Helm module workload. 1067 type: object 1068 x-kubernetes-preserve-unknown-fields: true 1069 required: 1070 - release 1071 - repository 1072 type: object 1073 kube: 1074 description: Kube defines the encapsulation in raw Kubernetes 1075 resource format 1076 properties: 1077 parameters: 1078 description: Parameters defines configurable parameters 1079 items: 1080 description: A KubeParameter defines a configurable 1081 parameter of a component. 1082 properties: 1083 description: 1084 description: Description of this parameter. 1085 type: string 1086 fieldPaths: 1087 description: "FieldPaths specifies an array 1088 of fields within this workload that will 1089 be overwritten by the value of this parameter. 1090 \tAll fields must be of the same type. Fields 1091 are specified as JSON field paths without 1092 a leading dot, for example 'spec.replicas'." 1093 items: 1094 type: string 1095 type: array 1096 name: 1097 description: Name of this parameter 1098 type: string 1099 required: 1100 default: false 1101 description: Required specifies whether or 1102 not a value for this parameter must be supplied 1103 when authoring an Application. 1104 type: boolean 1105 type: 1106 description: 'ValueType indicates the type 1107 of the parameter value, and only supports 1108 basic data types: string, number, boolean.' 1109 enum: 1110 - string 1111 - number 1112 - boolean 1113 type: string 1114 required: 1115 - fieldPaths 1116 - name 1117 - type 1118 type: object 1119 type: array 1120 template: 1121 description: Template defines the raw Kubernetes 1122 resource 1123 type: object 1124 x-kubernetes-preserve-unknown-fields: true 1125 required: 1126 - template 1127 type: object 1128 terraform: 1129 description: Terraform is the struct to describe cloud 1130 resources managed by Hashicorp Terraform 1131 properties: 1132 configuration: 1133 description: Configuration is Terraform Configuration 1134 type: string 1135 customRegion: 1136 description: Region is cloud provider's region. 1137 It will override the region in the region field 1138 of ProviderReference 1139 type: string 1140 deleteResource: 1141 default: true 1142 description: DeleteResource will determine whether 1143 provisioned cloud resources will be deleted when 1144 CR is deleted 1145 type: boolean 1146 path: 1147 description: Path is the sub-directory of remote 1148 git repository. It's valid when remote is set 1149 type: string 1150 providerRef: 1151 description: ProviderReference specifies the reference 1152 to Provider 1153 properties: 1154 name: 1155 description: Name of the referenced object. 1156 type: string 1157 namespace: 1158 default: default 1159 description: Namespace of the referenced object. 1160 type: string 1161 required: 1162 - name 1163 type: object 1164 type: 1165 default: hcl 1166 description: Type specifies which Terraform configuration 1167 it is, HCL or JSON syntax 1168 enum: 1169 - hcl 1170 - json 1171 - remote 1172 type: string 1173 writeConnectionSecretToRef: 1174 description: WriteConnectionSecretToReference specifies 1175 the namespace and name of a Secret to which any 1176 connection details for this managed resource should 1177 be written. Connection details frequently include 1178 the endpoint, username, and password required 1179 to connect to the managed resource. 1180 properties: 1181 name: 1182 description: Name of the secret. 1183 type: string 1184 namespace: 1185 description: Namespace of the secret. 1186 type: string 1187 required: 1188 - name 1189 type: object 1190 required: 1191 - configuration 1192 type: object 1193 type: object 1194 status: 1195 description: Status defines the custom health policy and 1196 status message for workload 1197 properties: 1198 customStatus: 1199 description: CustomStatus defines the custom status 1200 message that could display to user 1201 type: string 1202 healthPolicy: 1203 description: HealthPolicy defines the health check policy 1204 for the abstraction 1205 type: string 1206 type: object 1207 workload: 1208 description: Workload is a workload type descriptor 1209 properties: 1210 definition: 1211 description: Definition mutually exclusive to workload.type, 1212 a embedded WorkloadDefinition 1213 properties: 1214 apiVersion: 1215 type: string 1216 kind: 1217 type: string 1218 required: 1219 - apiVersion 1220 - kind 1221 type: object 1222 type: 1223 description: Type ref to a WorkloadDefinition via name 1224 type: string 1225 type: object 1226 required: 1227 - workload 1228 type: object 1229 status: 1230 description: ComponentDefinitionStatus is the status of ComponentDefinition 1231 properties: 1232 conditions: 1233 description: Conditions of the resource. 1234 items: 1235 description: A Condition that may apply to a resource. 1236 properties: 1237 lastTransitionTime: 1238 description: LastTransitionTime is the last time this 1239 condition transitioned from one status to another. 1240 format: date-time 1241 type: string 1242 message: 1243 description: A Message containing details about this 1244 condition's last transition from one status to another, 1245 if any. 1246 type: string 1247 reason: 1248 description: A Reason for this condition's last transition 1249 from one status to another. 1250 type: string 1251 status: 1252 description: Status of this condition; is it currently 1253 True, False, or Unknown? 1254 type: string 1255 type: 1256 description: Type of this condition. At most one of 1257 each condition type may apply to a resource at any 1258 point in time. 1259 type: string 1260 required: 1261 - lastTransitionTime 1262 - reason 1263 - status 1264 - type 1265 type: object 1266 type: array 1267 configMapRef: 1268 description: ConfigMapRef refer to a ConfigMap which contains 1269 OpenAPI V3 JSON schema of Component parameters. 1270 type: string 1271 latestRevision: 1272 description: LatestRevision of the component definition 1273 properties: 1274 name: 1275 type: string 1276 revision: 1277 format: int64 1278 type: integer 1279 revisionHash: 1280 description: RevisionHash record the hash value of the 1281 spec of ApplicationRevision object. 1282 type: string 1283 required: 1284 - name 1285 - revision 1286 type: object 1287 type: object 1288 type: object 1289 description: ComponentDefinitions records the snapshot of the componentDefinitions 1290 related with the created/modified Application 1291 type: object 1292 components: 1293 items: 1294 description: RawComponent record raw component 1295 properties: 1296 raw: 1297 type: object 1298 x-kubernetes-embedded-resource: true 1299 x-kubernetes-preserve-unknown-fields: true 1300 required: 1301 - raw 1302 type: object 1303 type: array 1304 scopeDefinitions: 1305 additionalProperties: 1306 description: A ScopeDefinition registers a kind of Kubernetes custom 1307 resource as a valid OAM scope kind by referencing its CustomResourceDefinition. 1308 The CRD is used to validate the schema of the scope when it is 1309 embedded in an OAM ApplicationConfiguration. 1310 properties: 1311 apiVersion: 1312 description: 'APIVersion defines the versioned schema of this 1313 representation of an object. Servers should convert recognized 1314 schemas to the latest internal value, and may reject unrecognized 1315 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1316 type: string 1317 kind: 1318 description: 'Kind is a string value representing the REST resource 1319 this object represents. Servers may infer this from the endpoint 1320 the client submits requests to. Cannot be updated. In CamelCase. 1321 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1322 type: string 1323 metadata: 1324 properties: 1325 annotations: 1326 additionalProperties: 1327 type: string 1328 type: object 1329 finalizers: 1330 items: 1331 type: string 1332 type: array 1333 labels: 1334 additionalProperties: 1335 type: string 1336 type: object 1337 name: 1338 type: string 1339 namespace: 1340 type: string 1341 type: object 1342 spec: 1343 description: A ScopeDefinitionSpec defines the desired state 1344 of a ScopeDefinition. 1345 properties: 1346 allowComponentOverlap: 1347 description: AllowComponentOverlap specifies whether an 1348 OAM component may exist in multiple instances of this 1349 kind of scope. 1350 type: boolean 1351 definitionRef: 1352 description: Reference to the CustomResourceDefinition that 1353 defines this scope kind. 1354 properties: 1355 name: 1356 description: Name of the referenced CustomResourceDefinition. 1357 type: string 1358 version: 1359 description: Version indicate which version should be 1360 used if CRD has multiple versions by default it will 1361 use the first one if not specified 1362 type: string 1363 required: 1364 - name 1365 type: object 1366 extension: 1367 description: Extension is used for extension needs by OAM 1368 platform builders 1369 type: object 1370 x-kubernetes-preserve-unknown-fields: true 1371 workloadRefsPath: 1372 description: WorkloadRefsPath indicates if/where a scope 1373 accepts workloadRef objects 1374 type: string 1375 required: 1376 - allowComponentOverlap 1377 - definitionRef 1378 type: object 1379 type: object 1380 description: ScopeDefinitions records the snapshot of the scopeDefinitions 1381 related with the created/modified Application 1382 type: object 1383 traitDefinitions: 1384 additionalProperties: 1385 description: A TraitDefinition registers a kind of Kubernetes custom 1386 resource as a valid OAM trait kind by referencing its CustomResourceDefinition. 1387 The CRD is used to validate the schema of the trait when it is 1388 embedded in an OAM ApplicationConfiguration. 1389 properties: 1390 apiVersion: 1391 description: 'APIVersion defines the versioned schema of this 1392 representation of an object. Servers should convert recognized 1393 schemas to the latest internal value, and may reject unrecognized 1394 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1395 type: string 1396 kind: 1397 description: 'Kind is a string value representing the REST resource 1398 this object represents. Servers may infer this from the endpoint 1399 the client submits requests to. Cannot be updated. In CamelCase. 1400 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1401 type: string 1402 metadata: 1403 properties: 1404 annotations: 1405 additionalProperties: 1406 type: string 1407 type: object 1408 finalizers: 1409 items: 1410 type: string 1411 type: array 1412 labels: 1413 additionalProperties: 1414 type: string 1415 type: object 1416 name: 1417 type: string 1418 namespace: 1419 type: string 1420 type: object 1421 spec: 1422 description: A TraitDefinitionSpec defines the desired state 1423 of a TraitDefinition. 1424 properties: 1425 appliesToWorkloads: 1426 description: AppliesToWorkloads specifies the list of workload 1427 kinds this trait applies to. Workload kinds are specified 1428 in kind.group/version format, e.g. server.core.oam.dev/v1alpha2. 1429 Traits that omit this field apply to all workload kinds. 1430 items: 1431 type: string 1432 type: array 1433 conflictsWith: 1434 description: 'ConflictsWith specifies the list of traits(CRD 1435 name, Definition name, CRD group) which could not apply 1436 to the same workloads with this trait. Traits that omit 1437 this field can work with any other traits. Example rules: 1438 "service" # Trait definition name "services.k8s.io" # 1439 API resource/crd name "*.networking.k8s.io" # API group 1440 "labelSelector:foo=bar" # label selector labelSelector 1441 format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse' 1442 items: 1443 type: string 1444 type: array 1445 definitionRef: 1446 description: Reference to the CustomResourceDefinition that 1447 defines this trait kind. 1448 properties: 1449 name: 1450 description: Name of the referenced CustomResourceDefinition. 1451 type: string 1452 version: 1453 description: Version indicate which version should be 1454 used if CRD has multiple versions by default it will 1455 use the first one if not specified 1456 type: string 1457 required: 1458 - name 1459 type: object 1460 extension: 1461 description: Extension is used for extension needs by OAM 1462 platform builders 1463 type: object 1464 x-kubernetes-preserve-unknown-fields: true 1465 podDisruptive: 1466 description: PodDisruptive specifies whether using the trait 1467 will cause the pod to restart or not. 1468 type: boolean 1469 revisionEnabled: 1470 description: Revision indicates whether a trait is aware 1471 of component revision 1472 type: boolean 1473 schematic: 1474 description: Schematic defines the data format and template 1475 of the encapsulation of the trait 1476 properties: 1477 cue: 1478 description: CUE defines the encapsulation in CUE format 1479 properties: 1480 template: 1481 description: Template defines the abstraction template 1482 data of the capability, it will replace the old 1483 CUE template in extension field. Template is a 1484 required field if CUE is defined in Capability 1485 Definition. 1486 type: string 1487 required: 1488 - template 1489 type: object 1490 helm: 1491 description: A Helm represents resources used by a Helm 1492 module 1493 properties: 1494 release: 1495 description: Release records a Helm release used 1496 by a Helm module workload. 1497 type: object 1498 x-kubernetes-preserve-unknown-fields: true 1499 repository: 1500 description: HelmRelease records a Helm repository 1501 used by a Helm module workload. 1502 type: object 1503 x-kubernetes-preserve-unknown-fields: true 1504 required: 1505 - release 1506 - repository 1507 type: object 1508 kube: 1509 description: Kube defines the encapsulation in raw Kubernetes 1510 resource format 1511 properties: 1512 parameters: 1513 description: Parameters defines configurable parameters 1514 items: 1515 description: A KubeParameter defines a configurable 1516 parameter of a component. 1517 properties: 1518 description: 1519 description: Description of this parameter. 1520 type: string 1521 fieldPaths: 1522 description: "FieldPaths specifies an array 1523 of fields within this workload that will 1524 be overwritten by the value of this parameter. 1525 \tAll fields must be of the same type. Fields 1526 are specified as JSON field paths without 1527 a leading dot, for example 'spec.replicas'." 1528 items: 1529 type: string 1530 type: array 1531 name: 1532 description: Name of this parameter 1533 type: string 1534 required: 1535 default: false 1536 description: Required specifies whether or 1537 not a value for this parameter must be supplied 1538 when authoring an Application. 1539 type: boolean 1540 type: 1541 description: 'ValueType indicates the type 1542 of the parameter value, and only supports 1543 basic data types: string, number, boolean.' 1544 enum: 1545 - string 1546 - number 1547 - boolean 1548 type: string 1549 required: 1550 - fieldPaths 1551 - name 1552 - type 1553 type: object 1554 type: array 1555 template: 1556 description: Template defines the raw Kubernetes 1557 resource 1558 type: object 1559 x-kubernetes-preserve-unknown-fields: true 1560 required: 1561 - template 1562 type: object 1563 terraform: 1564 description: Terraform is the struct to describe cloud 1565 resources managed by Hashicorp Terraform 1566 properties: 1567 configuration: 1568 description: Configuration is Terraform Configuration 1569 type: string 1570 customRegion: 1571 description: Region is cloud provider's region. 1572 It will override the region in the region field 1573 of ProviderReference 1574 type: string 1575 deleteResource: 1576 default: true 1577 description: DeleteResource will determine whether 1578 provisioned cloud resources will be deleted when 1579 CR is deleted 1580 type: boolean 1581 path: 1582 description: Path is the sub-directory of remote 1583 git repository. It's valid when remote is set 1584 type: string 1585 providerRef: 1586 description: ProviderReference specifies the reference 1587 to Provider 1588 properties: 1589 name: 1590 description: Name of the referenced object. 1591 type: string 1592 namespace: 1593 default: default 1594 description: Namespace of the referenced object. 1595 type: string 1596 required: 1597 - name 1598 type: object 1599 type: 1600 default: hcl 1601 description: Type specifies which Terraform configuration 1602 it is, HCL or JSON syntax 1603 enum: 1604 - hcl 1605 - json 1606 - remote 1607 type: string 1608 writeConnectionSecretToRef: 1609 description: WriteConnectionSecretToReference specifies 1610 the namespace and name of a Secret to which any 1611 connection details for this managed resource should 1612 be written. Connection details frequently include 1613 the endpoint, username, and password required 1614 to connect to the managed resource. 1615 properties: 1616 name: 1617 description: Name of the secret. 1618 type: string 1619 namespace: 1620 description: Namespace of the secret. 1621 type: string 1622 required: 1623 - name 1624 type: object 1625 required: 1626 - configuration 1627 type: object 1628 type: object 1629 status: 1630 description: Status defines the custom health policy and 1631 status message for trait 1632 properties: 1633 customStatus: 1634 description: CustomStatus defines the custom status 1635 message that could display to user 1636 type: string 1637 healthPolicy: 1638 description: HealthPolicy defines the health check policy 1639 for the abstraction 1640 type: string 1641 type: object 1642 workloadRefPath: 1643 description: WorkloadRefPath indicates where/if a trait 1644 accepts a workloadRef object 1645 type: string 1646 type: object 1647 status: 1648 description: TraitDefinitionStatus is the status of TraitDefinition 1649 properties: 1650 conditions: 1651 description: Conditions of the resource. 1652 items: 1653 description: A Condition that may apply to a resource. 1654 properties: 1655 lastTransitionTime: 1656 description: LastTransitionTime is the last time this 1657 condition transitioned from one status to another. 1658 format: date-time 1659 type: string 1660 message: 1661 description: A Message containing details about this 1662 condition's last transition from one status to another, 1663 if any. 1664 type: string 1665 reason: 1666 description: A Reason for this condition's last transition 1667 from one status to another. 1668 type: string 1669 status: 1670 description: Status of this condition; is it currently 1671 True, False, or Unknown? 1672 type: string 1673 type: 1674 description: Type of this condition. At most one of 1675 each condition type may apply to a resource at any 1676 point in time. 1677 type: string 1678 required: 1679 - lastTransitionTime 1680 - reason 1681 - status 1682 - type 1683 type: object 1684 type: array 1685 configMapRef: 1686 description: ConfigMapRef refer to a ConfigMap which contains 1687 OpenAPI V3 JSON schema of Component parameters. 1688 type: string 1689 latestRevision: 1690 description: LatestRevision of the trait definition 1691 properties: 1692 name: 1693 type: string 1694 revision: 1695 format: int64 1696 type: integer 1697 revisionHash: 1698 description: RevisionHash record the hash value of the 1699 spec of ApplicationRevision object. 1700 type: string 1701 required: 1702 - name 1703 - revision 1704 type: object 1705 type: object 1706 type: object 1707 description: TraitDefinitions records the snapshot of the traitDefinitions 1708 related with the created/modified Application 1709 type: object 1710 workloadDefinitions: 1711 additionalProperties: 1712 description: A WorkloadDefinition registers a kind of Kubernetes 1713 custom resource as a valid OAM workload kind by referencing its 1714 CustomResourceDefinition. The CRD is used to validate the schema 1715 of the workload when it is embedded in an OAM Component. 1716 properties: 1717 apiVersion: 1718 description: 'APIVersion defines the versioned schema of this 1719 representation of an object. Servers should convert recognized 1720 schemas to the latest internal value, and may reject unrecognized 1721 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1722 type: string 1723 kind: 1724 description: 'Kind is a string value representing the REST resource 1725 this object represents. Servers may infer this from the endpoint 1726 the client submits requests to. Cannot be updated. In CamelCase. 1727 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1728 type: string 1729 metadata: 1730 properties: 1731 annotations: 1732 additionalProperties: 1733 type: string 1734 type: object 1735 finalizers: 1736 items: 1737 type: string 1738 type: array 1739 labels: 1740 additionalProperties: 1741 type: string 1742 type: object 1743 name: 1744 type: string 1745 namespace: 1746 type: string 1747 type: object 1748 spec: 1749 description: A WorkloadDefinitionSpec defines the desired state 1750 of a WorkloadDefinition. 1751 properties: 1752 childResourceKinds: 1753 description: ChildResourceKinds are the list of GVK of the 1754 child resources this workload generates 1755 items: 1756 description: A ChildResourceKind defines a child Kubernetes 1757 resource kind with a selector 1758 properties: 1759 apiVersion: 1760 description: APIVersion of the child resource 1761 type: string 1762 kind: 1763 description: Kind of the child resource 1764 type: string 1765 selector: 1766 additionalProperties: 1767 type: string 1768 description: Selector to select the child resources 1769 that the workload wants to expose to traits 1770 type: object 1771 required: 1772 - apiVersion 1773 - kind 1774 type: object 1775 type: array 1776 definitionRef: 1777 description: Reference to the CustomResourceDefinition that 1778 defines this workload kind. 1779 properties: 1780 name: 1781 description: Name of the referenced CustomResourceDefinition. 1782 type: string 1783 version: 1784 description: Version indicate which version should be 1785 used if CRD has multiple versions by default it will 1786 use the first one if not specified 1787 type: string 1788 required: 1789 - name 1790 type: object 1791 extension: 1792 description: Extension is used for extension needs by OAM 1793 platform builders 1794 type: object 1795 x-kubernetes-preserve-unknown-fields: true 1796 podSpecPath: 1797 description: PodSpecPath indicates where/if this workload 1798 has K8s podSpec field if one workload has podSpec, trait 1799 can do lot's of assumption such as port, env, volume fields. 1800 type: string 1801 revisionLabel: 1802 description: RevisionLabel indicates which label for underlying 1803 resources(e.g. pods) of this workload can be used by trait 1804 to create resource selectors(e.g. label selector for pods). 1805 type: string 1806 schematic: 1807 description: Schematic defines the data format and template 1808 of the encapsulation of the workload 1809 properties: 1810 cue: 1811 description: CUE defines the encapsulation in CUE format 1812 properties: 1813 template: 1814 description: Template defines the abstraction template 1815 data of the capability, it will replace the old 1816 CUE template in extension field. Template is a 1817 required field if CUE is defined in Capability 1818 Definition. 1819 type: string 1820 required: 1821 - template 1822 type: object 1823 helm: 1824 description: A Helm represents resources used by a Helm 1825 module 1826 properties: 1827 release: 1828 description: Release records a Helm release used 1829 by a Helm module workload. 1830 type: object 1831 x-kubernetes-preserve-unknown-fields: true 1832 repository: 1833 description: HelmRelease records a Helm repository 1834 used by a Helm module workload. 1835 type: object 1836 x-kubernetes-preserve-unknown-fields: true 1837 required: 1838 - release 1839 - repository 1840 type: object 1841 kube: 1842 description: Kube defines the encapsulation in raw Kubernetes 1843 resource format 1844 properties: 1845 parameters: 1846 description: Parameters defines configurable parameters 1847 items: 1848 description: A KubeParameter defines a configurable 1849 parameter of a component. 1850 properties: 1851 description: 1852 description: Description of this parameter. 1853 type: string 1854 fieldPaths: 1855 description: "FieldPaths specifies an array 1856 of fields within this workload that will 1857 be overwritten by the value of this parameter. 1858 \tAll fields must be of the same type. Fields 1859 are specified as JSON field paths without 1860 a leading dot, for example 'spec.replicas'." 1861 items: 1862 type: string 1863 type: array 1864 name: 1865 description: Name of this parameter 1866 type: string 1867 required: 1868 default: false 1869 description: Required specifies whether or 1870 not a value for this parameter must be supplied 1871 when authoring an Application. 1872 type: boolean 1873 type: 1874 description: 'ValueType indicates the type 1875 of the parameter value, and only supports 1876 basic data types: string, number, boolean.' 1877 enum: 1878 - string 1879 - number 1880 - boolean 1881 type: string 1882 required: 1883 - fieldPaths 1884 - name 1885 - type 1886 type: object 1887 type: array 1888 template: 1889 description: Template defines the raw Kubernetes 1890 resource 1891 type: object 1892 x-kubernetes-preserve-unknown-fields: true 1893 required: 1894 - template 1895 type: object 1896 terraform: 1897 description: Terraform is the struct to describe cloud 1898 resources managed by Hashicorp Terraform 1899 properties: 1900 configuration: 1901 description: Configuration is Terraform Configuration 1902 type: string 1903 customRegion: 1904 description: Region is cloud provider's region. 1905 It will override the region in the region field 1906 of ProviderReference 1907 type: string 1908 deleteResource: 1909 default: true 1910 description: DeleteResource will determine whether 1911 provisioned cloud resources will be deleted when 1912 CR is deleted 1913 type: boolean 1914 path: 1915 description: Path is the sub-directory of remote 1916 git repository. It's valid when remote is set 1917 type: string 1918 providerRef: 1919 description: ProviderReference specifies the reference 1920 to Provider 1921 properties: 1922 name: 1923 description: Name of the referenced object. 1924 type: string 1925 namespace: 1926 default: default 1927 description: Namespace of the referenced object. 1928 type: string 1929 required: 1930 - name 1931 type: object 1932 type: 1933 default: hcl 1934 description: Type specifies which Terraform configuration 1935 it is, HCL or JSON syntax 1936 enum: 1937 - hcl 1938 - json 1939 - remote 1940 type: string 1941 writeConnectionSecretToRef: 1942 description: WriteConnectionSecretToReference specifies 1943 the namespace and name of a Secret to which any 1944 connection details for this managed resource should 1945 be written. Connection details frequently include 1946 the endpoint, username, and password required 1947 to connect to the managed resource. 1948 properties: 1949 name: 1950 description: Name of the secret. 1951 type: string 1952 namespace: 1953 description: Namespace of the secret. 1954 type: string 1955 required: 1956 - name 1957 type: object 1958 required: 1959 - configuration 1960 type: object 1961 type: object 1962 status: 1963 description: Status defines the custom health policy and 1964 status message for workload 1965 properties: 1966 customStatus: 1967 description: CustomStatus defines the custom status 1968 message that could display to user 1969 type: string 1970 healthPolicy: 1971 description: HealthPolicy defines the health check policy 1972 for the abstraction 1973 type: string 1974 type: object 1975 required: 1976 - definitionRef 1977 type: object 1978 status: 1979 description: WorkloadDefinitionStatus is the status of WorkloadDefinition 1980 properties: 1981 conditions: 1982 description: Conditions of the resource. 1983 items: 1984 description: A Condition that may apply to a resource. 1985 properties: 1986 lastTransitionTime: 1987 description: LastTransitionTime is the last time this 1988 condition transitioned from one status to another. 1989 format: date-time 1990 type: string 1991 message: 1992 description: A Message containing details about this 1993 condition's last transition from one status to another, 1994 if any. 1995 type: string 1996 reason: 1997 description: A Reason for this condition's last transition 1998 from one status to another. 1999 type: string 2000 status: 2001 description: Status of this condition; is it currently 2002 True, False, or Unknown? 2003 type: string 2004 type: 2005 description: Type of this condition. At most one of 2006 each condition type may apply to a resource at any 2007 point in time. 2008 type: string 2009 required: 2010 - lastTransitionTime 2011 - reason 2012 - status 2013 - type 2014 type: object 2015 type: array 2016 type: object 2017 type: object 2018 description: WorkloadDefinitions records the snapshot of the workloadDefinitions 2019 related with the created/modified Application 2020 type: object 2021 required: 2022 - application 2023 - applicationConfiguration 2024 type: object 2025 type: object 2026 served: true 2027 storage: false 2028 subresources: {} 2029 - additionalPrinterColumns: 2030 - jsonPath: .metadata.creationTimestamp 2031 name: AGE 2032 type: date 2033 - jsonPath: .metadata.annotations['app\.oam\.dev\/publishVersion'] 2034 name: PUBLISH_VERSION 2035 type: string 2036 - jsonPath: .status.succeeded 2037 name: SUCCEEDED 2038 type: string 2039 name: v1beta1 2040 schema: 2041 openAPIV3Schema: 2042 description: ApplicationRevision is the Schema for the ApplicationRevision 2043 API 2044 properties: 2045 apiVersion: 2046 description: 'APIVersion defines the versioned schema of this representation 2047 of an object. Servers should convert recognized schemas to the latest 2048 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 2049 type: string 2050 kind: 2051 description: 'Kind is a string value representing the REST resource this 2052 object represents. Servers may infer this from the endpoint the client 2053 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2054 type: string 2055 metadata: 2056 type: object 2057 spec: 2058 description: ApplicationRevisionSpec is the spec of ApplicationRevision 2059 properties: 2060 application: 2061 description: Application records the snapshot of the created/modified 2062 Application 2063 properties: 2064 apiVersion: 2065 description: 'APIVersion defines the versioned schema of this 2066 representation of an object. Servers should convert recognized 2067 schemas to the latest internal value, and may reject unrecognized 2068 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 2069 type: string 2070 kind: 2071 description: 'Kind is a string value representing the REST resource 2072 this object represents. Servers may infer this from the endpoint 2073 the client submits requests to. Cannot be updated. In CamelCase. 2074 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2075 type: string 2076 metadata: 2077 properties: 2078 annotations: 2079 additionalProperties: 2080 type: string 2081 type: object 2082 finalizers: 2083 items: 2084 type: string 2085 type: array 2086 labels: 2087 additionalProperties: 2088 type: string 2089 type: object 2090 name: 2091 type: string 2092 namespace: 2093 type: string 2094 type: object 2095 spec: 2096 description: ApplicationSpec is the spec of Application 2097 properties: 2098 components: 2099 items: 2100 description: ApplicationComponent describe the component 2101 of application 2102 properties: 2103 dependsOn: 2104 items: 2105 type: string 2106 type: array 2107 externalRevision: 2108 description: ExternalRevision specified the component 2109 revisionName 2110 type: string 2111 inputs: 2112 description: StepInputs defines variable input of WorkflowStep 2113 items: 2114 properties: 2115 from: 2116 type: string 2117 parameterKey: 2118 type: string 2119 required: 2120 - from 2121 - parameterKey 2122 type: object 2123 type: array 2124 name: 2125 type: string 2126 outputs: 2127 description: StepOutputs defines output variable of 2128 WorkflowStep 2129 items: 2130 properties: 2131 name: 2132 type: string 2133 valueFrom: 2134 type: string 2135 required: 2136 - name 2137 - valueFrom 2138 type: object 2139 type: array 2140 properties: 2141 type: object 2142 x-kubernetes-preserve-unknown-fields: true 2143 scopes: 2144 additionalProperties: 2145 type: string 2146 description: scopes in ApplicationComponent defines 2147 the component-level scopes the format is <scope-type:scope-instance-name> 2148 pairs, the key represents type of `ScopeDefinition` 2149 while the value represent the name of scope instance. 2150 type: object 2151 x-kubernetes-preserve-unknown-fields: true 2152 traits: 2153 description: Traits define the trait of one component, 2154 the type must be array to keep the order. 2155 items: 2156 description: ApplicationTrait defines the trait of 2157 application 2158 properties: 2159 properties: 2160 type: object 2161 x-kubernetes-preserve-unknown-fields: true 2162 type: 2163 type: string 2164 required: 2165 - type 2166 type: object 2167 type: array 2168 type: 2169 type: string 2170 required: 2171 - name 2172 - type 2173 type: object 2174 type: array 2175 policies: 2176 description: Policies defines the global policies for all 2177 components in the app, e.g. security, metrics, gitops, multi-cluster 2178 placement rules, etc. Policies are applied after components 2179 are rendered and before workflow steps are executed. 2180 items: 2181 description: AppPolicy defines a global policy for all components 2182 in the app. 2183 properties: 2184 name: 2185 description: Name is the unique name of the policy. 2186 type: string 2187 properties: 2188 type: object 2189 x-kubernetes-preserve-unknown-fields: true 2190 type: 2191 type: string 2192 required: 2193 - name 2194 - type 2195 type: object 2196 type: array 2197 workflow: 2198 description: 'Workflow defines how to customize the control 2199 logic. If workflow is specified, Vela won''t apply any resource, 2200 but provide rendered output in AppRevision. Workflow steps 2201 are executed in array order, and each step: - will have 2202 a context in annotation. - should mark "finish" phase in 2203 status.conditions.' 2204 properties: 2205 mode: 2206 description: WorkflowExecuteMode defines the mode of workflow 2207 execution 2208 properties: 2209 steps: 2210 description: Steps is the mode of workflow steps execution 2211 type: string 2212 subSteps: 2213 description: SubSteps is the mode of workflow sub 2214 steps execution 2215 type: string 2216 type: object 2217 ref: 2218 type: string 2219 steps: 2220 items: 2221 description: WorkflowStep defines how to execute a workflow 2222 step. 2223 properties: 2224 dependsOn: 2225 description: DependsOn is the dependency of the 2226 step 2227 items: 2228 type: string 2229 type: array 2230 if: 2231 description: If is the if condition of the step 2232 type: string 2233 inputs: 2234 description: Inputs is the inputs of the step 2235 items: 2236 properties: 2237 from: 2238 type: string 2239 parameterKey: 2240 type: string 2241 required: 2242 - from 2243 - parameterKey 2244 type: object 2245 type: array 2246 meta: 2247 description: Meta is the meta data of the workflow 2248 step. 2249 properties: 2250 alias: 2251 type: string 2252 type: object 2253 name: 2254 description: Name is the unique name of the workflow 2255 step. 2256 type: string 2257 outputs: 2258 description: Outputs is the outputs of the step 2259 items: 2260 properties: 2261 name: 2262 type: string 2263 valueFrom: 2264 type: string 2265 required: 2266 - name 2267 - valueFrom 2268 type: object 2269 type: array 2270 properties: 2271 description: Properties is the properties of the 2272 step 2273 type: object 2274 x-kubernetes-preserve-unknown-fields: true 2275 subSteps: 2276 items: 2277 description: WorkflowStepBase defines the workflow 2278 step base 2279 properties: 2280 dependsOn: 2281 description: DependsOn is the dependency of 2282 the step 2283 items: 2284 type: string 2285 type: array 2286 if: 2287 description: If is the if condition of the 2288 step 2289 type: string 2290 inputs: 2291 description: Inputs is the inputs of the step 2292 items: 2293 properties: 2294 from: 2295 type: string 2296 parameterKey: 2297 type: string 2298 required: 2299 - from 2300 - parameterKey 2301 type: object 2302 type: array 2303 meta: 2304 description: Meta is the meta data of the 2305 workflow step. 2306 properties: 2307 alias: 2308 type: string 2309 type: object 2310 name: 2311 description: Name is the unique name of the 2312 workflow step. 2313 type: string 2314 outputs: 2315 description: Outputs is the outputs of the 2316 step 2317 items: 2318 properties: 2319 name: 2320 type: string 2321 valueFrom: 2322 type: string 2323 required: 2324 - name 2325 - valueFrom 2326 type: object 2327 type: array 2328 properties: 2329 description: Properties is the properties 2330 of the step 2331 type: object 2332 x-kubernetes-preserve-unknown-fields: true 2333 timeout: 2334 description: Timeout is the timeout of the 2335 step 2336 type: string 2337 type: 2338 description: Type is the type of the workflow 2339 step. 2340 type: string 2341 required: 2342 - name 2343 - type 2344 type: object 2345 type: array 2346 timeout: 2347 description: Timeout is the timeout of the step 2348 type: string 2349 type: 2350 description: Type is the type of the workflow step. 2351 type: string 2352 required: 2353 - name 2354 - type 2355 type: object 2356 type: array 2357 type: object 2358 required: 2359 - components 2360 type: object 2361 status: 2362 description: AppStatus defines the observed state of Application 2363 properties: 2364 appliedResources: 2365 description: AppliedResources record the resources that the workflow 2366 step apply. 2367 items: 2368 description: ClusterObjectReference defines the object reference 2369 with cluster. 2370 properties: 2371 apiVersion: 2372 description: API version of the referent. 2373 type: string 2374 cluster: 2375 type: string 2376 creator: 2377 type: string 2378 fieldPath: 2379 description: 'If referring to a piece of an object instead 2380 of an entire object, this string should contain a 2381 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 2382 For example, if the object reference is to a container 2383 within a pod, this would take on a value like: "spec.containers{name}" 2384 (where "name" refers to the name of the container 2385 that triggered the event) or if no container name 2386 is specified "spec.containers[2]" (container with 2387 index 2 in this pod). This syntax is chosen only to 2388 have some well-defined way of referencing a part of 2389 an object. TODO: this design is not final and this 2390 field is subject to change in the future.' 2391 type: string 2392 kind: 2393 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2394 type: string 2395 name: 2396 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 2397 type: string 2398 namespace: 2399 description: 'Namespace of the referent. More info: 2400 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 2401 type: string 2402 resourceVersion: 2403 description: 'Specific resourceVersion to which this 2404 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 2405 type: string 2406 uid: 2407 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 2408 type: string 2409 type: object 2410 type: array 2411 components: 2412 description: Components record the related Components created 2413 by Application Controller 2414 items: 2415 description: 'ObjectReference contains enough information 2416 to let you inspect or modify the referred object. --- 2417 New uses of this type are discouraged because of difficulty 2418 describing its usage when embedded in APIs. 1. Ignored 2419 fields. It includes many fields which are not generally 2420 honored. For instance, ResourceVersion and FieldPath 2421 are both very rarely valid in actual usage. 2. Invalid 2422 usage help. It is impossible to add specific help for 2423 individual usage. In most embedded usages, there are 2424 particular restrictions like, "must refer only to 2425 types A and B" or "UID not honored" or "name must be restricted". Those 2426 cannot be well described when embedded. 3. Inconsistent 2427 validation. Because the usages are different, the validation 2428 rules are different by usage, which makes it hard for 2429 users to predict what will happen. 4. The fields are 2430 both imprecise and overly precise. Kind is not a precise 2431 mapping to a URL. This can produce ambiguity during 2432 interpretation and require a REST mapping. In most cases, 2433 the dependency is on the group,resource tuple and 2434 the version of the actual struct is irrelevant. 5. We 2435 cannot easily change it. Because this type is embedded 2436 in many locations, updates to this type will affect 2437 numerous schemas. Don''t make new APIs embed an underspecified 2438 API type they do not control. Instead of using this type, 2439 create a locally provided and used type that is well-focused 2440 on your reference. For example, ServiceReferences for 2441 admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 2442 .' 2443 properties: 2444 apiVersion: 2445 description: API version of the referent. 2446 type: string 2447 fieldPath: 2448 description: 'If referring to a piece of an object instead 2449 of an entire object, this string should contain a 2450 valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. 2451 For example, if the object reference is to a container 2452 within a pod, this would take on a value like: "spec.containers{name}" 2453 (where "name" refers to the name of the container 2454 that triggered the event) or if no container name 2455 is specified "spec.containers[2]" (container with 2456 index 2 in this pod). This syntax is chosen only to 2457 have some well-defined way of referencing a part of 2458 an object. TODO: this design is not final and this 2459 field is subject to change in the future.' 2460 type: string 2461 kind: 2462 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2463 type: string 2464 name: 2465 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 2466 type: string 2467 namespace: 2468 description: 'Namespace of the referent. More info: 2469 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 2470 type: string 2471 resourceVersion: 2472 description: 'Specific resourceVersion to which this 2473 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 2474 type: string 2475 uid: 2476 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 2477 type: string 2478 type: object 2479 type: array 2480 conditions: 2481 description: Conditions of the resource. 2482 items: 2483 description: A Condition that may apply to a resource. 2484 properties: 2485 lastTransitionTime: 2486 description: LastTransitionTime is the last time this 2487 condition transitioned from one status to another. 2488 format: date-time 2489 type: string 2490 message: 2491 description: A Message containing details about this 2492 condition's last transition from one status to another, 2493 if any. 2494 type: string 2495 reason: 2496 description: A Reason for this condition's last transition 2497 from one status to another. 2498 type: string 2499 status: 2500 description: Status of this condition; is it currently 2501 True, False, or Unknown? 2502 type: string 2503 type: 2504 description: Type of this condition. At most one of 2505 each condition type may apply to a resource at any 2506 point in time. 2507 type: string 2508 required: 2509 - lastTransitionTime 2510 - reason 2511 - status 2512 - type 2513 type: object 2514 type: array 2515 latestRevision: 2516 description: LatestRevision of the application configuration 2517 it generates 2518 properties: 2519 name: 2520 type: string 2521 revision: 2522 format: int64 2523 type: integer 2524 revisionHash: 2525 description: RevisionHash record the hash value of the 2526 spec of ApplicationRevision object. 2527 type: string 2528 required: 2529 - name 2530 - revision 2531 type: object 2532 observedGeneration: 2533 description: The generation observed by the application controller. 2534 format: int64 2535 type: integer 2536 policy: 2537 description: PolicyStatus records the status of policy Deprecated 2538 This field is only used by EnvBinding Policy which is deprecated. 2539 items: 2540 description: PolicyStatus records the status of policy Deprecated 2541 properties: 2542 name: 2543 type: string 2544 status: 2545 type: object 2546 x-kubernetes-preserve-unknown-fields: true 2547 type: 2548 type: string 2549 required: 2550 - name 2551 - type 2552 type: object 2553 type: array 2554 services: 2555 description: Services record the status of the application 2556 services 2557 items: 2558 description: ApplicationComponentStatus record the health 2559 status of App component 2560 properties: 2561 cluster: 2562 type: string 2563 env: 2564 type: string 2565 healthy: 2566 type: boolean 2567 message: 2568 type: string 2569 name: 2570 type: string 2571 namespace: 2572 type: string 2573 scopes: 2574 items: 2575 description: 'ObjectReference contains enough information 2576 to let you inspect or modify the referred object. 2577 --- New uses of this type are discouraged because 2578 of difficulty describing its usage when embedded 2579 in APIs. 1. Ignored fields. It includes many fields 2580 which are not generally honored. For instance, 2581 ResourceVersion and FieldPath are both very rarely 2582 valid in actual usage. 2. Invalid usage help. It 2583 is impossible to add specific help for individual 2584 usage. In most embedded usages, there are particular restrictions 2585 like, "must refer only to types A and B" or "UID 2586 not honored" or "name must be restricted". Those 2587 cannot be well described when embedded. 3. Inconsistent 2588 validation. Because the usages are different, the 2589 validation rules are different by usage, which makes 2590 it hard for users to predict what will happen. 4. 2591 The fields are both imprecise and overly precise. Kind 2592 is not a precise mapping to a URL. This can produce 2593 ambiguity during interpretation and require 2594 a REST mapping. In most cases, the dependency is 2595 on the group,resource tuple and the version 2596 of the actual struct is irrelevant. 5. We cannot 2597 easily change it. Because this type is embedded 2598 in many locations, updates to this type will 2599 affect numerous schemas. Don''t make new APIs embed 2600 an underspecified API type they do not control. 2601 Instead of using this type, create a locally provided 2602 and used type that is well-focused on your reference. 2603 For example, ServiceReferences for admission registration: 2604 https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 2605 .' 2606 properties: 2607 apiVersion: 2608 description: API version of the referent. 2609 type: string 2610 fieldPath: 2611 description: 'If referring to a piece of an object 2612 instead of an entire object, this string should 2613 contain a valid JSON/Go field access statement, 2614 such as desiredState.manifest.containers[2]. 2615 For example, if the object reference is to a 2616 container within a pod, this would take on a 2617 value like: "spec.containers{name}" (where "name" 2618 refers to the name of the container that triggered 2619 the event) or if no container name is specified 2620 "spec.containers[2]" (container with index 2 2621 in this pod). This syntax is chosen only to 2622 have some well-defined way of referencing a 2623 part of an object. TODO: this design is not 2624 final and this field is subject to change in 2625 the future.' 2626 type: string 2627 kind: 2628 description: 'Kind of the referent. More info: 2629 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2630 type: string 2631 name: 2632 description: 'Name of the referent. More info: 2633 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 2634 type: string 2635 namespace: 2636 description: 'Namespace of the referent. More 2637 info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 2638 type: string 2639 resourceVersion: 2640 description: 'Specific resourceVersion to which 2641 this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 2642 type: string 2643 uid: 2644 description: 'UID of the referent. More info: 2645 https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 2646 type: string 2647 type: object 2648 type: array 2649 traits: 2650 items: 2651 description: ApplicationTraitStatus records the trait 2652 health status 2653 properties: 2654 healthy: 2655 type: boolean 2656 message: 2657 type: string 2658 type: 2659 type: string 2660 required: 2661 - healthy 2662 - type 2663 type: object 2664 type: array 2665 workloadDefinition: 2666 description: WorkloadDefinition is the definition of 2667 a WorkloadDefinition, such as deployments/apps.v1 2668 properties: 2669 apiVersion: 2670 type: string 2671 kind: 2672 type: string 2673 required: 2674 - apiVersion 2675 - kind 2676 type: object 2677 required: 2678 - healthy 2679 - name 2680 type: object 2681 type: array 2682 status: 2683 description: ApplicationPhase is a label for the condition 2684 of an application at the current time 2685 type: string 2686 workflow: 2687 description: Workflow record the status of workflow 2688 properties: 2689 appRevision: 2690 type: string 2691 contextBackend: 2692 description: 'ObjectReference contains enough information 2693 to let you inspect or modify the referred object. --- 2694 New uses of this type are discouraged because of difficulty 2695 describing its usage when embedded in APIs. 1. Ignored 2696 fields. It includes many fields which are not generally 2697 honored. For instance, ResourceVersion and FieldPath 2698 are both very rarely valid in actual usage. 2. Invalid 2699 usage help. It is impossible to add specific help for 2700 individual usage. In most embedded usages, there are 2701 particular restrictions like, "must refer only to 2702 types A and B" or "UID not honored" or "name must be 2703 restricted". Those cannot be well described when 2704 embedded. 3. Inconsistent validation. Because the 2705 usages are different, the validation rules are different 2706 by usage, which makes it hard for users to predict what 2707 will happen. 4. The fields are both imprecise and overly 2708 precise. Kind is not a precise mapping to a URL. This 2709 can produce ambiguity during interpretation and 2710 require a REST mapping. In most cases, the dependency 2711 is on the group,resource tuple and the version of 2712 the actual struct is irrelevant. 5. We cannot easily 2713 change it. Because this type is embedded in many locations, 2714 updates to this type will affect numerous schemas. Don''t 2715 make new APIs embed an underspecified API type they 2716 do not control. Instead of using this type, create a 2717 locally provided and used type that is well-focused 2718 on your reference. For example, ServiceReferences for 2719 admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 2720 .' 2721 properties: 2722 apiVersion: 2723 description: API version of the referent. 2724 type: string 2725 fieldPath: 2726 description: 'If referring to a piece of an object 2727 instead of an entire object, this string should 2728 contain a valid JSON/Go field access statement, 2729 such as desiredState.manifest.containers[2]. For 2730 example, if the object reference is to a container 2731 within a pod, this would take on a value like: "spec.containers{name}" 2732 (where "name" refers to the name of the container 2733 that triggered the event) or if no container name 2734 is specified "spec.containers[2]" (container with 2735 index 2 in this pod). This syntax is chosen only 2736 to have some well-defined way of referencing a part 2737 of an object. TODO: this design is not final and 2738 this field is subject to change in the future.' 2739 type: string 2740 kind: 2741 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2742 type: string 2743 name: 2744 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 2745 type: string 2746 namespace: 2747 description: 'Namespace of the referent. More info: 2748 https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 2749 type: string 2750 resourceVersion: 2751 description: 'Specific resourceVersion to which this 2752 reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 2753 type: string 2754 uid: 2755 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 2756 type: string 2757 type: object 2758 endTime: 2759 format: date-time 2760 type: string 2761 finished: 2762 type: boolean 2763 message: 2764 type: string 2765 mode: 2766 type: string 2767 startTime: 2768 format: date-time 2769 type: string 2770 status: 2771 description: WorkflowRunPhase is a label for the condition 2772 of a WorkflowRun at the current time 2773 type: string 2774 steps: 2775 items: 2776 description: WorkflowStepStatus record the status of 2777 a workflow step, include step status and subStep status 2778 properties: 2779 firstExecuteTime: 2780 description: FirstExecuteTime is the first time 2781 this step execution. 2782 format: date-time 2783 type: string 2784 id: 2785 type: string 2786 lastExecuteTime: 2787 description: LastExecuteTime is the last time this 2788 step execution. 2789 format: date-time 2790 type: string 2791 message: 2792 description: A human readable message indicating 2793 details about why the workflowStep is in this 2794 state. 2795 type: string 2796 name: 2797 type: string 2798 phase: 2799 description: WorkflowStepPhase describes the phase 2800 of a workflow step. 2801 type: string 2802 reason: 2803 description: A brief CamelCase message indicating 2804 details about why the workflowStep is in this 2805 state. 2806 type: string 2807 subSteps: 2808 items: 2809 description: StepStatus record the base status 2810 of workflow step, which could be workflow step 2811 or subStep 2812 properties: 2813 firstExecuteTime: 2814 description: FirstExecuteTime is the first 2815 time this step execution. 2816 format: date-time 2817 type: string 2818 id: 2819 type: string 2820 lastExecuteTime: 2821 description: LastExecuteTime is the last time 2822 this step execution. 2823 format: date-time 2824 type: string 2825 message: 2826 description: A human readable message indicating 2827 details about why the workflowStep is in 2828 this state. 2829 type: string 2830 name: 2831 type: string 2832 phase: 2833 description: WorkflowStepPhase describes the 2834 phase of a workflow step. 2835 type: string 2836 reason: 2837 description: A brief CamelCase message indicating 2838 details about why the workflowStep is in 2839 this state. 2840 type: string 2841 type: 2842 type: string 2843 required: 2844 - id 2845 type: object 2846 type: array 2847 type: 2848 type: string 2849 required: 2850 - id 2851 type: object 2852 type: array 2853 suspend: 2854 type: boolean 2855 suspendState: 2856 type: string 2857 terminated: 2858 type: boolean 2859 required: 2860 - finished 2861 - mode 2862 - suspend 2863 - terminated 2864 type: object 2865 type: object 2866 type: object 2867 componentDefinitions: 2868 additionalProperties: 2869 description: ComponentDefinition is the Schema for the componentdefinitions 2870 API 2871 properties: 2872 apiVersion: 2873 description: 'APIVersion defines the versioned schema of this 2874 representation of an object. Servers should convert recognized 2875 schemas to the latest internal value, and may reject unrecognized 2876 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 2877 type: string 2878 kind: 2879 description: 'Kind is a string value representing the REST resource 2880 this object represents. Servers may infer this from the endpoint 2881 the client submits requests to. Cannot be updated. In CamelCase. 2882 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2883 type: string 2884 metadata: 2885 properties: 2886 annotations: 2887 additionalProperties: 2888 type: string 2889 type: object 2890 finalizers: 2891 items: 2892 type: string 2893 type: array 2894 labels: 2895 additionalProperties: 2896 type: string 2897 type: object 2898 name: 2899 type: string 2900 namespace: 2901 type: string 2902 type: object 2903 spec: 2904 description: ComponentDefinitionSpec defines the desired state 2905 of ComponentDefinition 2906 properties: 2907 childResourceKinds: 2908 description: ChildResourceKinds are the list of GVK of the 2909 child resources this workload generates 2910 items: 2911 description: A ChildResourceKind defines a child Kubernetes 2912 resource kind with a selector 2913 properties: 2914 apiVersion: 2915 description: APIVersion of the child resource 2916 type: string 2917 kind: 2918 description: Kind of the child resource 2919 type: string 2920 selector: 2921 additionalProperties: 2922 type: string 2923 description: Selector to select the child resources 2924 that the workload wants to expose to traits 2925 type: object 2926 required: 2927 - apiVersion 2928 - kind 2929 type: object 2930 type: array 2931 extension: 2932 description: Extension is used for extension needs by OAM 2933 platform builders 2934 type: object 2935 x-kubernetes-preserve-unknown-fields: true 2936 podSpecPath: 2937 description: PodSpecPath indicates where/if this workload 2938 has K8s podSpec field if one workload has podSpec, trait 2939 can do lot's of assumption such as port, env, volume fields. 2940 type: string 2941 revisionLabel: 2942 description: RevisionLabel indicates which label for underlying 2943 resources(e.g. pods) of this workload can be used by trait 2944 to create resource selectors(e.g. label selector for pods). 2945 type: string 2946 schematic: 2947 description: Schematic defines the data format and template 2948 of the encapsulation of the workload 2949 properties: 2950 cue: 2951 description: CUE defines the encapsulation in CUE format 2952 properties: 2953 template: 2954 description: Template defines the abstraction template 2955 data of the capability, it will replace the old 2956 CUE template in extension field. Template is a 2957 required field if CUE is defined in Capability 2958 Definition. 2959 type: string 2960 required: 2961 - template 2962 type: object 2963 helm: 2964 description: A Helm represents resources used by a Helm 2965 module 2966 properties: 2967 release: 2968 description: Release records a Helm release used 2969 by a Helm module workload. 2970 type: object 2971 x-kubernetes-preserve-unknown-fields: true 2972 repository: 2973 description: HelmRelease records a Helm repository 2974 used by a Helm module workload. 2975 type: object 2976 x-kubernetes-preserve-unknown-fields: true 2977 required: 2978 - release 2979 - repository 2980 type: object 2981 kube: 2982 description: Kube defines the encapsulation in raw Kubernetes 2983 resource format 2984 properties: 2985 parameters: 2986 description: Parameters defines configurable parameters 2987 items: 2988 description: A KubeParameter defines a configurable 2989 parameter of a component. 2990 properties: 2991 description: 2992 description: Description of this parameter. 2993 type: string 2994 fieldPaths: 2995 description: "FieldPaths specifies an array 2996 of fields within this workload that will 2997 be overwritten by the value of this parameter. 2998 \tAll fields must be of the same type. Fields 2999 are specified as JSON field paths without 3000 a leading dot, for example 'spec.replicas'." 3001 items: 3002 type: string 3003 type: array 3004 name: 3005 description: Name of this parameter 3006 type: string 3007 required: 3008 default: false 3009 description: Required specifies whether or 3010 not a value for this parameter must be supplied 3011 when authoring an Application. 3012 type: boolean 3013 type: 3014 description: 'ValueType indicates the type 3015 of the parameter value, and only supports 3016 basic data types: string, number, boolean.' 3017 enum: 3018 - string 3019 - number 3020 - boolean 3021 type: string 3022 required: 3023 - fieldPaths 3024 - name 3025 - type 3026 type: object 3027 type: array 3028 template: 3029 description: Template defines the raw Kubernetes 3030 resource 3031 type: object 3032 x-kubernetes-preserve-unknown-fields: true 3033 required: 3034 - template 3035 type: object 3036 terraform: 3037 description: Terraform is the struct to describe cloud 3038 resources managed by Hashicorp Terraform 3039 properties: 3040 configuration: 3041 description: Configuration is Terraform Configuration 3042 type: string 3043 customRegion: 3044 description: Region is cloud provider's region. 3045 It will override the region in the region field 3046 of ProviderReference 3047 type: string 3048 deleteResource: 3049 default: true 3050 description: DeleteResource will determine whether 3051 provisioned cloud resources will be deleted when 3052 CR is deleted 3053 type: boolean 3054 path: 3055 description: Path is the sub-directory of remote 3056 git repository. It's valid when remote is set 3057 type: string 3058 providerRef: 3059 description: ProviderReference specifies the reference 3060 to Provider 3061 properties: 3062 name: 3063 description: Name of the referenced object. 3064 type: string 3065 namespace: 3066 default: default 3067 description: Namespace of the referenced object. 3068 type: string 3069 required: 3070 - name 3071 type: object 3072 type: 3073 default: hcl 3074 description: Type specifies which Terraform configuration 3075 it is, HCL or JSON syntax 3076 enum: 3077 - hcl 3078 - json 3079 - remote 3080 type: string 3081 writeConnectionSecretToRef: 3082 description: WriteConnectionSecretToReference specifies 3083 the namespace and name of a Secret to which any 3084 connection details for this managed resource should 3085 be written. Connection details frequently include 3086 the endpoint, username, and password required 3087 to connect to the managed resource. 3088 properties: 3089 name: 3090 description: Name of the secret. 3091 type: string 3092 namespace: 3093 description: Namespace of the secret. 3094 type: string 3095 required: 3096 - name 3097 type: object 3098 required: 3099 - configuration 3100 type: object 3101 type: object 3102 status: 3103 description: Status defines the custom health policy and 3104 status message for workload 3105 properties: 3106 customStatus: 3107 description: CustomStatus defines the custom status 3108 message that could display to user 3109 type: string 3110 healthPolicy: 3111 description: HealthPolicy defines the health check policy 3112 for the abstraction 3113 type: string 3114 type: object 3115 workload: 3116 description: Workload is a workload type descriptor 3117 properties: 3118 definition: 3119 description: Definition mutually exclusive to workload.type, 3120 a embedded WorkloadDefinition 3121 properties: 3122 apiVersion: 3123 type: string 3124 kind: 3125 type: string 3126 required: 3127 - apiVersion 3128 - kind 3129 type: object 3130 type: 3131 description: Type ref to a WorkloadDefinition via name 3132 type: string 3133 type: object 3134 required: 3135 - workload 3136 type: object 3137 status: 3138 description: ComponentDefinitionStatus is the status of ComponentDefinition 3139 properties: 3140 conditions: 3141 description: Conditions of the resource. 3142 items: 3143 description: A Condition that may apply to a resource. 3144 properties: 3145 lastTransitionTime: 3146 description: LastTransitionTime is the last time this 3147 condition transitioned from one status to another. 3148 format: date-time 3149 type: string 3150 message: 3151 description: A Message containing details about this 3152 condition's last transition from one status to another, 3153 if any. 3154 type: string 3155 reason: 3156 description: A Reason for this condition's last transition 3157 from one status to another. 3158 type: string 3159 status: 3160 description: Status of this condition; is it currently 3161 True, False, or Unknown? 3162 type: string 3163 type: 3164 description: Type of this condition. At most one of 3165 each condition type may apply to a resource at any 3166 point in time. 3167 type: string 3168 required: 3169 - lastTransitionTime 3170 - reason 3171 - status 3172 - type 3173 type: object 3174 type: array 3175 configMapRef: 3176 description: ConfigMapRef refer to a ConfigMap which contains 3177 OpenAPI V3 JSON schema of Component parameters. 3178 type: string 3179 latestRevision: 3180 description: LatestRevision of the component definition 3181 properties: 3182 name: 3183 type: string 3184 revision: 3185 format: int64 3186 type: integer 3187 revisionHash: 3188 description: RevisionHash record the hash value of the 3189 spec of ApplicationRevision object. 3190 type: string 3191 required: 3192 - name 3193 - revision 3194 type: object 3195 type: object 3196 type: object 3197 description: ComponentDefinitions records the snapshot of the componentDefinitions 3198 related with the created/modified Application 3199 type: object 3200 policies: 3201 additionalProperties: 3202 description: Policy is the Schema for the policy API 3203 properties: 3204 apiVersion: 3205 description: 'APIVersion defines the versioned schema of this 3206 representation of an object. Servers should convert recognized 3207 schemas to the latest internal value, and may reject unrecognized 3208 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 3209 type: string 3210 kind: 3211 description: 'Kind is a string value representing the REST resource 3212 this object represents. Servers may infer this from the endpoint 3213 the client submits requests to. Cannot be updated. In CamelCase. 3214 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 3215 type: string 3216 metadata: 3217 properties: 3218 annotations: 3219 additionalProperties: 3220 type: string 3221 type: object 3222 finalizers: 3223 items: 3224 type: string 3225 type: array 3226 labels: 3227 additionalProperties: 3228 type: string 3229 type: object 3230 name: 3231 type: string 3232 namespace: 3233 type: string 3234 type: object 3235 properties: 3236 type: object 3237 x-kubernetes-preserve-unknown-fields: true 3238 type: 3239 type: string 3240 required: 3241 - type 3242 type: object 3243 description: Policies records the external policies 3244 type: object 3245 policyDefinitions: 3246 additionalProperties: 3247 description: PolicyDefinition is the Schema for the policydefinitions 3248 API 3249 properties: 3250 apiVersion: 3251 description: 'APIVersion defines the versioned schema of this 3252 representation of an object. Servers should convert recognized 3253 schemas to the latest internal value, and may reject unrecognized 3254 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 3255 type: string 3256 kind: 3257 description: 'Kind is a string value representing the REST resource 3258 this object represents. Servers may infer this from the endpoint 3259 the client submits requests to. Cannot be updated. In CamelCase. 3260 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 3261 type: string 3262 metadata: 3263 properties: 3264 annotations: 3265 additionalProperties: 3266 type: string 3267 type: object 3268 finalizers: 3269 items: 3270 type: string 3271 type: array 3272 labels: 3273 additionalProperties: 3274 type: string 3275 type: object 3276 name: 3277 type: string 3278 namespace: 3279 type: string 3280 type: object 3281 spec: 3282 description: PolicyDefinitionSpec defines the desired state 3283 of PolicyDefinition 3284 properties: 3285 definitionRef: 3286 description: Reference to the CustomResourceDefinition that 3287 defines this trait kind. 3288 properties: 3289 name: 3290 description: Name of the referenced CustomResourceDefinition. 3291 type: string 3292 version: 3293 description: Version indicate which version should be 3294 used if CRD has multiple versions by default it will 3295 use the first one if not specified 3296 type: string 3297 required: 3298 - name 3299 type: object 3300 manageHealthCheck: 3301 description: ManageHealthCheck means the policy will handle 3302 health checking and skip application controller built-in 3303 health checking. 3304 type: boolean 3305 schematic: 3306 description: Schematic defines the data format and template 3307 of the encapsulation of the policy definition. Only CUE 3308 schematic is supported for now. 3309 properties: 3310 cue: 3311 description: CUE defines the encapsulation in CUE format 3312 properties: 3313 template: 3314 description: Template defines the abstraction template 3315 data of the capability, it will replace the old 3316 CUE template in extension field. Template is a 3317 required field if CUE is defined in Capability 3318 Definition. 3319 type: string 3320 required: 3321 - template 3322 type: object 3323 helm: 3324 description: A Helm represents resources used by a Helm 3325 module 3326 properties: 3327 release: 3328 description: Release records a Helm release used 3329 by a Helm module workload. 3330 type: object 3331 x-kubernetes-preserve-unknown-fields: true 3332 repository: 3333 description: HelmRelease records a Helm repository 3334 used by a Helm module workload. 3335 type: object 3336 x-kubernetes-preserve-unknown-fields: true 3337 required: 3338 - release 3339 - repository 3340 type: object 3341 kube: 3342 description: Kube defines the encapsulation in raw Kubernetes 3343 resource format 3344 properties: 3345 parameters: 3346 description: Parameters defines configurable parameters 3347 items: 3348 description: A KubeParameter defines a configurable 3349 parameter of a component. 3350 properties: 3351 description: 3352 description: Description of this parameter. 3353 type: string 3354 fieldPaths: 3355 description: "FieldPaths specifies an array 3356 of fields within this workload that will 3357 be overwritten by the value of this parameter. 3358 \tAll fields must be of the same type. Fields 3359 are specified as JSON field paths without 3360 a leading dot, for example 'spec.replicas'." 3361 items: 3362 type: string 3363 type: array 3364 name: 3365 description: Name of this parameter 3366 type: string 3367 required: 3368 default: false 3369 description: Required specifies whether or 3370 not a value for this parameter must be supplied 3371 when authoring an Application. 3372 type: boolean 3373 type: 3374 description: 'ValueType indicates the type 3375 of the parameter value, and only supports 3376 basic data types: string, number, boolean.' 3377 enum: 3378 - string 3379 - number 3380 - boolean 3381 type: string 3382 required: 3383 - fieldPaths 3384 - name 3385 - type 3386 type: object 3387 type: array 3388 template: 3389 description: Template defines the raw Kubernetes 3390 resource 3391 type: object 3392 x-kubernetes-preserve-unknown-fields: true 3393 required: 3394 - template 3395 type: object 3396 terraform: 3397 description: Terraform is the struct to describe cloud 3398 resources managed by Hashicorp Terraform 3399 properties: 3400 configuration: 3401 description: Configuration is Terraform Configuration 3402 type: string 3403 customRegion: 3404 description: Region is cloud provider's region. 3405 It will override the region in the region field 3406 of ProviderReference 3407 type: string 3408 deleteResource: 3409 default: true 3410 description: DeleteResource will determine whether 3411 provisioned cloud resources will be deleted when 3412 CR is deleted 3413 type: boolean 3414 path: 3415 description: Path is the sub-directory of remote 3416 git repository. It's valid when remote is set 3417 type: string 3418 providerRef: 3419 description: ProviderReference specifies the reference 3420 to Provider 3421 properties: 3422 name: 3423 description: Name of the referenced object. 3424 type: string 3425 namespace: 3426 default: default 3427 description: Namespace of the referenced object. 3428 type: string 3429 required: 3430 - name 3431 type: object 3432 type: 3433 default: hcl 3434 description: Type specifies which Terraform configuration 3435 it is, HCL or JSON syntax 3436 enum: 3437 - hcl 3438 - json 3439 - remote 3440 type: string 3441 writeConnectionSecretToRef: 3442 description: WriteConnectionSecretToReference specifies 3443 the namespace and name of a Secret to which any 3444 connection details for this managed resource should 3445 be written. Connection details frequently include 3446 the endpoint, username, and password required 3447 to connect to the managed resource. 3448 properties: 3449 name: 3450 description: Name of the secret. 3451 type: string 3452 namespace: 3453 description: Namespace of the secret. 3454 type: string 3455 required: 3456 - name 3457 type: object 3458 required: 3459 - configuration 3460 type: object 3461 type: object 3462 type: object 3463 status: 3464 description: PolicyDefinitionStatus is the status of PolicyDefinition 3465 properties: 3466 conditions: 3467 description: Conditions of the resource. 3468 items: 3469 description: A Condition that may apply to a resource. 3470 properties: 3471 lastTransitionTime: 3472 description: LastTransitionTime is the last time this 3473 condition transitioned from one status to another. 3474 format: date-time 3475 type: string 3476 message: 3477 description: A Message containing details about this 3478 condition's last transition from one status to another, 3479 if any. 3480 type: string 3481 reason: 3482 description: A Reason for this condition's last transition 3483 from one status to another. 3484 type: string 3485 status: 3486 description: Status of this condition; is it currently 3487 True, False, or Unknown? 3488 type: string 3489 type: 3490 description: Type of this condition. At most one of 3491 each condition type may apply to a resource at any 3492 point in time. 3493 type: string 3494 required: 3495 - lastTransitionTime 3496 - reason 3497 - status 3498 - type 3499 type: object 3500 type: array 3501 configMapRef: 3502 description: ConfigMapRef refer to a ConfigMap which contains 3503 OpenAPI V3 JSON schema of Component parameters. 3504 type: string 3505 latestRevision: 3506 description: LatestRevision of the component definition 3507 properties: 3508 name: 3509 type: string 3510 revision: 3511 format: int64 3512 type: integer 3513 revisionHash: 3514 description: RevisionHash record the hash value of the 3515 spec of ApplicationRevision object. 3516 type: string 3517 required: 3518 - name 3519 - revision 3520 type: object 3521 type: object 3522 type: object 3523 description: PolicyDefinitions records the snapshot of the PolicyDefinitions 3524 related with the created/modified Application 3525 type: object 3526 referredObjects: 3527 description: ReferredObjects records the referred objects used in 3528 the ref-object typed components 3529 items: 3530 description: ReferredObject the referred Kubernetes object 3531 type: object 3532 x-kubernetes-embedded-resource: true 3533 x-kubernetes-preserve-unknown-fields: true 3534 type: array 3535 x-kubernetes-preserve-unknown-fields: true 3536 scopeDefinitions: 3537 additionalProperties: 3538 description: A ScopeDefinition registers a kind of Kubernetes custom 3539 resource as a valid OAM scope kind by referencing its CustomResourceDefinition. 3540 The CRD is used to validate the schema of the scope when it is 3541 embedded in an OAM ApplicationConfiguration. 3542 properties: 3543 apiVersion: 3544 description: 'APIVersion defines the versioned schema of this 3545 representation of an object. Servers should convert recognized 3546 schemas to the latest internal value, and may reject unrecognized 3547 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 3548 type: string 3549 kind: 3550 description: 'Kind is a string value representing the REST resource 3551 this object represents. Servers may infer this from the endpoint 3552 the client submits requests to. Cannot be updated. In CamelCase. 3553 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 3554 type: string 3555 metadata: 3556 properties: 3557 annotations: 3558 additionalProperties: 3559 type: string 3560 type: object 3561 finalizers: 3562 items: 3563 type: string 3564 type: array 3565 labels: 3566 additionalProperties: 3567 type: string 3568 type: object 3569 name: 3570 type: string 3571 namespace: 3572 type: string 3573 type: object 3574 spec: 3575 description: A ScopeDefinitionSpec defines the desired state 3576 of a ScopeDefinition. 3577 properties: 3578 allowComponentOverlap: 3579 description: AllowComponentOverlap specifies whether an 3580 OAM component may exist in multiple instances of this 3581 kind of scope. 3582 type: boolean 3583 definitionRef: 3584 description: Reference to the CustomResourceDefinition that 3585 defines this scope kind. 3586 properties: 3587 name: 3588 description: Name of the referenced CustomResourceDefinition. 3589 type: string 3590 version: 3591 description: Version indicate which version should be 3592 used if CRD has multiple versions by default it will 3593 use the first one if not specified 3594 type: string 3595 required: 3596 - name 3597 type: object 3598 extension: 3599 description: Extension is used for extension needs by OAM 3600 platform builders 3601 type: object 3602 x-kubernetes-preserve-unknown-fields: true 3603 workloadRefsPath: 3604 description: WorkloadRefsPath indicates if/where a scope 3605 accepts workloadRef objects 3606 type: string 3607 required: 3608 - allowComponentOverlap 3609 - definitionRef 3610 type: object 3611 type: object 3612 description: ScopeDefinitions records the snapshot of the scopeDefinitions 3613 related with the created/modified Application 3614 type: object 3615 scopeGVK: 3616 additionalProperties: 3617 description: GroupVersionKind unambiguously identifies a kind. It 3618 doesn't anonymously include GroupVersion to avoid automatic coercion. It 3619 doesn't use a GroupVersion to avoid custom marshalling 3620 properties: 3621 group: 3622 type: string 3623 kind: 3624 type: string 3625 version: 3626 type: string 3627 required: 3628 - group 3629 - kind 3630 - version 3631 type: object 3632 description: ScopeGVK records the apiVersion to GVK mapping 3633 type: object 3634 traitDefinitions: 3635 additionalProperties: 3636 description: A TraitDefinition registers a kind of Kubernetes custom 3637 resource as a valid OAM trait kind by referencing its CustomResourceDefinition. 3638 The CRD is used to validate the schema of the trait when it is 3639 embedded in an OAM ApplicationConfiguration. 3640 properties: 3641 apiVersion: 3642 description: 'APIVersion defines the versioned schema of this 3643 representation of an object. Servers should convert recognized 3644 schemas to the latest internal value, and may reject unrecognized 3645 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 3646 type: string 3647 kind: 3648 description: 'Kind is a string value representing the REST resource 3649 this object represents. Servers may infer this from the endpoint 3650 the client submits requests to. Cannot be updated. In CamelCase. 3651 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 3652 type: string 3653 metadata: 3654 properties: 3655 annotations: 3656 additionalProperties: 3657 type: string 3658 type: object 3659 finalizers: 3660 items: 3661 type: string 3662 type: array 3663 labels: 3664 additionalProperties: 3665 type: string 3666 type: object 3667 name: 3668 type: string 3669 namespace: 3670 type: string 3671 type: object 3672 spec: 3673 description: A TraitDefinitionSpec defines the desired state 3674 of a TraitDefinition. 3675 properties: 3676 appliesToWorkloads: 3677 description: AppliesToWorkloads specifies the list of workload 3678 kinds this trait applies to. Workload kinds are specified 3679 in resource.group/version format, e.g. server.core.oam.dev/v1alpha2. 3680 Traits that omit this field apply to all workload kinds. 3681 items: 3682 type: string 3683 type: array 3684 conflictsWith: 3685 description: 'ConflictsWith specifies the list of traits(CRD 3686 name, Definition name, CRD group) which could not apply 3687 to the same workloads with this trait. Traits that omit 3688 this field can work with any other traits. Example rules: 3689 "service" # Trait definition name "services.k8s.io" # 3690 API resource/crd name "*.networking.k8s.io" # API group 3691 "labelSelector:foo=bar" # label selector labelSelector 3692 format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse' 3693 items: 3694 type: string 3695 type: array 3696 controlPlaneOnly: 3697 description: ControlPlaneOnly defines which cluster is dispatched 3698 to 3699 type: boolean 3700 definitionRef: 3701 description: Reference to the CustomResourceDefinition that 3702 defines this trait kind. 3703 properties: 3704 name: 3705 description: Name of the referenced CustomResourceDefinition. 3706 type: string 3707 version: 3708 description: Version indicate which version should be 3709 used if CRD has multiple versions by default it will 3710 use the first one if not specified 3711 type: string 3712 required: 3713 - name 3714 type: object 3715 extension: 3716 description: Extension is used for extension needs by OAM 3717 platform builders 3718 type: object 3719 x-kubernetes-preserve-unknown-fields: true 3720 manageWorkload: 3721 description: ManageWorkload defines the trait would be responsible 3722 for creating the workload 3723 type: boolean 3724 podDisruptive: 3725 description: PodDisruptive specifies whether using the trait 3726 will cause the pod to restart or not. 3727 type: boolean 3728 revisionEnabled: 3729 description: Revision indicates whether a trait is aware 3730 of component revision 3731 type: boolean 3732 schematic: 3733 description: Schematic defines the data format and template 3734 of the encapsulation of the trait. Only CUE and Kube schematic 3735 are supported for now. 3736 properties: 3737 cue: 3738 description: CUE defines the encapsulation in CUE format 3739 properties: 3740 template: 3741 description: Template defines the abstraction template 3742 data of the capability, it will replace the old 3743 CUE template in extension field. Template is a 3744 required field if CUE is defined in Capability 3745 Definition. 3746 type: string 3747 required: 3748 - template 3749 type: object 3750 helm: 3751 description: A Helm represents resources used by a Helm 3752 module 3753 properties: 3754 release: 3755 description: Release records a Helm release used 3756 by a Helm module workload. 3757 type: object 3758 x-kubernetes-preserve-unknown-fields: true 3759 repository: 3760 description: HelmRelease records a Helm repository 3761 used by a Helm module workload. 3762 type: object 3763 x-kubernetes-preserve-unknown-fields: true 3764 required: 3765 - release 3766 - repository 3767 type: object 3768 kube: 3769 description: Kube defines the encapsulation in raw Kubernetes 3770 resource format 3771 properties: 3772 parameters: 3773 description: Parameters defines configurable parameters 3774 items: 3775 description: A KubeParameter defines a configurable 3776 parameter of a component. 3777 properties: 3778 description: 3779 description: Description of this parameter. 3780 type: string 3781 fieldPaths: 3782 description: "FieldPaths specifies an array 3783 of fields within this workload that will 3784 be overwritten by the value of this parameter. 3785 \tAll fields must be of the same type. Fields 3786 are specified as JSON field paths without 3787 a leading dot, for example 'spec.replicas'." 3788 items: 3789 type: string 3790 type: array 3791 name: 3792 description: Name of this parameter 3793 type: string 3794 required: 3795 default: false 3796 description: Required specifies whether or 3797 not a value for this parameter must be supplied 3798 when authoring an Application. 3799 type: boolean 3800 type: 3801 description: 'ValueType indicates the type 3802 of the parameter value, and only supports 3803 basic data types: string, number, boolean.' 3804 enum: 3805 - string 3806 - number 3807 - boolean 3808 type: string 3809 required: 3810 - fieldPaths 3811 - name 3812 - type 3813 type: object 3814 type: array 3815 template: 3816 description: Template defines the raw Kubernetes 3817 resource 3818 type: object 3819 x-kubernetes-preserve-unknown-fields: true 3820 required: 3821 - template 3822 type: object 3823 terraform: 3824 description: Terraform is the struct to describe cloud 3825 resources managed by Hashicorp Terraform 3826 properties: 3827 configuration: 3828 description: Configuration is Terraform Configuration 3829 type: string 3830 customRegion: 3831 description: Region is cloud provider's region. 3832 It will override the region in the region field 3833 of ProviderReference 3834 type: string 3835 deleteResource: 3836 default: true 3837 description: DeleteResource will determine whether 3838 provisioned cloud resources will be deleted when 3839 CR is deleted 3840 type: boolean 3841 path: 3842 description: Path is the sub-directory of remote 3843 git repository. It's valid when remote is set 3844 type: string 3845 providerRef: 3846 description: ProviderReference specifies the reference 3847 to Provider 3848 properties: 3849 name: 3850 description: Name of the referenced object. 3851 type: string 3852 namespace: 3853 default: default 3854 description: Namespace of the referenced object. 3855 type: string 3856 required: 3857 - name 3858 type: object 3859 type: 3860 default: hcl 3861 description: Type specifies which Terraform configuration 3862 it is, HCL or JSON syntax 3863 enum: 3864 - hcl 3865 - json 3866 - remote 3867 type: string 3868 writeConnectionSecretToRef: 3869 description: WriteConnectionSecretToReference specifies 3870 the namespace and name of a Secret to which any 3871 connection details for this managed resource should 3872 be written. Connection details frequently include 3873 the endpoint, username, and password required 3874 to connect to the managed resource. 3875 properties: 3876 name: 3877 description: Name of the secret. 3878 type: string 3879 namespace: 3880 description: Namespace of the secret. 3881 type: string 3882 required: 3883 - name 3884 type: object 3885 required: 3886 - configuration 3887 type: object 3888 type: object 3889 stage: 3890 description: Stage defines the stage information to which 3891 this trait resource processing belongs. Currently, PreDispatch 3892 and PostDispatch are provided, which are used to control 3893 resource pre-process and post-process respectively. 3894 type: string 3895 status: 3896 description: Status defines the custom health policy and 3897 status message for trait 3898 properties: 3899 customStatus: 3900 description: CustomStatus defines the custom status 3901 message that could display to user 3902 type: string 3903 healthPolicy: 3904 description: HealthPolicy defines the health check policy 3905 for the abstraction 3906 type: string 3907 type: object 3908 workloadRefPath: 3909 description: WorkloadRefPath indicates where/if a trait 3910 accepts a workloadRef object 3911 type: string 3912 type: object 3913 status: 3914 description: TraitDefinitionStatus is the status of TraitDefinition 3915 properties: 3916 conditions: 3917 description: Conditions of the resource. 3918 items: 3919 description: A Condition that may apply to a resource. 3920 properties: 3921 lastTransitionTime: 3922 description: LastTransitionTime is the last time this 3923 condition transitioned from one status to another. 3924 format: date-time 3925 type: string 3926 message: 3927 description: A Message containing details about this 3928 condition's last transition from one status to another, 3929 if any. 3930 type: string 3931 reason: 3932 description: A Reason for this condition's last transition 3933 from one status to another. 3934 type: string 3935 status: 3936 description: Status of this condition; is it currently 3937 True, False, or Unknown? 3938 type: string 3939 type: 3940 description: Type of this condition. At most one of 3941 each condition type may apply to a resource at any 3942 point in time. 3943 type: string 3944 required: 3945 - lastTransitionTime 3946 - reason 3947 - status 3948 - type 3949 type: object 3950 type: array 3951 configMapRef: 3952 description: ConfigMapRef refer to a ConfigMap which contains 3953 OpenAPI V3 JSON schema of Component parameters. 3954 type: string 3955 latestRevision: 3956 description: LatestRevision of the component definition 3957 properties: 3958 name: 3959 type: string 3960 revision: 3961 format: int64 3962 type: integer 3963 revisionHash: 3964 description: RevisionHash record the hash value of the 3965 spec of ApplicationRevision object. 3966 type: string 3967 required: 3968 - name 3969 - revision 3970 type: object 3971 type: object 3972 type: object 3973 description: TraitDefinitions records the snapshot of the traitDefinitions 3974 related with the created/modified Application 3975 type: object 3976 workflow: 3977 description: Workflow records the external workflow 3978 properties: 3979 apiVersion: 3980 description: 'APIVersion defines the versioned schema of this 3981 representation of an object. Servers should convert recognized 3982 schemas to the latest internal value, and may reject unrecognized 3983 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 3984 type: string 3985 kind: 3986 description: 'Kind is a string value representing the REST resource 3987 this object represents. Servers may infer this from the endpoint 3988 the client submits requests to. Cannot be updated. In CamelCase. 3989 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 3990 type: string 3991 metadata: 3992 properties: 3993 annotations: 3994 additionalProperties: 3995 type: string 3996 type: object 3997 finalizers: 3998 items: 3999 type: string 4000 type: array 4001 labels: 4002 additionalProperties: 4003 type: string 4004 type: object 4005 name: 4006 type: string 4007 namespace: 4008 type: string 4009 type: object 4010 mode: 4011 description: WorkflowExecuteMode defines the mode of workflow 4012 execution 4013 properties: 4014 steps: 4015 description: Steps is the mode of workflow steps execution 4016 type: string 4017 subSteps: 4018 description: SubSteps is the mode of workflow sub steps execution 4019 type: string 4020 type: object 4021 steps: 4022 items: 4023 description: WorkflowStep defines how to execute a workflow 4024 step. 4025 properties: 4026 dependsOn: 4027 description: DependsOn is the dependency of the step 4028 items: 4029 type: string 4030 type: array 4031 if: 4032 description: If is the if condition of the step 4033 type: string 4034 inputs: 4035 description: Inputs is the inputs of the step 4036 items: 4037 properties: 4038 from: 4039 type: string 4040 parameterKey: 4041 type: string 4042 required: 4043 - from 4044 - parameterKey 4045 type: object 4046 type: array 4047 meta: 4048 description: Meta is the meta data of the workflow step. 4049 properties: 4050 alias: 4051 type: string 4052 type: object 4053 name: 4054 description: Name is the unique name of the workflow step. 4055 type: string 4056 outputs: 4057 description: Outputs is the outputs of the step 4058 items: 4059 properties: 4060 name: 4061 type: string 4062 valueFrom: 4063 type: string 4064 required: 4065 - name 4066 - valueFrom 4067 type: object 4068 type: array 4069 properties: 4070 description: Properties is the properties of the step 4071 type: object 4072 x-kubernetes-preserve-unknown-fields: true 4073 subSteps: 4074 items: 4075 description: WorkflowStepBase defines the workflow step 4076 base 4077 properties: 4078 dependsOn: 4079 description: DependsOn is the dependency of the step 4080 items: 4081 type: string 4082 type: array 4083 if: 4084 description: If is the if condition of the step 4085 type: string 4086 inputs: 4087 description: Inputs is the inputs of the step 4088 items: 4089 properties: 4090 from: 4091 type: string 4092 parameterKey: 4093 type: string 4094 required: 4095 - from 4096 - parameterKey 4097 type: object 4098 type: array 4099 meta: 4100 description: Meta is the meta data of the workflow 4101 step. 4102 properties: 4103 alias: 4104 type: string 4105 type: object 4106 name: 4107 description: Name is the unique name of the workflow 4108 step. 4109 type: string 4110 outputs: 4111 description: Outputs is the outputs of the step 4112 items: 4113 properties: 4114 name: 4115 type: string 4116 valueFrom: 4117 type: string 4118 required: 4119 - name 4120 - valueFrom 4121 type: object 4122 type: array 4123 properties: 4124 description: Properties is the properties of the step 4125 type: object 4126 x-kubernetes-preserve-unknown-fields: true 4127 timeout: 4128 description: Timeout is the timeout of the step 4129 type: string 4130 type: 4131 description: Type is the type of the workflow step. 4132 type: string 4133 required: 4134 - name 4135 - type 4136 type: object 4137 type: array 4138 timeout: 4139 description: Timeout is the timeout of the step 4140 type: string 4141 type: 4142 description: Type is the type of the workflow step. 4143 type: string 4144 required: 4145 - name 4146 - type 4147 type: object 4148 type: array 4149 type: object 4150 workflowStepDefinitions: 4151 additionalProperties: 4152 description: WorkflowStepDefinition is the Schema for the workflowstepdefinitions 4153 API 4154 properties: 4155 apiVersion: 4156 description: 'APIVersion defines the versioned schema of this 4157 representation of an object. Servers should convert recognized 4158 schemas to the latest internal value, and may reject unrecognized 4159 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 4160 type: string 4161 kind: 4162 description: 'Kind is a string value representing the REST resource 4163 this object represents. Servers may infer this from the endpoint 4164 the client submits requests to. Cannot be updated. In CamelCase. 4165 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 4166 type: string 4167 metadata: 4168 properties: 4169 annotations: 4170 additionalProperties: 4171 type: string 4172 type: object 4173 finalizers: 4174 items: 4175 type: string 4176 type: array 4177 labels: 4178 additionalProperties: 4179 type: string 4180 type: object 4181 name: 4182 type: string 4183 namespace: 4184 type: string 4185 type: object 4186 spec: 4187 description: WorkflowStepDefinitionSpec defines the desired 4188 state of WorkflowStepDefinition 4189 properties: 4190 definitionRef: 4191 description: Reference to the CustomResourceDefinition that 4192 defines this trait kind. 4193 properties: 4194 name: 4195 description: Name of the referenced CustomResourceDefinition. 4196 type: string 4197 version: 4198 description: Version indicate which version should be 4199 used if CRD has multiple versions by default it will 4200 use the first one if not specified 4201 type: string 4202 required: 4203 - name 4204 type: object 4205 schematic: 4206 description: Schematic defines the data format and template 4207 of the encapsulation of the workflow step definition. 4208 Only CUE schematic is supported for now. 4209 properties: 4210 cue: 4211 description: CUE defines the encapsulation in CUE format 4212 properties: 4213 template: 4214 description: Template defines the abstraction template 4215 data of the capability, it will replace the old 4216 CUE template in extension field. Template is a 4217 required field if CUE is defined in Capability 4218 Definition. 4219 type: string 4220 required: 4221 - template 4222 type: object 4223 helm: 4224 description: A Helm represents resources used by a Helm 4225 module 4226 properties: 4227 release: 4228 description: Release records a Helm release used 4229 by a Helm module workload. 4230 type: object 4231 x-kubernetes-preserve-unknown-fields: true 4232 repository: 4233 description: HelmRelease records a Helm repository 4234 used by a Helm module workload. 4235 type: object 4236 x-kubernetes-preserve-unknown-fields: true 4237 required: 4238 - release 4239 - repository 4240 type: object 4241 kube: 4242 description: Kube defines the encapsulation in raw Kubernetes 4243 resource format 4244 properties: 4245 parameters: 4246 description: Parameters defines configurable parameters 4247 items: 4248 description: A KubeParameter defines a configurable 4249 parameter of a component. 4250 properties: 4251 description: 4252 description: Description of this parameter. 4253 type: string 4254 fieldPaths: 4255 description: "FieldPaths specifies an array 4256 of fields within this workload that will 4257 be overwritten by the value of this parameter. 4258 \tAll fields must be of the same type. Fields 4259 are specified as JSON field paths without 4260 a leading dot, for example 'spec.replicas'." 4261 items: 4262 type: string 4263 type: array 4264 name: 4265 description: Name of this parameter 4266 type: string 4267 required: 4268 default: false 4269 description: Required specifies whether or 4270 not a value for this parameter must be supplied 4271 when authoring an Application. 4272 type: boolean 4273 type: 4274 description: 'ValueType indicates the type 4275 of the parameter value, and only supports 4276 basic data types: string, number, boolean.' 4277 enum: 4278 - string 4279 - number 4280 - boolean 4281 type: string 4282 required: 4283 - fieldPaths 4284 - name 4285 - type 4286 type: object 4287 type: array 4288 template: 4289 description: Template defines the raw Kubernetes 4290 resource 4291 type: object 4292 x-kubernetes-preserve-unknown-fields: true 4293 required: 4294 - template 4295 type: object 4296 terraform: 4297 description: Terraform is the struct to describe cloud 4298 resources managed by Hashicorp Terraform 4299 properties: 4300 configuration: 4301 description: Configuration is Terraform Configuration 4302 type: string 4303 customRegion: 4304 description: Region is cloud provider's region. 4305 It will override the region in the region field 4306 of ProviderReference 4307 type: string 4308 deleteResource: 4309 default: true 4310 description: DeleteResource will determine whether 4311 provisioned cloud resources will be deleted when 4312 CR is deleted 4313 type: boolean 4314 path: 4315 description: Path is the sub-directory of remote 4316 git repository. It's valid when remote is set 4317 type: string 4318 providerRef: 4319 description: ProviderReference specifies the reference 4320 to Provider 4321 properties: 4322 name: 4323 description: Name of the referenced object. 4324 type: string 4325 namespace: 4326 default: default 4327 description: Namespace of the referenced object. 4328 type: string 4329 required: 4330 - name 4331 type: object 4332 type: 4333 default: hcl 4334 description: Type specifies which Terraform configuration 4335 it is, HCL or JSON syntax 4336 enum: 4337 - hcl 4338 - json 4339 - remote 4340 type: string 4341 writeConnectionSecretToRef: 4342 description: WriteConnectionSecretToReference specifies 4343 the namespace and name of a Secret to which any 4344 connection details for this managed resource should 4345 be written. Connection details frequently include 4346 the endpoint, username, and password required 4347 to connect to the managed resource. 4348 properties: 4349 name: 4350 description: Name of the secret. 4351 type: string 4352 namespace: 4353 description: Namespace of the secret. 4354 type: string 4355 required: 4356 - name 4357 type: object 4358 required: 4359 - configuration 4360 type: object 4361 type: object 4362 type: object 4363 status: 4364 description: WorkflowStepDefinitionStatus is the status of WorkflowStepDefinition 4365 properties: 4366 conditions: 4367 description: Conditions of the resource. 4368 items: 4369 description: A Condition that may apply to a resource. 4370 properties: 4371 lastTransitionTime: 4372 description: LastTransitionTime is the last time this 4373 condition transitioned from one status to another. 4374 format: date-time 4375 type: string 4376 message: 4377 description: A Message containing details about this 4378 condition's last transition from one status to another, 4379 if any. 4380 type: string 4381 reason: 4382 description: A Reason for this condition's last transition 4383 from one status to another. 4384 type: string 4385 status: 4386 description: Status of this condition; is it currently 4387 True, False, or Unknown? 4388 type: string 4389 type: 4390 description: Type of this condition. At most one of 4391 each condition type may apply to a resource at any 4392 point in time. 4393 type: string 4394 required: 4395 - lastTransitionTime 4396 - reason 4397 - status 4398 - type 4399 type: object 4400 type: array 4401 configMapRef: 4402 description: ConfigMapRef refer to a ConfigMap which contains 4403 OpenAPI V3 JSON schema of Component parameters. 4404 type: string 4405 latestRevision: 4406 description: LatestRevision of the component definition 4407 properties: 4408 name: 4409 type: string 4410 revision: 4411 format: int64 4412 type: integer 4413 revisionHash: 4414 description: RevisionHash record the hash value of the 4415 spec of ApplicationRevision object. 4416 type: string 4417 required: 4418 - name 4419 - revision 4420 type: object 4421 type: object 4422 type: object 4423 description: WorkflowStepDefinitions records the snapshot of the WorkflowStepDefinitions 4424 related with the created/modified Application 4425 type: object 4426 workloadDefinitions: 4427 additionalProperties: 4428 description: A WorkloadDefinition registers a kind of Kubernetes 4429 custom resource as a valid OAM workload kind by referencing its 4430 CustomResourceDefinition. The CRD is used to validate the schema 4431 of the workload when it is embedded in an OAM Component. 4432 properties: 4433 apiVersion: 4434 description: 'APIVersion defines the versioned schema of this 4435 representation of an object. Servers should convert recognized 4436 schemas to the latest internal value, and may reject unrecognized 4437 values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 4438 type: string 4439 kind: 4440 description: 'Kind is a string value representing the REST resource 4441 this object represents. Servers may infer this from the endpoint 4442 the client submits requests to. Cannot be updated. In CamelCase. 4443 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 4444 type: string 4445 metadata: 4446 properties: 4447 annotations: 4448 additionalProperties: 4449 type: string 4450 type: object 4451 finalizers: 4452 items: 4453 type: string 4454 type: array 4455 labels: 4456 additionalProperties: 4457 type: string 4458 type: object 4459 name: 4460 type: string 4461 namespace: 4462 type: string 4463 type: object 4464 spec: 4465 description: A WorkloadDefinitionSpec defines the desired state 4466 of a WorkloadDefinition. 4467 properties: 4468 childResourceKinds: 4469 description: ChildResourceKinds are the list of GVK of the 4470 child resources this workload generates 4471 items: 4472 description: A ChildResourceKind defines a child Kubernetes 4473 resource kind with a selector 4474 properties: 4475 apiVersion: 4476 description: APIVersion of the child resource 4477 type: string 4478 kind: 4479 description: Kind of the child resource 4480 type: string 4481 selector: 4482 additionalProperties: 4483 type: string 4484 description: Selector to select the child resources 4485 that the workload wants to expose to traits 4486 type: object 4487 required: 4488 - apiVersion 4489 - kind 4490 type: object 4491 type: array 4492 definitionRef: 4493 description: Reference to the CustomResourceDefinition that 4494 defines this workload kind. 4495 properties: 4496 name: 4497 description: Name of the referenced CustomResourceDefinition. 4498 type: string 4499 version: 4500 description: Version indicate which version should be 4501 used if CRD has multiple versions by default it will 4502 use the first one if not specified 4503 type: string 4504 required: 4505 - name 4506 type: object 4507 extension: 4508 description: Extension is used for extension needs by OAM 4509 platform builders 4510 type: object 4511 x-kubernetes-preserve-unknown-fields: true 4512 podSpecPath: 4513 description: PodSpecPath indicates where/if this workload 4514 has K8s podSpec field if one workload has podSpec, trait 4515 can do lot's of assumption such as port, env, volume fields. 4516 type: string 4517 revisionLabel: 4518 description: RevisionLabel indicates which label for underlying 4519 resources(e.g. pods) of this workload can be used by trait 4520 to create resource selectors(e.g. label selector for pods). 4521 type: string 4522 schematic: 4523 description: Schematic defines the data format and template 4524 of the encapsulation of the workload 4525 properties: 4526 cue: 4527 description: CUE defines the encapsulation in CUE format 4528 properties: 4529 template: 4530 description: Template defines the abstraction template 4531 data of the capability, it will replace the old 4532 CUE template in extension field. Template is a 4533 required field if CUE is defined in Capability 4534 Definition. 4535 type: string 4536 required: 4537 - template 4538 type: object 4539 helm: 4540 description: A Helm represents resources used by a Helm 4541 module 4542 properties: 4543 release: 4544 description: Release records a Helm release used 4545 by a Helm module workload. 4546 type: object 4547 x-kubernetes-preserve-unknown-fields: true 4548 repository: 4549 description: HelmRelease records a Helm repository 4550 used by a Helm module workload. 4551 type: object 4552 x-kubernetes-preserve-unknown-fields: true 4553 required: 4554 - release 4555 - repository 4556 type: object 4557 kube: 4558 description: Kube defines the encapsulation in raw Kubernetes 4559 resource format 4560 properties: 4561 parameters: 4562 description: Parameters defines configurable parameters 4563 items: 4564 description: A KubeParameter defines a configurable 4565 parameter of a component. 4566 properties: 4567 description: 4568 description: Description of this parameter. 4569 type: string 4570 fieldPaths: 4571 description: "FieldPaths specifies an array 4572 of fields within this workload that will 4573 be overwritten by the value of this parameter. 4574 \tAll fields must be of the same type. Fields 4575 are specified as JSON field paths without 4576 a leading dot, for example 'spec.replicas'." 4577 items: 4578 type: string 4579 type: array 4580 name: 4581 description: Name of this parameter 4582 type: string 4583 required: 4584 default: false 4585 description: Required specifies whether or 4586 not a value for this parameter must be supplied 4587 when authoring an Application. 4588 type: boolean 4589 type: 4590 description: 'ValueType indicates the type 4591 of the parameter value, and only supports 4592 basic data types: string, number, boolean.' 4593 enum: 4594 - string 4595 - number 4596 - boolean 4597 type: string 4598 required: 4599 - fieldPaths 4600 - name 4601 - type 4602 type: object 4603 type: array 4604 template: 4605 description: Template defines the raw Kubernetes 4606 resource 4607 type: object 4608 x-kubernetes-preserve-unknown-fields: true 4609 required: 4610 - template 4611 type: object 4612 terraform: 4613 description: Terraform is the struct to describe cloud 4614 resources managed by Hashicorp Terraform 4615 properties: 4616 configuration: 4617 description: Configuration is Terraform Configuration 4618 type: string 4619 customRegion: 4620 description: Region is cloud provider's region. 4621 It will override the region in the region field 4622 of ProviderReference 4623 type: string 4624 deleteResource: 4625 default: true 4626 description: DeleteResource will determine whether 4627 provisioned cloud resources will be deleted when 4628 CR is deleted 4629 type: boolean 4630 path: 4631 description: Path is the sub-directory of remote 4632 git repository. It's valid when remote is set 4633 type: string 4634 providerRef: 4635 description: ProviderReference specifies the reference 4636 to Provider 4637 properties: 4638 name: 4639 description: Name of the referenced object. 4640 type: string 4641 namespace: 4642 default: default 4643 description: Namespace of the referenced object. 4644 type: string 4645 required: 4646 - name 4647 type: object 4648 type: 4649 default: hcl 4650 description: Type specifies which Terraform configuration 4651 it is, HCL or JSON syntax 4652 enum: 4653 - hcl 4654 - json 4655 - remote 4656 type: string 4657 writeConnectionSecretToRef: 4658 description: WriteConnectionSecretToReference specifies 4659 the namespace and name of a Secret to which any 4660 connection details for this managed resource should 4661 be written. Connection details frequently include 4662 the endpoint, username, and password required 4663 to connect to the managed resource. 4664 properties: 4665 name: 4666 description: Name of the secret. 4667 type: string 4668 namespace: 4669 description: Namespace of the secret. 4670 type: string 4671 required: 4672 - name 4673 type: object 4674 required: 4675 - configuration 4676 type: object 4677 type: object 4678 status: 4679 description: Status defines the custom health policy and 4680 status message for workload 4681 properties: 4682 customStatus: 4683 description: CustomStatus defines the custom status 4684 message that could display to user 4685 type: string 4686 healthPolicy: 4687 description: HealthPolicy defines the health check policy 4688 for the abstraction 4689 type: string 4690 type: object 4691 required: 4692 - definitionRef 4693 type: object 4694 status: 4695 description: WorkloadDefinitionStatus is the status of WorkloadDefinition 4696 properties: 4697 conditions: 4698 description: Conditions of the resource. 4699 items: 4700 description: A Condition that may apply to a resource. 4701 properties: 4702 lastTransitionTime: 4703 description: LastTransitionTime is the last time this 4704 condition transitioned from one status to another. 4705 format: date-time 4706 type: string 4707 message: 4708 description: A Message containing details about this 4709 condition's last transition from one status to another, 4710 if any. 4711 type: string 4712 reason: 4713 description: A Reason for this condition's last transition 4714 from one status to another. 4715 type: string 4716 status: 4717 description: Status of this condition; is it currently 4718 True, False, or Unknown? 4719 type: string 4720 type: 4721 description: Type of this condition. At most one of 4722 each condition type may apply to a resource at any 4723 point in time. 4724 type: string 4725 required: 4726 - lastTransitionTime 4727 - reason 4728 - status 4729 - type 4730 type: object 4731 type: array 4732 type: object 4733 type: object 4734 description: WorkloadDefinitions records the snapshot of the workloadDefinitions 4735 related with the created/modified Application 4736 type: object 4737 required: 4738 - application 4739 type: object 4740 status: 4741 description: ApplicationRevisionStatus is the status of ApplicationRevision 4742 properties: 4743 succeeded: 4744 description: Succeeded records if the workflow finished running with 4745 success 4746 type: boolean 4747 workflow: 4748 description: Workflow the running status of the workflow 4749 properties: 4750 appRevision: 4751 type: string 4752 contextBackend: 4753 description: 'ObjectReference contains enough information to let 4754 you inspect or modify the referred object. --- New uses of this 4755 type are discouraged because of difficulty describing its usage 4756 when embedded in APIs. 1. Ignored fields. It includes many 4757 fields which are not generally honored. For instance, ResourceVersion 4758 and FieldPath are both very rarely valid in actual usage. 2. 4759 Invalid usage help. It is impossible to add specific help for 4760 individual usage. In most embedded usages, there are particular restrictions 4761 like, "must refer only to types A and B" or "UID not honored" 4762 or "name must be restricted". Those cannot be well described 4763 when embedded. 3. Inconsistent validation. Because the usages 4764 are different, the validation rules are different by usage, 4765 which makes it hard for users to predict what will happen. 4. 4766 The fields are both imprecise and overly precise. Kind is not 4767 a precise mapping to a URL. This can produce ambiguity during 4768 interpretation and require a REST mapping. In most cases, the 4769 dependency is on the group,resource tuple and the version 4770 of the actual struct is irrelevant. 5. We cannot easily change 4771 it. Because this type is embedded in many locations, updates 4772 to this type will affect numerous schemas. Don''t make 4773 new APIs embed an underspecified API type they do not control. 4774 Instead of using this type, create a locally provided and used 4775 type that is well-focused on your reference. For example, ServiceReferences 4776 for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 4777 .' 4778 properties: 4779 apiVersion: 4780 description: API version of the referent. 4781 type: string 4782 fieldPath: 4783 description: 'If referring to a piece of an object instead 4784 of an entire object, this string should contain a valid 4785 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 4786 For example, if the object reference is to a container within 4787 a pod, this would take on a value like: "spec.containers{name}" 4788 (where "name" refers to the name of the container that triggered 4789 the event) or if no container name is specified "spec.containers[2]" 4790 (container with index 2 in this pod). This syntax is chosen 4791 only to have some well-defined way of referencing a part 4792 of an object. TODO: this design is not final and this field 4793 is subject to change in the future.' 4794 type: string 4795 kind: 4796 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 4797 type: string 4798 name: 4799 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 4800 type: string 4801 namespace: 4802 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 4803 type: string 4804 resourceVersion: 4805 description: 'Specific resourceVersion to which this reference 4806 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 4807 type: string 4808 uid: 4809 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 4810 type: string 4811 type: object 4812 endTime: 4813 format: date-time 4814 type: string 4815 finished: 4816 type: boolean 4817 message: 4818 type: string 4819 mode: 4820 type: string 4821 startTime: 4822 format: date-time 4823 type: string 4824 status: 4825 description: WorkflowRunPhase is a label for the condition of 4826 a WorkflowRun at the current time 4827 type: string 4828 steps: 4829 items: 4830 description: WorkflowStepStatus record the status of a workflow 4831 step, include step status and subStep status 4832 properties: 4833 firstExecuteTime: 4834 description: FirstExecuteTime is the first time this step 4835 execution. 4836 format: date-time 4837 type: string 4838 id: 4839 type: string 4840 lastExecuteTime: 4841 description: LastExecuteTime is the last time this step 4842 execution. 4843 format: date-time 4844 type: string 4845 message: 4846 description: A human readable message indicating details 4847 about why the workflowStep is in this state. 4848 type: string 4849 name: 4850 type: string 4851 phase: 4852 description: WorkflowStepPhase describes the phase of a 4853 workflow step. 4854 type: string 4855 reason: 4856 description: A brief CamelCase message indicating details 4857 about why the workflowStep is in this state. 4858 type: string 4859 subSteps: 4860 items: 4861 description: StepStatus record the base status of workflow 4862 step, which could be workflow step or subStep 4863 properties: 4864 firstExecuteTime: 4865 description: FirstExecuteTime is the first time this 4866 step execution. 4867 format: date-time 4868 type: string 4869 id: 4870 type: string 4871 lastExecuteTime: 4872 description: LastExecuteTime is the last time this 4873 step execution. 4874 format: date-time 4875 type: string 4876 message: 4877 description: A human readable message indicating details 4878 about why the workflowStep is in this state. 4879 type: string 4880 name: 4881 type: string 4882 phase: 4883 description: WorkflowStepPhase describes the phase 4884 of a workflow step. 4885 type: string 4886 reason: 4887 description: A brief CamelCase message indicating 4888 details about why the workflowStep is in this state. 4889 type: string 4890 type: 4891 type: string 4892 required: 4893 - id 4894 type: object 4895 type: array 4896 type: 4897 type: string 4898 required: 4899 - id 4900 type: object 4901 type: array 4902 suspend: 4903 type: boolean 4904 suspendState: 4905 type: string 4906 terminated: 4907 type: boolean 4908 required: 4909 - finished 4910 - mode 4911 - suspend 4912 - terminated 4913 type: object 4914 required: 4915 - succeeded 4916 type: object 4917 type: object 4918 served: true 4919 storage: true 4920 subresources: 4921 status: {} 4922 status: 4923 acceptedNames: 4924 kind: "" 4925 plural: "" 4926 conditions: [] 4927 storedVersions: []