v1.8.0
We're excited to release KubeVela v1.8 here. Thanks great work from all contributors!
In this release, we focus on several new key features and enhancements on performance, integrations, automatic application delivery, etc.
Highlight features of KubeVela v1.8
Controller Sharding
In KubeVela v1.8 we support Controller Sharding which allows users to deploy multiple KubeVela's core controllers in one single control plane and let them work all together. This means KubeVela users now can make horizontal scaling to their KubeVela control plane which can be used to address various issues, such as
- Multi-tenancy fairness for processing applications.
- Isolation to potential failures.
- Scaling out without touching existing system.
Stability and scalability assessment
In KubeVela v1.8, we verified the performance of the core control plane of KubeVela under various stress cases. We released a comparatively comprehensive reports on CNCF blog which shows that KubeVela is able to handle a certain amount of applications with limited resources and also capable of holding over 400k applications with proper scaling configurations.
The report not only includes guides for how to do load testing for KubeVela but also discusses the potential performance bottlenecks and corresponding solutions. In v1.8, we made several performance enhancements which reduce both the memory consumption but also the network traffic.
Automatic SDK generation
Writing KubeVela application through programming languages, like Go or Java can be a bit laborious. In KubeVela v1.8, we support generating language-aware SDK from existing KubeVela definitions, like ComponentDefinition or WorkflowStepDefinition, which allows developers to integrate KubeVela with other projects more easily and readability.
KubeTrigger
kube-trigger is a workflow based trigger that combines listeners, filter events and action triggers in a programmable way with CUElang. It can be deployed with other KubeVela tools or as a single standalone program. With the trigger, you can make your integrated system to be able to respond to latest events in time.
Automatic Canary Rollout
KubeVela v1.8 integrates more with kruise-rollout which allows application developers to orchestrate their delivery process in the canary release style. You can use it with both the Vela CLI and VelaUX. Not only replicas can be controlled in fine-grained but also the network traffic can be adjusted along the canary process. The declarative way gives simple but clear use experiences for users to customize their canary delivery process.
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: canary-demo
annotations:
app.oam.dev/publishVersion: v2
spec:
components:
- name: canary-demo
type: webservice
properties:
image: wangyikewyk/canarydemo:v2
ports:
- port: 8090
traits:
- type: scaler
properties:
replicas: 5
- type: gateway
properties:
domain: canary-demo.com
http:
"/version": 8090
workflow:
steps:
- type: canary-deploy
name: rollout-20
properties:
weight: 20
- name: suspend-1st
type: suspend
- type: canary-deploy
name: rollout-50
properties:
weight: 50
- name: suspend-2nd
type: suspend
- type: canary-deploy
name: rollout-100
properties:
weight: 100
How to install
Install Vela Core by Using Vela CLI
curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.8.0
vela install -v 1.8.0
Install Vela Core by Using Helm:
helm repo add kubevela https://charts.kubevela.net/core
helm repo update
helm install --create-namespace -n vela-system kubevela kubevela/vela-core --version 1.8.0 --wait
Install VelaUX addon
vela addon enable velaux --version=v1.8.0
How to upgrade from old version?
Refer to the docs( https://kubevela.net/docs/platform-engineers/system-operation/migration-from-old-version ) if you're migrating from older versions.
Upgrade by using Vela CLI
The install command will also handle the upgrade automatically:
curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.8.0
vela install -v 1.8.0 -r
Upgrade by using Helm
- Upgrade the CRDs, please make sure you upgrade the CRDs first before upgrade the helm chart.
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.8/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.8/charts/vela-core/crds/core.oam.dev_applications.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.8/charts/vela-core/crds/core.oam.dev_resourcetrackers.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.8/charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.8/charts/vela-core/crds/core.oam.dev_definitionrevisions.yaml
- Upgrade your kubevela chart
helm repo add kubevela https://charts.kubevela.net/core
helm repo update
helm upgrade -n vela-system --install kubevela kubevela/vela-core --version 1.8.0 --wait
- Download the new CLI and enable velaux
curl -fsSl https://kubevela.io/script/install.sh | bash -s 1.8.0
vela addon enable velaux
Upgrade VelaUX
vela addon upgrade velaux --version=v1.8.0
New Contributors
- @hnd4r7 made their first contribution in #5295
- @Xunzhuo made their first contribution in #5304
- @girishramnani made their first contribution in #5321
- @ThuWangzw made their first contribution in #5332
- @previousdeveloper made their first contribution in #5346
- @nisiyong made their first contribution in #5345
- @fengshunli made their first contribution in #5388
- @huaxk made their first contribution in #5413
- @0xquark made their first contribution in #5376
- @yueyongyue made their first contribution in #5424
- @vlameiras made their first contribution in #5480
- @afzalbin64 made their first contribution in #5468
- @ramekris3163 made their first contribution in #5550
- @zhanghw0354 made their first contribution in #5537
- @caiqi1111 made their first contribution in #5535
- @msun1996 made their first contribution in #5568
- @frank-zsy made their first contribution in #5581
Full Changelog: v1.7.7...v1.8.0