apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: cert-manager.io/inject-ca-from: vela-system/kubevela-vela-core-root-cert controller-gen.kubebuilder.io/version: v0.16.5 name: applications.core.oam.dev spec: group: core.oam.dev names: categories: - oam kind: Application listKind: ApplicationList plural: applications shortNames: - app - velaapp singular: application scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.components[*].name name: COMPONENT type: string - jsonPath: .spec.components[*].type name: TYPE type: string - jsonPath: .status.status name: PHASE type: string - jsonPath: .status.services[*].healthy name: HEALTHY type: boolean - jsonPath: .status.services[*].message name: STATUS type: string - jsonPath: .metadata.creationTimestamp name: AGE type: date name: v1beta1 schema: openAPIV3Schema: description: Application is the Schema for the applications API properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: ApplicationSpec is the spec of Application properties: components: items: description: ApplicationComponent describe the component of application properties: dependsOn: items: type: string type: array externalRevision: description: ExternalRevision specified the component revisionName type: string inputs: description: StepInputs defines variable input of WorkflowStep items: description: InputItem defines an input variable of WorkflowStep properties: from: type: string parameterKey: type: string required: - from type: object type: array name: type: string outputs: description: StepOutputs defines output variable of WorkflowStep items: description: OutputItem defines an output variable of WorkflowStep properties: name: type: string valueFrom: type: string required: - name - valueFrom type: object type: array properties: type: object x-kubernetes-preserve-unknown-fields: true scopes: additionalProperties: type: string description: |- scopes in ApplicationComponent defines the component-level scopes the format is pairs, the key represents type of `ScopeDefinition` while the value represent the name of scope instance. type: object x-kubernetes-preserve-unknown-fields: true traits: description: Traits define the trait of one component, the type must be array to keep the order. items: description: ApplicationTrait defines the trait of application properties: properties: type: object x-kubernetes-preserve-unknown-fields: true type: type: string required: - type type: object type: array type: type: string required: - name - type type: object type: array policies: description: |- Policies defines the global policies for all components in the app, e.g. security, metrics, gitops, multi-cluster placement rules, etc. Policies are applied after components are rendered and before workflow steps are executed. items: description: AppPolicy defines a global policy for all components in the app. properties: name: description: Name is the unique name of the policy. type: string properties: type: object x-kubernetes-preserve-unknown-fields: true type: description: Type is the type of the policy type: string required: - type type: object type: array workflow: description: |- Workflow defines how to customize the control logic. If workflow is specified, Vela won't apply any resource, but provide rendered output in AppRevision. Workflow steps are executed in array order, and each step: - will have a context in annotation. - should mark "finish" phase in status.conditions. properties: mode: description: WorkflowExecuteMode defines the mode of workflow execution properties: steps: description: Steps is the mode of workflow steps execution type: string subSteps: description: SubSteps is the mode of workflow sub steps execution type: string type: object ref: type: string steps: items: description: WorkflowStep defines how to execute a workflow step. properties: dependsOn: description: DependsOn is the dependency of the step items: type: string type: array if: description: If is the if condition of the step type: string inputs: description: Inputs is the inputs of the step items: description: InputItem defines an input variable of WorkflowStep properties: from: type: string parameterKey: type: string required: - from type: object type: array meta: description: Meta is the meta data of the workflow step. properties: alias: type: string type: object mode: description: Mode is only valid for sub steps, it defines the mode of the sub steps nullable: true type: string name: description: Name is the unique name of the workflow step. type: string outputs: description: Outputs is the outputs of the step items: description: OutputItem defines an output variable of WorkflowStep properties: name: type: string valueFrom: type: string required: - name - valueFrom type: object type: array properties: description: Properties is the properties of the step type: object x-kubernetes-preserve-unknown-fields: true subSteps: items: description: WorkflowStepBase defines the workflow step base properties: dependsOn: description: DependsOn is the dependency of the step items: type: string type: array if: description: If is the if condition of the step type: string inputs: description: Inputs is the inputs of the step items: description: InputItem defines an input variable of WorkflowStep properties: from: type: string parameterKey: type: string required: - from type: object type: array meta: description: Meta is the meta data of the workflow step. properties: alias: type: string type: object name: description: Name is the unique name of the workflow step. type: string outputs: description: Outputs is the outputs of the step items: description: OutputItem defines an output variable of WorkflowStep properties: name: type: string valueFrom: type: string required: - name - valueFrom type: object type: array properties: description: Properties is the properties of the step type: object x-kubernetes-preserve-unknown-fields: true timeout: description: Timeout is the timeout of the step type: string type: description: Type is the type of the workflow step. type: string required: - type type: object type: array timeout: description: Timeout is the timeout of the step type: string type: description: Type is the type of the workflow step. type: string required: - type type: object type: array type: object required: - components type: object status: description: AppStatus defines the observed state of Application properties: appliedResources: description: AppliedResources record the resources that the workflow step apply. items: description: ClusterObjectReference defines the object reference with cluster. properties: apiVersion: description: API version of the referent. type: string cluster: type: string creator: type: string fieldPath: description: |- If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. type: string kind: description: |- Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: description: |- Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: description: |- Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: description: |- UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic type: array components: description: Components record the related Components created by Application Controller items: description: ObjectReference contains enough information to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: |- If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. type: string kind: description: |- Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: description: |- Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: description: |- Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: description: |- UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic type: array conditions: description: Conditions of the resource. items: description: A Condition that may apply to a resource. properties: lastTransitionTime: description: |- LastTransitionTime is the last time this condition transitioned from one status to another. format: date-time type: string message: description: |- A Message containing details about this condition's last transition from one status to another, if any. type: string reason: description: A Reason for this condition's last transition from one status to another. type: string status: description: Status of this condition; is it currently True, False, or Unknown? type: string type: description: |- Type of this condition. At most one of each condition type may apply to a resource at any point in time. type: string required: - lastTransitionTime - reason - status - type type: object type: array latestRevision: description: LatestRevision of the application configuration it generates properties: name: type: string revision: format: int64 type: integer revisionHash: description: RevisionHash record the hash value of the spec of ApplicationRevision object. type: string required: - name - revision type: object observedGeneration: description: The generation observed by the application controller. format: int64 type: integer policy: description: |- PolicyStatus records the status of policy Deprecated This field is only used by EnvBinding Policy which is deprecated. items: description: |- PolicyStatus records the status of policy Deprecated properties: name: type: string status: type: object x-kubernetes-preserve-unknown-fields: true type: type: string required: - name - type type: object type: array services: description: Services record the status of the application services items: description: ApplicationComponentStatus record the health status of App component properties: cluster: type: string details: additionalProperties: type: string type: object env: type: string healthy: type: boolean message: type: string name: type: string namespace: type: string scopes: items: description: ObjectReference contains enough information to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: |- If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. type: string kind: description: |- Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: description: |- Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: description: |- Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: description: |- UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic type: array traits: items: description: ApplicationTraitStatus records the trait health status properties: details: additionalProperties: type: string type: object healthy: type: boolean message: type: string type: type: string required: - healthy - type type: object type: array workloadDefinition: description: WorkloadDefinition is the definition of a WorkloadDefinition, such as deployments/apps.v1 properties: apiVersion: type: string kind: type: string required: - apiVersion - kind type: object required: - healthy - name type: object type: array status: description: ApplicationPhase is a label for the condition of an application at the current time type: string workflow: description: Workflow record the status of workflow properties: appRevision: type: string contextBackend: description: ObjectReference contains enough information to let you inspect or modify the referred object. properties: apiVersion: description: API version of the referent. type: string fieldPath: description: |- If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. type: string kind: description: |- Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: description: |- Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: description: |- Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: description: |- Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: description: |- UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic endTime: format: date-time nullable: true type: string finished: type: boolean message: type: string mode: type: string startTime: format: date-time type: string status: description: WorkflowRunPhase is a label for the condition of a WorkflowRun at the current time type: string steps: items: description: WorkflowStepStatus record the status of a workflow step, include step status and subStep status properties: firstExecuteTime: description: FirstExecuteTime is the first time this step execution. format: date-time type: string id: type: string lastExecuteTime: description: LastExecuteTime is the last time this step execution. format: date-time type: string message: description: A human readable message indicating details about why the workflowStep is in this state. type: string name: type: string phase: description: WorkflowStepPhase describes the phase of a workflow step. type: string reason: description: A brief CamelCase message indicating details about why the workflowStep is in this state. type: string subSteps: items: description: StepStatus record the base status of workflow step, which could be workflow step or subStep properties: firstExecuteTime: description: FirstExecuteTime is the first time this step execution. format: date-time type: string id: type: string lastExecuteTime: description: LastExecuteTime is the last time this step execution. format: date-time type: string message: description: A human readable message indicating details about why the workflowStep is in this state. type: string name: type: string phase: description: WorkflowStepPhase describes the phase of a workflow step. type: string reason: description: A brief CamelCase message indicating details about why the workflowStep is in this state. type: string type: type: string required: - id type: object type: array type: type: string required: - id type: object type: array suspend: type: boolean suspendState: type: string terminated: type: boolean required: - finished - mode - suspend - terminated type: object workflowRestartScheduledAt: description: |- WorkflowRestartScheduledAt schedules a workflow restart at the specified time. This field is automatically set when the app.oam.dev/restart-workflow annotation is present, and is cleared after the restart is triggered. Use RFC3339 format or set to current time for immediate restart. format: date-time type: string type: object type: object served: true storage: true subresources: status: {}