Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kubevela/catalog
Catalog of community maintained components and traits.
https://github.com/kubevela/catalog
addon
Last synced: 8 days ago
JSON representation
Catalog of community maintained components and traits.
- Host: GitHub
- URL: https://github.com/kubevela/catalog
- Owner: kubevela
- License: apache-2.0
- Created: 2020-05-26T03:15:20.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-17T15:02:30.000Z (4 months ago)
- Last Synced: 2024-07-17T18:31:51.310Z (4 months ago)
- Topics: addon
- Language: CUE
- Homepage:
- Size: 11.2 MB
- Stars: 149
- Watchers: 12
- Forks: 139
- Open Issues: 52
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-cue - kubevela-catalog - KubeVela Catalog of community maintained components and traits. (Projects)
README
# KubeVela Catalog
KubeVela is a modern software delivery control plane to make deploying and operating applications across today's hybrid, multi-cloud environments easier, faster and more reliable.
One of the core goals of KubeVela is to build an open, inclusive, and vibrant OSS developer community focused on solving real-world application delivery and operation problems, sharing the reusable building blocks and best practices.
Here's the catalog of the shared resources, we called them `addon`.
## Introduction
This repo is a catalog of [addons](https://kubevela.io/docs/reference/addons/overview) which extend the capability of KubeVela control plane. Generally, an addon consists of Kubernetes CRD and corresponding [X-definition](https://kubevela.net/docs/getting-started/definition), but none of them is necessary. For example, the [fluxcd](addons/fluxcd) addon consists of FluxCD controller and the `helm` component definition, while [VelaUX](addons/velaux) just deploy a web server without any CRD or Definitions.
There're basically two kinds of addons according to maturity. They're [verified addons](./addons) which have been tested for a long time can be used in product environment and [experimental addons](experimental/addons) which contain new features but still need more verification.
Community users can install and use these addons by the following way:
* [Verified Addons](/addons): when a pull request merged, the changes of these addon will be automatically packaged and synced to the OSS bucket, and serving in the [official addon registry](https://addons.kubevela.net). This will be displayed in vela CLI by `vela addon list` or VelaUX as follows.
![image](https://user-images.githubusercontent.com/2173670/160372119-3e62044c-ce93-428d-9681-a91f0742bbaf.png)* [Experimental Addons](/experimental/addons): the experimental addons will also be packaged and synced to the OSS bucket automatically, but in the `experimental` folder, you need to add the experimental registry manually to use it.
```
vela addon registry add experimental --type=helm --endpoint=https://addons.kubevela.net/experimental/
```![image](https://user-images.githubusercontent.com/2173670/160373204-80e74587-606c-4522-9802-11d4f572450b.png)
## How to use
> The https://addons.kubevela.net will be deprecated and changed to https://kubevela.github.io/catalog/official.
> You can run the following command to set up the new registry.
> ```shell
> vela addon registry delete KubeVela
> vela addon registry update KubeVela --type helm --endpoint=https://kubevela.github.io/catalog/official
> vela addon registry add experimental --type helm --endpoint=https://kubevela.github.io/catalog/experimental
> ```You can enable these addons by vela command line by:
```
vela addon enable
vela addon enable experimental/
```You can also enable addons by click the page on VelaUX.
Please refer to [doc](https://kubevela.io/docs/reference/addons/overview) for more infos.
## History versions
All versions of addons will be reserved in the OSS bucket, you can check the old versions and download in this page: https://addons.kubevela.net/index.yaml.
## Create an addon
To create an addon, you can use the following command to create an addon scaffold:
```
vela addon init
```The best way to learn how to build an addon is follow existing examples:
- Addons consist of CRD controllers as helm chart, refer to [keda](./addons/keda/), [kruise-rollout](./addons/kruise-rollout/) or [trivy-operator](./addons/trivy-operator/) as examples.
- Addons consist of CRD controllers as a bunch of YAML files, refer to [vela-workflow](./addons/vela-workflow/)(written in CUE), [argocd](./experimental/addons/argocd/)(just YAMLs) and [clickhouse](./experimental/addons/clickhouse/)(reference URL) as examples.
- Addons consist of container images, refer to [vela](./addons/velaux/) and [backstage](./experimental/addons/backstage/) as examples.You can refer [this doc](https://kubevela.io/docs/platform-engineers/addon/intro) to learn all details of how to make an addon and the mechanism behind it.
## Contribute an addon
All contributions are welcome, just send a pull request to this repo following the below rules:
- A new addon should be accepted as experimental one first with the following necessary information:
- An accessible icon url and source url defined in addon's `metadata.yaml`.
- A detail introduction include a basic example about how to use and what's the benefit of this addon in `README.md`.
- It's more likely to be accepted if useful examples are provided in example [dir](examples/).- An experimental addon must meet these conditions to be promoted as a verified one.
- This addon must be tested by addon's [e2e-test](./test/e2e-test/addon-test) to guarantee this addon can be enabled successfully.
- Provide an introduction in KubeVela [official addon documentation](https://kubevela.io/docs/reference/addons/overview).- If you come across with any addon problems, feel free to raise a github issue or just send pull requests to fix them. Please make sure to update the addon version in your pull request.
## CommunityWelcome to KubeVela community for discussion, please refer to [the community repo](https://github.com/kubevela/community).