Skip to content

Commit

Permalink
Chore: update want more section (kubevela#711)
Browse files Browse the repository at this point in the history
Signed-off-by: Jianbo Sun <[email protected]>
  • Loading branch information
wonderflow authored Jun 8, 2022
1 parent 279639f commit 9508a45
Show file tree
Hide file tree
Showing 17 changed files with 382 additions and 290 deletions.
2 changes: 1 addition & 1 deletion blog/2021-10-08-blog-1.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ KubeVela latest 1.1 release is a major milestone bringing more continuous delive

- **Multi-environment, multi-cluster rollout**: KubeVela allows users to define the environments and the clusters which application components to deploy to or to promote. This makes it easier for users to manage multi-stage application rollout. For example, users can deploy applicatons to test environment and then promote to production environment.
- **Canary rollout and approval gate**: Application delivery is a procedural workflow that takes multiple steps. KubeVela provides such workflow on top of Kubernetes. By default, Users can use KubeVela to build canary rollout, approval gate, notification pipelines to deliver applications confidently. Moreover, the workflow model is declarative and extensible. Workflow steps can be stored in Git to simplify management.
- **Addon management**: All KubeVela capabilities (e.g. Helm chart deployment) are pluggable. They are managed as addons [2]. KubeVela provides simple experience via CLI/UI to discover, install, uninstall addons. There is an official addon registry. Users can also bring their own addon registries.
- **Addon management**: All KubeVela capabilities (e.g. Helm chart deployment) are pluggable. They are managed as addons [2]. KubeVela provides simple experience via CLI/UI to discover, install, uninstall addons. There is an community addon registry. Users can also bring their own addon registries.
- **Cloud Resource**: Users can enable Terraform addon on KubeVela to deploy cloud resources using the same abstraction to deploy applications. This enables cooperative delivery of application and its dependencies. That includes databases, redis, message queues, etc. By using KubeVela, users don't need to switch over to another interface to manage middlewares. This provides unified experience and aligns better with the upcoming trends in CNCF Cooperative-Delivery Working Group [3].

That is the introduction about KubeVela 1.1 release. In the following, we will provide deep-dive and examples for the new features.
Expand Down
169 changes: 158 additions & 11 deletions docs/end-user/components/more.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,165 @@
title: Needs More?
---

KubeVela is programmable, you have the following ways to discover and extend the platform.
KubeVela is programmable, it can be extended easily with [definition](../../getting-started/definition). You have the following ways to discover and extend the platform.

* Refer to the following links to learn more built-in capabilities:
- [Built-in Component Reference](./references)
- [Built-in Trait Reference](../traits/references)
- [Built-in Policy Reference](../policies/references)
- [Built-in Workflow Step Reference](../workflow/built-in-workflow-defs)
## Learn more built-in capabilities

* Get more capabilities from [installing addons](../../how-to/cli/addon/addon), you can refer to [the overview of official addons](../../reference/addons/overview) for more details.
There're many out-of-box capabilities installed along with KubeVela controller, refer to the following links to learn more details:

* Develop and Extend KubeVela by yourself
- Read the [developer guide](../../contributor/overview) to learn how to contribute and extend capabilities for KubeVela.
- KubeVela use CUE as it's core engine, [learn CUE in KubeVela](../../platform-engineers/cue/basic) and try to extend with CUE configurations.
- [Building your own addons](../../platform-engineers/addon/intro) for extension, you can also [extend cloud resources by addon](../../platform-engineers/addon/terraform).
- [Built-in Component Reference](./references)
- [Built-in Trait Reference](../traits/references)
- [Built-in Policy Reference](../policies/references)
- [Built-in Workflow Step Reference](../workflow/built-in-workflow-defs)

## Manage Addons

Installing addon from the community is also one of the most important way to discover more capabilities.

### List Addons

KubeVela community has maintained a growing [catalog of addons](https://github.com/kubevela/catalog) which will be synced to the default addon registry (https://addons.kubevela.net). You can use vela command line to list all available addons by:

```shell
vela addon list
```

The command will show the basic addon info along with all available versions.

```console
NAME REGISTRY DESCRIPTION AVAILABLE-VERSIONS STATUS
rollout KubeVela Provides basic batch publishing capability. [1.3.0, 1.2.4, 1.2.3] disabled
terraform KubeVela Terraform Controller is a Kubernetes Controller for Terraform. [1.0.6] disabled
terraform-aws KubeVela Kubernetes Terraform Controller for AWS [1.0.1, 1.0.0] disabled
dex KubeVela Enable dex for login [0.6.5] disabled
fluxcd KubeVela Extended workload to do continuous and progressive delivery [1.1.0, 1.0.0] disabled
velaux KubeVela KubeVela User Experience (UX). An extensible, application-oriented delivery and management Dashboard. [v1.3.0, v1.3.0-beta.2, 1.2.4] enabled (v1.3.0)
terraform-alibaba KubeVela Kubernetes Terraform Controller for Alibaba Cloud [1.0.2, 1.0.1] disabled
...snip...
```

* You can refer to [addon reference docs](../../reference/addons/overview) for more details of these community certificated addons.

### Install Addon

The simplest command for installing one addon is:

```shell
vela addon enable fluxcd
```

The expected output should be:
```console
I0111 21:45:24.553174 89345 apply.go:106] "creating object" name="addon-fluxcd" resource="core.oam.dev/v1beta1, Kind=Application"
I0111 21:45:25.258914 89345 apply.go:106] "creating object" name="helm" resource="core.oam.dev/v1beta1, Kind=ComponentDefinition"
I0111 21:45:25.342731 89345 apply.go:106] "creating object" name="kustomize-json-patch" resource="core.oam.dev/v1beta1, Kind=TraitDefinition"
I0111 21:45:25.382201 89345 apply.go:106] "creating object" name="kustomize-patch" resource="core.oam.dev/v1beta1, Kind=TraitDefinition"
I0111 21:45:25.411723 89345 apply.go:106] "creating object" name="kustomize" resource="core.oam.dev/v1beta1, Kind=ComponentDefinition"
I0111 21:45:25.625815 89345 apply.go:106] "creating object" name="kustomize-strategy-merge" resource="core.oam.dev/v1beta1, Kind=TraitDefinition"
I0111 21:45:25.660129 89345 apply.go:106] "creating object" name="component-uischema-helm" resource="/v1, Kind=ConfigMap"
Addon: fluxcd enabled Successfully.
```

You can also install addons with some advanced flags.

* Choose one specific version by adding `--version` flag in this command. eg:

```shell
vela addon enable fluxcd --version=1.0.0
```

* Choose specific clusters for installation. You can use `--cluster` flag to choose specific clusters. eg:

```shell
vela addon enable <addon-name> --clusters={cluster1,cluster2}
```

By default, the place for installation is specified as control plane cluster or managed cluster inside the metadata of addon.

### Discover the capabilities installed

Once addon installed, end user can discover and use these capabilities immediately.

* Generally, end user can list the new component or trait types added by `vela component` or `vela trait`. Refer to [Lifecycle of a Definition](../../getting-started/definition#lifecycle-of-a-definition) for more usage details.

* You can also check the capability details of [community addon docs](../../reference/addons/overview).

### Uninstall Addon

> Please make sure the addon along with its capabilities is no longer used in any of your applications before uninstalling it.
```shell
vela addon disable fluxcd
```

Expect output:
```
Successfully disable addon:fluxcd
```

### Manage Addon Registry

You can also manage the addon registries, such as adding/deleting your private addon registry.
Let's take the experimental community registry as example.

* List your current registries

```
$ vela addon registry list
Name Type URL
KubeVela helm https://addons.kubevela.net
```

* Add a new registry

```
$ vela addon registry add experimental --type=helm --endpoint=https://addons.kubevela.net/experimental/
Successfully add an addon registry experimental
```

* Delete one registry

```
$ vela addon registry delete experimental
Successfully delete an addon registry experimental
```

### Air-Gapped Installation for Addon

If your cluster network cannot request the community addon registry you can enable an addon with a local dir. eg:

```
$ ls
README.md fluxcd ocm-cluster-manager terraform terraform-alibaba terraform-aws terraform-azure velaux
$ vela addon enable velaux/
Addon: velaux enabled Successfully
```

Please notice that, while an addon installing cluster maybe still need pull some images or helm charts.If your cluster cannot reach these resources please refer [docs](../../platform-engineers/system-operation/enable-addon-offline) to do complete installation without internet.

### Manage the addon with VelaUX

If you have installed [VelaUX](../../reference/addons/velaux) which is also one of the addon, you can manage it directly on the UI console with admin privileges.

![addon list](https://static.kubevela.net/images/1.3/addon-list.jpg)

In the addon list, you can get the status of the addon and other info. Click the addon name could open the addon detail page, you can get the version list, definitions provided by the addon, and the readme message.

![addon detail](https://static.kubevela.net/images/1.3/addon-detail.jpg)

Select a version and deployed clusters, you can click the enable button to install this addon.

For enabled addons, if no applications to use definitions, you can click the disable button to uninstall it.


### Make your own addon

If you're a system infra or operator, you can refer to extension documents to learn how to [make your own addon and registry](../../platform-engineers/addon/intro), including [extend cloud resources by addon](../../platform-engineers/addon/terraform).

## Extend KubeVela as a Developer

If you're extremely interested in KubeVela, you can also extend more features as a developer.

- Read the [developer guide](../../contributor/overview) to learn how to contribute and extend capabilities for KubeVela.
- KubeVela use CUE as it's core engine, [learn CUE in KubeVela](../../platform-engineers/cue/basic) and try to extend with CUE configurations.
2 changes: 1 addition & 1 deletion docs/getting-started/definition.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ There're two sources of definitions:
- [Trait Definition](../end-user/traits/references)
- [Policy Definition](../end-user/policies/references)
- [Workflow Step Definition](../end-user/workflow/built-in-workflow-defs)
* Installation of addons will install definitions if there're new capabilities contained. You can refer to [the official addon registry](../reference/addons/overview) for more details.
* Installation of addons will install definitions if there're new capabilities contained. You can refer to [the community addon registry](../reference/addons/overview) for more details.

## Lifecycle of a Definition

Expand Down
124 changes: 1 addition & 123 deletions docs/how-to/cli/addon/addon.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,126 +2,4 @@
title: Addon management
---

You can get more capabilities from KubeVela ecosystem by installing addons.

## Manage the addon via UI

Users with addon management permissions can enter the addon management page to enable or disable addons.

![addon list](https://static.kubevela.net/images/1.3/addon-list.jpg)

In the addon list, you can get the status of the addon and other info. Click the addon name could open the addon detail page, you can get the version list, definitions provided by the addon, and the readme message.

![addon detail](https://static.kubevela.net/images/1.3/addon-detail.jpg)

Select a version and deployed clusters, you can click the enable button to install this addon.

For enabled addons, if no applications to use definitions, you can click the disable button to uninstall it.

## Manage the addon via CLI

### List Addons

By default, the following command lists addons from a default addon registry (https://addons.kubevela.net) maintained by KubeVela team.

This command will show all available versions of every addon.

```shell
$ vela addon list
NAME REGISTRY DESCRIPTION AVAILABLE-VERSIONS STATUS
ocm-gateway-manager-addon KubeVela ocm-gateway-manager-addon is the OCM addon automates the cluster-gateway apiserver. [1.3.2, 1.3.0, 1.1.11] disabled
rollout KubeVela Provides basic batch publishing capability. [1.3.0, 1.2.4, 1.2.3] disabled
terraform-baidu KubeVela Kubernetes Terraform Controller Provider for Baidu Cloud [1.0.1, 1.0.0] disabled
terraform-tencent KubeVela Kubernetes Terraform Controller Provider for Tencent Cloud [1.0.1, 1.0.0] disabled
model-serving KubeVela Enable serving for models [1.0.0] disabled
model-training KubeVela Enable training for models [1.0.0] disabled
terraform KubeVela Terraform Controller is a Kubernetes Controller for Terraform. [1.0.6] disabled
terraform-aws KubeVela Kubernetes Terraform Controller for AWS [1.0.1, 1.0.0] disabled
terraform-azure KubeVela Kubernetes Terraform Controller for Azure [1.0.1, 1.0.0] disabled
terraform-gcp KubeVela Kubernetes Terraform Controller Provider for Google Cloud Platform [1.0.1, 1.0.0] disabled
dex KubeVela Enable dex for login [0.6.5] disabled
ocm-hub-control-plane KubeVela ocm-hub-control-plane can install OCM hub control plane to the central cluster. [0.6.0] disabled
terraform-ucloud KubeVela Kubernetes Terraform Controller Provider for UCloud [1.0.1, 1.0.0] disabled
fluxcd KubeVela Extended workload to do continuous and progressive delivery [1.1.0, 1.0.0] disabled
velaux KubeVela KubeVela User Experience (UX). An extensible, application-oriented delivery and management Dashboard. [v1.3.0, v1.3.0-beta.2, 1.2.4] enabled (v1.3.0)
terraform-alibaba KubeVela Kubernetes Terraform Controller for Alibaba Cloud [1.0.2, 1.0.1] disabled
```

### Install Addon

```
$ vela addon enable fluxcd
I0111 21:45:24.553174 89345 apply.go:106] "creating object" name="addon-fluxcd" resource="core.oam.dev/v1beta1, Kind=Application"
I0111 21:45:25.258914 89345 apply.go:106] "creating object" name="helm" resource="core.oam.dev/v1beta1, Kind=ComponentDefinition"
I0111 21:45:25.342731 89345 apply.go:106] "creating object" name="kustomize-json-patch" resource="core.oam.dev/v1beta1, Kind=TraitDefinition"
I0111 21:45:25.382201 89345 apply.go:106] "creating object" name="kustomize-patch" resource="core.oam.dev/v1beta1, Kind=TraitDefinition"
I0111 21:45:25.411723 89345 apply.go:106] "creating object" name="kustomize" resource="core.oam.dev/v1beta1, Kind=ComponentDefinition"
I0111 21:45:25.625815 89345 apply.go:106] "creating object" name="kustomize-strategy-merge" resource="core.oam.dev/v1beta1, Kind=TraitDefinition"
I0111 21:45:25.660129 89345 apply.go:106] "creating object" name="component-uischema-helm" resource="/v1, Kind=ConfigMap"
Addon: fluxcd enabled Successfully.
```

#### Install with specified version

You can choose one special version of this addon by add `--version` flag in this command. eg:

```shell
vela addon enable fluxcd --version=1.0.0
```

By default, this command will install this addon in all managed-clusters.You can use `--cluster` flag to choose specific clusters. eg:

```shell
vela addon enable <addon-name> --clusters={cluster1,cluster2}
```

You can view the new component or trait types added by `vela component` or `vela trait`. You can also find more details about [built-in addon docs](../../../reference/addons/overview).

### Uninstall Addon

> Please make sure this addon along with the capabilities is no longer used in any of your applications.
```
$ vela addon disable fluxcd
Successfully disable addon:fluxcd
```

### List Registry

```
$ vela addon registry list
Name Type URL
KubeVela helm https://addons.kubevela.net
```

### Add Registry

```
$ vela addon registry add experimental --type=helm --endpoint=https://addons.kubevela.net/experimental/
Successfully add an addon registry experimental
```

### Delete Registry

```
$ vela addon registry delete experimental
Successfully delete an addon registry experimental
```

### Air-Gapped Installation for Addon

For some reason, if your cluster network cannot request the official addon registry you can enable an addon with a local dir. eg:

```
$ ls
README.md fluxcd ocm-cluster-manager terraform terraform-alibaba terraform-aws terraform-azure velaux
$ vela addon enable velaux/
Addon: velaux enabled Successfully
```

Please notice that, while a addon installing cluster maybe still need pull some images or helm charts.If your cluster cannot reach these resources please refer [docs](../../../platform-engineers/system-operation/enable-addon-offline) to do complete installation without Internet.

## Make your own addon

Refer to extension documents to learn how to [make your own addon and registry](../../../platform-engineers/addon/intro).
The docs are migrated to [user guide](../../../end-user/components/more).
Loading

0 comments on commit 9508a45

Please sign in to comment.