github.com/oam-dev/kubevela@v1.9.11/charts/vela-core/crds/core.oam.dev_applications.yaml (about) 1 apiVersion: apiextensions.k8s.io/v1 2 kind: CustomResourceDefinition 3 metadata: 4 annotations: 5 cert-manager.io/inject-ca-from: vela-system/kubevela-vela-core-root-cert 6 controller-gen.kubebuilder.io/version: v0.11.4 7 name: applications.core.oam.dev 8 spec: 9 group: core.oam.dev 10 names: 11 categories: 12 - oam 13 kind: Application 14 listKind: ApplicationList 15 plural: applications 16 shortNames: 17 - app 18 - velaapp 19 singular: application 20 scope: Namespaced 21 versions: 22 - additionalPrinterColumns: 23 - jsonPath: .spec.components[*].name 24 name: COMPONENT 25 type: string 26 - jsonPath: .spec.components[*].type 27 name: TYPE 28 type: string 29 - jsonPath: .status.status 30 name: PHASE 31 type: string 32 - jsonPath: .status.services[*].healthy 33 name: HEALTHY 34 type: boolean 35 - jsonPath: .status.services[*].message 36 name: STATUS 37 type: string 38 - jsonPath: .metadata.creationTimestamp 39 name: AGE 40 type: date 41 name: v1beta1 42 schema: 43 openAPIV3Schema: 44 description: Application is the Schema for the applications API 45 properties: 46 apiVersion: 47 description: 'APIVersion defines the versioned schema of this representation 48 of an object. Servers should convert recognized schemas to the latest 49 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 50 type: string 51 kind: 52 description: 'Kind is a string value representing the REST resource this 53 object represents. Servers may infer this from the endpoint the client 54 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 55 type: string 56 metadata: 57 type: object 58 spec: 59 description: ApplicationSpec is the spec of Application 60 properties: 61 components: 62 items: 63 description: ApplicationComponent describe the component of application 64 properties: 65 dependsOn: 66 items: 67 type: string 68 type: array 69 externalRevision: 70 description: ExternalRevision specified the component revisionName 71 type: string 72 inputs: 73 description: StepInputs defines variable input of WorkflowStep 74 items: 75 description: InputItem defines an input variable of WorkflowStep 76 properties: 77 from: 78 type: string 79 parameterKey: 80 type: string 81 required: 82 - from 83 type: object 84 type: array 85 name: 86 type: string 87 outputs: 88 description: StepOutputs defines output variable of WorkflowStep 89 items: 90 description: OutputItem defines an output variable of WorkflowStep 91 properties: 92 name: 93 type: string 94 valueFrom: 95 type: string 96 required: 97 - name 98 - valueFrom 99 type: object 100 type: array 101 properties: 102 type: object 103 x-kubernetes-preserve-unknown-fields: true 104 scopes: 105 additionalProperties: 106 type: string 107 description: scopes in ApplicationComponent defines the component-level 108 scopes the format is <scope-type:scope-instance-name> pairs, 109 the key represents type of `ScopeDefinition` while the value 110 represent the name of scope instance. 111 type: object 112 x-kubernetes-preserve-unknown-fields: true 113 traits: 114 description: Traits define the trait of one component, the type 115 must be array to keep the order. 116 items: 117 description: ApplicationTrait defines the trait of application 118 properties: 119 properties: 120 type: object 121 x-kubernetes-preserve-unknown-fields: true 122 type: 123 type: string 124 required: 125 - type 126 type: object 127 type: array 128 type: 129 type: string 130 required: 131 - name 132 - type 133 type: object 134 type: array 135 policies: 136 description: Policies defines the global policies for all components 137 in the app, e.g. security, metrics, gitops, multi-cluster placement 138 rules, etc. Policies are applied after components are rendered and 139 before workflow steps are executed. 140 items: 141 description: AppPolicy defines a global policy for all components 142 in the app. 143 properties: 144 name: 145 description: Name is the unique name of the policy. 146 type: string 147 properties: 148 type: object 149 x-kubernetes-preserve-unknown-fields: true 150 type: 151 description: Type is the type of the policy 152 type: string 153 required: 154 - type 155 type: object 156 type: array 157 workflow: 158 description: 'Workflow defines how to customize the control logic. 159 If workflow is specified, Vela won''t apply any resource, but provide 160 rendered output in AppRevision. Workflow steps are executed in array 161 order, and each step: - will have a context in annotation. - should 162 mark "finish" phase in status.conditions.' 163 properties: 164 mode: 165 description: WorkflowExecuteMode defines the mode of workflow 166 execution 167 properties: 168 steps: 169 description: Steps is the mode of workflow steps execution 170 type: string 171 subSteps: 172 description: SubSteps is the mode of workflow sub steps execution 173 type: string 174 type: object 175 ref: 176 type: string 177 steps: 178 items: 179 description: WorkflowStep defines how to execute a workflow 180 step. 181 properties: 182 dependsOn: 183 description: DependsOn is the dependency of the step 184 items: 185 type: string 186 type: array 187 if: 188 description: If is the if condition of the step 189 type: string 190 inputs: 191 description: Inputs is the inputs of the step 192 items: 193 description: InputItem defines an input variable of WorkflowStep 194 properties: 195 from: 196 type: string 197 parameterKey: 198 type: string 199 required: 200 - from 201 type: object 202 type: array 203 meta: 204 description: Meta is the meta data of the workflow step. 205 properties: 206 alias: 207 type: string 208 type: object 209 mode: 210 description: Mode is only valid for sub steps, it defines 211 the mode of the sub steps 212 nullable: true 213 type: string 214 name: 215 description: Name is the unique name of the workflow step. 216 type: string 217 outputs: 218 description: Outputs is the outputs of the step 219 items: 220 description: OutputItem defines an output variable of 221 WorkflowStep 222 properties: 223 name: 224 type: string 225 valueFrom: 226 type: string 227 required: 228 - name 229 - valueFrom 230 type: object 231 type: array 232 properties: 233 description: Properties is the properties of the step 234 type: object 235 x-kubernetes-preserve-unknown-fields: true 236 subSteps: 237 items: 238 description: WorkflowStepBase defines the workflow step 239 base 240 properties: 241 dependsOn: 242 description: DependsOn is the dependency of the step 243 items: 244 type: string 245 type: array 246 if: 247 description: If is the if condition of the step 248 type: string 249 inputs: 250 description: Inputs is the inputs of the step 251 items: 252 description: InputItem defines an input variable 253 of WorkflowStep 254 properties: 255 from: 256 type: string 257 parameterKey: 258 type: string 259 required: 260 - from 261 type: object 262 type: array 263 meta: 264 description: Meta is the meta data of the workflow 265 step. 266 properties: 267 alias: 268 type: string 269 type: object 270 name: 271 description: Name is the unique name of the workflow 272 step. 273 type: string 274 outputs: 275 description: Outputs is the outputs of the step 276 items: 277 description: OutputItem defines an output variable 278 of WorkflowStep 279 properties: 280 name: 281 type: string 282 valueFrom: 283 type: string 284 required: 285 - name 286 - valueFrom 287 type: object 288 type: array 289 properties: 290 description: Properties is the properties of the step 291 type: object 292 x-kubernetes-preserve-unknown-fields: true 293 timeout: 294 description: Timeout is the timeout of the step 295 type: string 296 type: 297 description: Type is the type of the workflow step. 298 type: string 299 required: 300 - type 301 type: object 302 type: array 303 timeout: 304 description: Timeout is the timeout of the step 305 type: string 306 type: 307 description: Type is the type of the workflow step. 308 type: string 309 required: 310 - type 311 type: object 312 type: array 313 type: object 314 required: 315 - components 316 type: object 317 status: 318 description: AppStatus defines the observed state of Application 319 properties: 320 appliedResources: 321 description: AppliedResources record the resources that the workflow 322 step apply. 323 items: 324 description: ClusterObjectReference defines the object reference 325 with cluster. 326 properties: 327 apiVersion: 328 description: API version of the referent. 329 type: string 330 cluster: 331 type: string 332 creator: 333 type: string 334 fieldPath: 335 description: 'If referring to a piece of an object instead of 336 an entire object, this string should contain a valid JSON/Go 337 field access statement, such as desiredState.manifest.containers[2]. 338 For example, if the object reference is to a container within 339 a pod, this would take on a value like: "spec.containers{name}" 340 (where "name" refers to the name of the container that triggered 341 the event) or if no container name is specified "spec.containers[2]" 342 (container with index 2 in this pod). This syntax is chosen 343 only to have some well-defined way of referencing a part of 344 an object. TODO: this design is not final and this field is 345 subject to change in the future.' 346 type: string 347 kind: 348 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 349 type: string 350 name: 351 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 352 type: string 353 namespace: 354 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 355 type: string 356 resourceVersion: 357 description: 'Specific resourceVersion to which this reference 358 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 359 type: string 360 uid: 361 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 362 type: string 363 type: object 364 x-kubernetes-map-type: atomic 365 type: array 366 components: 367 description: Components record the related Components created by Application 368 Controller 369 items: 370 description: "ObjectReference contains enough information to let 371 you inspect or modify the referred object. --- New uses of this 372 type are discouraged because of difficulty describing its usage 373 when embedded in APIs. 1. Ignored fields. It includes many fields 374 which are not generally honored. For instance, ResourceVersion 375 and FieldPath are both very rarely valid in actual usage. 2. Invalid 376 usage help. It is impossible to add specific help for individual 377 usage. In most embedded usages, there are particular restrictions 378 like, \"must refer only to types A and B\" or \"UID not honored\" 379 or \"name must be restricted\". Those cannot be well described 380 when embedded. 3. Inconsistent validation. Because the usages 381 are different, the validation rules are different by usage, which 382 makes it hard for users to predict what will happen. 4. The fields 383 are both imprecise and overly precise. Kind is not a precise 384 mapping to a URL. This can produce ambiguity during interpretation 385 and require a REST mapping. In most cases, the dependency is 386 on the group,resource tuple and the version of the actual struct 387 is irrelevant. 5. We cannot easily change it. Because this type 388 is embedded in many locations, updates to this type will affect 389 numerous schemas. Don't make new APIs embed an underspecified 390 API type they do not control. \n Instead of using this type, create 391 a locally provided and used type that is well-focused on your 392 reference. For example, ServiceReferences for admission registration: 393 https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 394 ." 395 properties: 396 apiVersion: 397 description: API version of the referent. 398 type: string 399 fieldPath: 400 description: 'If referring to a piece of an object instead of 401 an entire object, this string should contain a valid JSON/Go 402 field access statement, such as desiredState.manifest.containers[2]. 403 For example, if the object reference is to a container within 404 a pod, this would take on a value like: "spec.containers{name}" 405 (where "name" refers to the name of the container that triggered 406 the event) or if no container name is specified "spec.containers[2]" 407 (container with index 2 in this pod). This syntax is chosen 408 only to have some well-defined way of referencing a part of 409 an object. TODO: this design is not final and this field is 410 subject to change in the future.' 411 type: string 412 kind: 413 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 414 type: string 415 name: 416 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 417 type: string 418 namespace: 419 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 420 type: string 421 resourceVersion: 422 description: 'Specific resourceVersion to which this reference 423 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 424 type: string 425 uid: 426 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 427 type: string 428 type: object 429 x-kubernetes-map-type: atomic 430 type: array 431 conditions: 432 description: Conditions of the resource. 433 items: 434 description: A Condition that may apply to a resource. 435 properties: 436 lastTransitionTime: 437 description: LastTransitionTime is the last time this condition 438 transitioned from one status to another. 439 format: date-time 440 type: string 441 message: 442 description: A Message containing details about this condition's 443 last transition from one status to another, if any. 444 type: string 445 reason: 446 description: A Reason for this condition's last transition from 447 one status to another. 448 type: string 449 status: 450 description: Status of this condition; is it currently True, 451 False, or Unknown? 452 type: string 453 type: 454 description: Type of this condition. At most one of each condition 455 type may apply to a resource at any point in time. 456 type: string 457 required: 458 - lastTransitionTime 459 - reason 460 - status 461 - type 462 type: object 463 type: array 464 latestRevision: 465 description: LatestRevision of the application configuration it generates 466 properties: 467 name: 468 type: string 469 revision: 470 format: int64 471 type: integer 472 revisionHash: 473 description: RevisionHash record the hash value of the spec of 474 ApplicationRevision object. 475 type: string 476 required: 477 - name 478 - revision 479 type: object 480 observedGeneration: 481 description: The generation observed by the application controller. 482 format: int64 483 type: integer 484 policy: 485 description: PolicyStatus records the status of policy Deprecated 486 This field is only used by EnvBinding Policy which is deprecated. 487 items: 488 description: PolicyStatus records the status of policy Deprecated 489 properties: 490 name: 491 type: string 492 status: 493 type: object 494 x-kubernetes-preserve-unknown-fields: true 495 type: 496 type: string 497 required: 498 - name 499 - type 500 type: object 501 type: array 502 services: 503 description: Services record the status of the application services 504 items: 505 description: ApplicationComponentStatus record the health status 506 of App component 507 properties: 508 cluster: 509 type: string 510 env: 511 type: string 512 healthy: 513 type: boolean 514 message: 515 type: string 516 name: 517 type: string 518 namespace: 519 type: string 520 scopes: 521 items: 522 description: "ObjectReference contains enough information 523 to let you inspect or modify the referred object. --- New 524 uses of this type are discouraged because of difficulty 525 describing its usage when embedded in APIs. 1. Ignored fields. 526 \ It includes many fields which are not generally honored. 527 \ For instance, ResourceVersion and FieldPath are both very 528 rarely valid in actual usage. 2. Invalid usage help. It 529 is impossible to add specific help for individual usage. 530 \ In most embedded usages, there are particular restrictions 531 like, \"must refer only to types A and B\" or \"UID not 532 honored\" or \"name must be restricted\". Those cannot be 533 well described when embedded. 3. Inconsistent validation. 534 \ Because the usages are different, the validation rules 535 are different by usage, which makes it hard for users to 536 predict what will happen. 4. The fields are both imprecise 537 and overly precise. Kind is not a precise mapping to a 538 URL. This can produce ambiguity during interpretation and 539 require a REST mapping. In most cases, the dependency is 540 on the group,resource tuple and the version of the actual 541 struct is irrelevant. 5. We cannot easily change it. Because 542 this type is embedded in many locations, updates to this 543 type will affect numerous schemas. Don't make new APIs 544 embed an underspecified API type they do not control. \n 545 Instead of using this type, create a locally provided and 546 used type that is well-focused on your reference. For example, 547 ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 548 ." 549 properties: 550 apiVersion: 551 description: API version of the referent. 552 type: string 553 fieldPath: 554 description: 'If referring to a piece of an object instead 555 of an entire object, this string should contain a valid 556 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 557 For example, if the object reference is to a container 558 within a pod, this would take on a value like: "spec.containers{name}" 559 (where "name" refers to the name of the container that 560 triggered the event) or if no container name is specified 561 "spec.containers[2]" (container with index 2 in this 562 pod). This syntax is chosen only to have some well-defined 563 way of referencing a part of an object. TODO: this design 564 is not final and this field is subject to change in 565 the future.' 566 type: string 567 kind: 568 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 569 type: string 570 name: 571 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 572 type: string 573 namespace: 574 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 575 type: string 576 resourceVersion: 577 description: 'Specific resourceVersion to which this reference 578 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 579 type: string 580 uid: 581 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 582 type: string 583 type: object 584 x-kubernetes-map-type: atomic 585 type: array 586 traits: 587 items: 588 description: ApplicationTraitStatus records the trait health 589 status 590 properties: 591 healthy: 592 type: boolean 593 message: 594 type: string 595 type: 596 type: string 597 required: 598 - healthy 599 - type 600 type: object 601 type: array 602 workloadDefinition: 603 description: WorkloadDefinition is the definition of a WorkloadDefinition, 604 such as deployments/apps.v1 605 properties: 606 apiVersion: 607 type: string 608 kind: 609 type: string 610 required: 611 - apiVersion 612 - kind 613 type: object 614 required: 615 - healthy 616 - name 617 type: object 618 type: array 619 status: 620 description: ApplicationPhase is a label for the condition of an application 621 at the current time 622 type: string 623 workflow: 624 description: Workflow record the status of workflow 625 properties: 626 appRevision: 627 type: string 628 contextBackend: 629 description: "ObjectReference contains enough information to let 630 you inspect or modify the referred object. --- New uses of this 631 type are discouraged because of difficulty describing its usage 632 when embedded in APIs. 1. Ignored fields. It includes many 633 fields which are not generally honored. For instance, ResourceVersion 634 and FieldPath are both very rarely valid in actual usage. 2. 635 Invalid usage help. It is impossible to add specific help for 636 individual usage. In most embedded usages, there are particular 637 restrictions like, \"must refer only to types A and B\" or \"UID 638 not honored\" or \"name must be restricted\". Those cannot be 639 well described when embedded. 3. Inconsistent validation. Because 640 the usages are different, the validation rules are different 641 by usage, which makes it hard for users to predict what will 642 happen. 4. The fields are both imprecise and overly precise. 643 \ Kind is not a precise mapping to a URL. This can produce ambiguity 644 during interpretation and require a REST mapping. In most cases, 645 the dependency is on the group,resource tuple and the version 646 of the actual struct is irrelevant. 5. We cannot easily change 647 it. Because this type is embedded in many locations, updates 648 to this type will affect numerous schemas. Don't make new APIs 649 embed an underspecified API type they do not control. \n Instead 650 of using this type, create a locally provided and used type 651 that is well-focused on your reference. For example, ServiceReferences 652 for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 653 ." 654 properties: 655 apiVersion: 656 description: API version of the referent. 657 type: string 658 fieldPath: 659 description: 'If referring to a piece of an object instead 660 of an entire object, this string should contain a valid 661 JSON/Go field access statement, such as desiredState.manifest.containers[2]. 662 For example, if the object reference is to a container within 663 a pod, this would take on a value like: "spec.containers{name}" 664 (where "name" refers to the name of the container that triggered 665 the event) or if no container name is specified "spec.containers[2]" 666 (container with index 2 in this pod). This syntax is chosen 667 only to have some well-defined way of referencing a part 668 of an object. TODO: this design is not final and this field 669 is subject to change in the future.' 670 type: string 671 kind: 672 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 673 type: string 674 name: 675 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 676 type: string 677 namespace: 678 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 679 type: string 680 resourceVersion: 681 description: 'Specific resourceVersion to which this reference 682 is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 683 type: string 684 uid: 685 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 686 type: string 687 type: object 688 x-kubernetes-map-type: atomic 689 endTime: 690 format: date-time 691 nullable: true 692 type: string 693 finished: 694 type: boolean 695 message: 696 type: string 697 mode: 698 type: string 699 startTime: 700 format: date-time 701 type: string 702 status: 703 description: WorkflowRunPhase is a label for the condition of 704 a WorkflowRun at the current time 705 type: string 706 steps: 707 items: 708 description: WorkflowStepStatus record the status of a workflow 709 step, include step status and subStep status 710 properties: 711 firstExecuteTime: 712 description: FirstExecuteTime is the first time this step 713 execution. 714 format: date-time 715 type: string 716 id: 717 type: string 718 lastExecuteTime: 719 description: LastExecuteTime is the last time this step 720 execution. 721 format: date-time 722 type: string 723 message: 724 description: A human readable message indicating details 725 about why the workflowStep is in this state. 726 type: string 727 name: 728 type: string 729 phase: 730 description: WorkflowStepPhase describes the phase of a 731 workflow step. 732 type: string 733 reason: 734 description: A brief CamelCase message indicating details 735 about why the workflowStep is in this state. 736 type: string 737 subSteps: 738 items: 739 description: StepStatus record the base status of workflow 740 step, which could be workflow step or subStep 741 properties: 742 firstExecuteTime: 743 description: FirstExecuteTime is the first time this 744 step execution. 745 format: date-time 746 type: string 747 id: 748 type: string 749 lastExecuteTime: 750 description: LastExecuteTime is the last time this 751 step execution. 752 format: date-time 753 type: string 754 message: 755 description: A human readable message indicating details 756 about why the workflowStep is in this state. 757 type: string 758 name: 759 type: string 760 phase: 761 description: WorkflowStepPhase describes the phase 762 of a workflow step. 763 type: string 764 reason: 765 description: A brief CamelCase message indicating 766 details about why the workflowStep is in this state. 767 type: string 768 type: 769 type: string 770 required: 771 - id 772 type: object 773 type: array 774 type: 775 type: string 776 required: 777 - id 778 type: object 779 type: array 780 suspend: 781 type: boolean 782 suspendState: 783 type: string 784 terminated: 785 type: boolean 786 required: 787 - finished 788 - mode 789 - suspend 790 - terminated 791 type: object 792 type: object 793 type: object 794 served: true 795 storage: true 796 subresources: 797 status: {}