This documentation will walk through how to use KubeVela to design a simple application without any polices or placement rule defined.
Note: since you didn't declare placement rule, KubeVela will deploy this application directly to the control plane cluster (i.e. the cluster your
kubectlis talking to). This is also the same case if you are using local cluster such as KinD or MiniKube to play KubeVela.
Components are deployable or provisionable entities that compose your application. It could be a Helm chart, a simple Kubernetes workload, a CUE or Terraform module, or a cloud database etc.
Let's check the available components in fresh new KubeVela.
To show the specification for given component, you could use
vela show xxx --webwill open its capability reference documentation in your default browser.
You could always add more components to the platform at any time.
Application is the full description of a deployment. Let's define an application that deploys a Web Service and a Worker components.
Traits are platform provided features that could overlay a given component with extra operational behaviors.
Let's check the specification of
Note that traits are designed to be overlays.
This means for
sidecar trait, your
frontend component doesn't need to have a sidecar template or bring a webhook to enable sidecar injection. Instead, KubeVela is able to patch a sidecar to its workload instance after it is generated by the component (no matter it's a Helm chart or CUE module) but before it is applied to runtime cluster.
Similarly, the system will assign a HPA instance based on the properties you set and "link" it to the target workload instance, the component itself is untouched.
Now let's attach
cpuscaler traits to the
You'll get the application becomes
Check the details of the application.
status.latestRevisiondeclares current revision of this deployment.
status.servicesdeclares the component created by this deployment and the healthy state.
status.statusdeclares the global state of this deployment.
When updating an application entity, KubeVela will create a new revision for this change.
Furthermore, the system will decide how to/whether to rollout the application based on the attached rollout plan.