mirror of
https://github.com/kubevela/kubevela.git
synced 2026-05-16 14:27:00 +00:00
134 lines
3.9 KiB
Markdown
134 lines
3.9 KiB
Markdown
---
|
|
title: Managing Capabilities
|
|
---
|
|
|
|
In KubeVela, developers can install more capabilities (i.e. new component types and traits) from any GitHub repo that contains OAM definition files. We call these GitHub repos as _Capability Centers_.
|
|
|
|
KubeVela is able to discover OAM definition files in this repo automatically and sync them to your own KubeVela platform.
|
|
|
|
## Add a capability center
|
|
|
|
Add and sync a capability center in KubeVela:
|
|
|
|
```bash
|
|
$ vela cap center config my-center https://github.com/oam-dev/catalog/tree/master/registry
|
|
successfully sync 1/1 from my-center remote center
|
|
Successfully configured capability center my-center and sync from remote
|
|
|
|
$ vela cap center sync my-center
|
|
successfully sync 1/1 from my-center remote center
|
|
sync finished
|
|
```
|
|
|
|
Now, this capability center `my-center` is ready to use.
|
|
|
|
## List capability centers
|
|
|
|
You are allowed to add more capability centers and list them.
|
|
|
|
```bash
|
|
$ vela cap center ls
|
|
NAME ADDRESS
|
|
my-center https://github.com/oam-dev/catalog/tree/master/registry
|
|
```
|
|
|
|
## [Optional] Remove a capability center
|
|
|
|
Or, remove one.
|
|
|
|
```bash
|
|
$ vela cap center remove my-center
|
|
```
|
|
|
|
## List all available capabilities in capability center
|
|
|
|
Or, list all available capabilities in certain center.
|
|
|
|
```bash
|
|
$ vela cap ls my-center
|
|
NAME CENTER TYPE DEFINITION STATUS APPLIES-TO
|
|
clonesetservice my-center componentDefinition clonesets.apps.kruise.io uninstalled []
|
|
```
|
|
|
|
## Install a capability from capability center
|
|
|
|
Now let's try to install the new component named `clonesetservice` from `my-center` to your own KubeVela platform.
|
|
|
|
You need to install OpenKruise first.
|
|
|
|
```shell
|
|
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz
|
|
```
|
|
|
|
Install `clonesetservice` component from `my-center`.
|
|
|
|
```bash
|
|
$ vela cap install my-center/clonesetservice
|
|
Installing component capability clonesetservice
|
|
Successfully installed capability clonesetservice from my-center
|
|
```
|
|
|
|
## Use the newly installed capability
|
|
|
|
Let's check the `clonesetservice` appears in your platform firstly:
|
|
|
|
```bash
|
|
$ vela components
|
|
NAME NAMESPACE WORKLOAD DESCRIPTION
|
|
clonesetservice vela-system clonesets.apps.kruise.io Describes long-running, scalable, containerized services
|
|
that have a stable network endpoint to receive external
|
|
network traffic from customers. If workload type is skipped
|
|
for any service defined in Appfile, it will be defaulted to
|
|
`webservice` type.
|
|
```
|
|
|
|
Great! Now let's deploy an app via Appfile.
|
|
|
|
```bash
|
|
$ cat << EOF > vela.yaml
|
|
name: testapp
|
|
services:
|
|
testsvc:
|
|
type: clonesetservice
|
|
image: crccheck/hello-world
|
|
port: 8000
|
|
EOF
|
|
```
|
|
|
|
```bash
|
|
$ vela up
|
|
Parsing vela appfile ...
|
|
Load Template ...
|
|
|
|
Rendering configs for service (testsvc)...
|
|
Writing deploy config to (.vela/deploy.yaml)
|
|
|
|
Applying application ...
|
|
Checking if app has been deployed...
|
|
App has not been deployed, creating a new deployment...
|
|
Updating: core.oam.dev/v1alpha2, Kind=HealthScope in default
|
|
✅ App has been deployed 🚀🚀🚀
|
|
Port forward: vela port-forward testapp
|
|
SSH: vela exec testapp
|
|
Logging: vela logs testapp
|
|
App status: vela status testapp
|
|
Service status: vela status testapp --svc testsvc
|
|
```
|
|
|
|
then you can Get a cloneset in your environment.
|
|
|
|
```shell
|
|
$ kubectl get clonesets.apps.kruise.io
|
|
NAME DESIRED UPDATED UPDATED_READY READY TOTAL AGE
|
|
testsvc 1 1 1 1 1 46s
|
|
```
|
|
|
|
## Uninstall a capability
|
|
|
|
> NOTE: make sure no apps are using the capability before uninstalling.
|
|
|
|
```bash
|
|
$ vela cap uninstall my-center/clonesetservice
|
|
Successfully uninstalled capability clonesetservice
|
|
```
|