mirror of
https://github.com/kubevela/kubevela.git
synced 2026-02-14 10:00:06 +00:00
304 lines
13 KiB
YAML
304 lines
13 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.16.5
|
|
name: traitdefinitions.core.oam.dev
|
|
spec:
|
|
group: core.oam.dev
|
|
names:
|
|
categories:
|
|
- oam
|
|
kind: TraitDefinition
|
|
listKind: TraitDefinitionList
|
|
plural: traitdefinitions
|
|
shortNames:
|
|
- trait
|
|
singular: traitdefinition
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .spec.appliesToWorkloads
|
|
name: APPLIES-TO
|
|
type: string
|
|
- jsonPath: .metadata.annotations.definition\.oam\.dev/description
|
|
name: DESCRIPTION
|
|
type: string
|
|
name: v1beta1
|
|
schema:
|
|
openAPIV3Schema:
|
|
description: |-
|
|
A TraitDefinition registers a kind of Kubernetes custom resource as a valid
|
|
OAM trait kind by referencing its CustomResourceDefinition. The CRD is used
|
|
to validate the schema of the trait when it is embedded in an OAM
|
|
ApplicationConfiguration.
|
|
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: A TraitDefinitionSpec defines the desired state of a TraitDefinition.
|
|
properties:
|
|
appliesToWorkloads:
|
|
description: |-
|
|
AppliesToWorkloads specifies the list of workload kinds this trait
|
|
applies to. Workload kinds are specified in resource.group/version format,
|
|
e.g. server.core.oam.dev/v1alpha2. Traits that omit this field apply to
|
|
all workload kinds.
|
|
items:
|
|
type: string
|
|
type: array
|
|
conflictsWith:
|
|
description: |-
|
|
ConflictsWith specifies the list of traits(CRD name, Definition name, CRD group)
|
|
which could not apply to the same workloads with this trait.
|
|
Traits that omit this field can work with any other traits.
|
|
Example rules:
|
|
"service" # Trait definition name
|
|
"services.k8s.io" # API resource/crd name
|
|
"*.networking.k8s.io" # API group
|
|
"labelSelector:foo=bar" # label selector
|
|
labelSelector format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse
|
|
items:
|
|
type: string
|
|
type: array
|
|
controlPlaneOnly:
|
|
description: ControlPlaneOnly defines which cluster is dispatched
|
|
to
|
|
type: boolean
|
|
definitionRef:
|
|
description: Reference to the CustomResourceDefinition that defines
|
|
this trait kind.
|
|
properties:
|
|
name:
|
|
description: Name of the referenced CustomResourceDefinition.
|
|
type: string
|
|
version:
|
|
description: |-
|
|
Version indicate which version should be used if CRD has multiple versions
|
|
by default it will use the first one if not specified
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
extension:
|
|
description: Extension is used for extension needs by OAM platform
|
|
builders
|
|
type: object
|
|
x-kubernetes-preserve-unknown-fields: true
|
|
manageWorkload:
|
|
description: ManageWorkload defines the trait would be responsible
|
|
for creating the workload
|
|
type: boolean
|
|
podDisruptive:
|
|
description: PodDisruptive specifies whether using the trait will
|
|
cause the pod to restart or not.
|
|
type: boolean
|
|
revisionEnabled:
|
|
description: Revision indicates whether a trait is aware of component
|
|
revision
|
|
type: boolean
|
|
schematic:
|
|
description: |-
|
|
Schematic defines the data format and template of the encapsulation of the trait.
|
|
Only CUE and Kube schematic are supported for now.
|
|
properties:
|
|
cue:
|
|
description: CUE defines the encapsulation in CUE format
|
|
properties:
|
|
template:
|
|
description: |-
|
|
Template defines the abstraction template data of the capability, it will replace the old CUE template in extension field.
|
|
Template is a required field if CUE is defined in Capability Definition.
|
|
type: string
|
|
required:
|
|
- template
|
|
type: object
|
|
terraform:
|
|
description: Terraform is the struct to describe cloud resources
|
|
managed by Hashicorp Terraform
|
|
properties:
|
|
configuration:
|
|
description: Configuration is Terraform Configuration
|
|
type: string
|
|
customRegion:
|
|
description: Region is cloud provider's region. It will override
|
|
the region in the region field of ProviderReference
|
|
type: string
|
|
deleteResource:
|
|
default: true
|
|
description: DeleteResource will determine whether provisioned
|
|
cloud resources will be deleted when CR is deleted
|
|
type: boolean
|
|
gitCredentialsSecretReference:
|
|
description: GitCredentialsSecretReference specifies the reference
|
|
to the secret containing the git credentials
|
|
properties:
|
|
name:
|
|
description: name is unique within a namespace to reference
|
|
a secret resource.
|
|
type: string
|
|
namespace:
|
|
description: namespace defines the space within which
|
|
the secret name must be unique.
|
|
type: string
|
|
type: object
|
|
x-kubernetes-map-type: atomic
|
|
path:
|
|
description: Path is the sub-directory of remote git repository.
|
|
It's valid when remote is set
|
|
type: string
|
|
providerRef:
|
|
description: ProviderReference specifies the reference to
|
|
Provider
|
|
properties:
|
|
name:
|
|
description: Name of the referenced object.
|
|
type: string
|
|
namespace:
|
|
default: default
|
|
description: Namespace of the referenced object.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
type:
|
|
default: hcl
|
|
description: Type specifies which Terraform configuration
|
|
it is, HCL or JSON syntax
|
|
enum:
|
|
- hcl
|
|
- json
|
|
- remote
|
|
type: string
|
|
writeConnectionSecretToRef:
|
|
description: |-
|
|
WriteConnectionSecretToReference specifies the namespace and name of a
|
|
Secret to which any connection details for this managed resource should
|
|
be written. Connection details frequently include the endpoint, username,
|
|
and password required to connect to the managed resource.
|
|
properties:
|
|
name:
|
|
description: Name of the secret.
|
|
type: string
|
|
namespace:
|
|
description: Namespace of the secret.
|
|
type: string
|
|
required:
|
|
- name
|
|
type: object
|
|
required:
|
|
- configuration
|
|
type: object
|
|
type: object
|
|
stage:
|
|
description: |-
|
|
Stage defines the stage information to which this trait resource processing belongs.
|
|
Currently, PreDispatch and PostDispatch are provided, which are used to control resource
|
|
pre-process and post-process respectively.
|
|
type: string
|
|
status:
|
|
description: Status defines the custom health policy and status message
|
|
for trait
|
|
properties:
|
|
customStatus:
|
|
description: CustomStatus defines the custom status message that
|
|
could display to user
|
|
type: string
|
|
details:
|
|
description: Details stores a string representation of a CUE status
|
|
map to be evaluated at runtime for display
|
|
type: string
|
|
healthPolicy:
|
|
description: HealthPolicy defines the health check policy for
|
|
the abstraction
|
|
type: string
|
|
type: object
|
|
version:
|
|
type: string
|
|
workloadRefPath:
|
|
description: WorkloadRefPath indicates where/if a trait accepts a
|
|
workloadRef object
|
|
type: string
|
|
type: object
|
|
status:
|
|
description: TraitDefinitionStatus is the status of TraitDefinition
|
|
properties:
|
|
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
|
|
configMapRef:
|
|
description: ConfigMapRef refer to a ConfigMap which contains OpenAPI
|
|
V3 JSON schema of Component parameters.
|
|
type: string
|
|
latestRevision:
|
|
description: LatestRevision of the component definition
|
|
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
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|