Skip to main content
Version: v1.1

Custom Installation

Install KubeVela with cert-manager

By default, KubeVela will use a self-signed certificate provided by kube-webhook-certgen for admissionWebhooks. You can also use cert-manager if it's available. Note that you need to install cert-manager before the KubeVela chart.

helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager --namespace cert-manager --version v1.2.0 --create-namespace --set installCRDs=true

Install kubevela with enabled certmanager:

helm install --create-namespace -n vela-system --set admissionWebhooks.certManager.enabled=true kubevela kubevela/vela-core --wait

Install Pre-release

Add flag --devel in command helm search to choose a pre-release version in format <next_version>-rc-master. It means a release candidate version build on master branch, such as 0.4.0-rc-master.

helm search repo kubevela/vela-core -l --devel
    NAME                      CHART VERSION         APP VERSION           DESCRIPTION
kubevela/vela-core 0.4.0-rc-master 0.4.0-rc-master A Helm chart for KubeVela core
kubevela/vela-core 0.3.2 0.3.2 A Helm chart for KubeVela core
kubevela/vela-core 0.3.1 0.3.1 A Helm chart for KubeVela core

And try the following command to install it.

helm install --create-namespace -n vela-system kubevela kubevela/vela-core --version <next_version>-rc-master --wait
NAME: kubevela
LAST DEPLOYED: Thu Apr 1 19:41:30 2021
NAMESPACE: vela-system
STATUS: deployed
REVISION: 1
NOTES:
Welcome to use the KubeVela! Enjoy your shipping application journey!

Install Kubectl Vela Plugin

Install vela kubectl plugin can help you to ship applications more easily!

  1. Install and set up Krew on your machine.
  2. Discover plugins available on Krew:
kubectl krew update
  1. install kubectl vela:
kubectl krew install vela

For more usage please reference kubectl plugin.

Upgrade

Step 1. Update Helm repo

You can explore the newly released chart versions of KubeVela by run:

helm repo update
helm search repo kubevela/vela-core -l

Step 2. Upgrade KubeVela CRDs

kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_appdeployments.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_applications.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_approllouts.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_clusters.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_definitionrevisions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_envbindings.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_healthscopes.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_manualscalertraits.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_policydefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_resourcetrackers.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_scopedefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_traitdefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_workflowstepdefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml
kubectl apply -f https://raw.githubusercontent.com/kubevela/kubevela/release-1.1/charts/vela-core/crds/standard.oam.dev_rollouts.yaml

Tips: If you see errors like * is invalid: spec.scope: Invalid value: "Namespaced": filed is immutable. Please delete the CRD which reports error and re-apply the kubevela crds.

 kubectl delete crd \
scopedefinitions.core.oam.dev \
traitdefinitions.core.oam.dev \
workloaddefinitions.core.oam.dev

Step 3. Upgrade KubeVela Helm chart

helm upgrade --install --create-namespace --namespace vela-system  kubevela kubevela/vela-core --version <the_new_version> --wait

Addons

NameDescriptioncapabilityOpen Source Project Reference
terraformBasic addon to Provide Cloud Resources-https://github.com/oam-dev/terraform-controller
fluxcdSupport Deployment of Helm and Kustomize componentskustomize、helmhttps://fluxcd.io/
kruiseSupport more powerful workload featureclonesethttps://openkruise.io/
prometheusSupport basic observability from Promethus-https://prometheus.io/
kedaSupport event driven auto scaling-https://keda.sh/
ocmSupport Multi-cluster Application Deployment-http://open-cluster-management.io/
observabilitySupport KubeVela core observability--
  1. Search all addons
vela addon list
  1. Install addons (use fluxcd as example)
vela addon enable fluxcd
  1. Disable addons
vela addon disable fluxcd

Please remove all application using this addon before disable it.

Multi-Cluster Management

KubeVela can orchestrate applications across multiple Kubernetes clusters. This capability is enabled by default, but you can enable it manually by running the following command:

helm upgrade --install kubevela kubevela/vela-core -n vela-system --set multicluster.enabled=true --create-namespace --wait

Verify that multi-cluster is enabled:

> kubectl get APIService v1alpha1.cluster.core.oam.dev
NAME SERVICE AVAILABLE AGE
v1alpha1.cluster.core.oam.dev vela-system/kubevela-cluster-gateway-service True 7h40m

Clean Up

Run:

helm uninstall -n vela-system kubevela
rm -r ~/.vela

This will uninstall KubeVela server component and its dependency components. This also cleans up local CLI cache.

Then clean up CRDs (CRDs are not removed via helm by default):

 kubectl delete crd \
appdeployments.core.oam.dev \
applicationconfigurations.core.oam.dev \
applicationcontexts.core.oam.dev \
applicationrevisions.core.oam.dev \
applications.core.oam.dev \
approllouts.core.oam.dev \
clusters.core.oam.dev \
componentdefinitions.core.oam.dev \
components.core.oam.dev \
containerizedworkloads.core.oam.dev \
definitionrevisions.core.oam.dev \
envbindings.core.oam.dev \
healthscopes.core.oam.dev \
initializers.core.oam.dev \
manualscalertraits.core.oam.dev \
podspecworkloads.standard.oam.dev \
policydefinitions.core.oam.dev \
resourcetrackers.core.oam.dev \
rollouts.standard.oam.dev \
rollouttraits.standard.oam.dev \
scopedefinitions.core.oam.dev \
traitdefinitions.core.oam.dev \
workflows.core.oam.dev \
workflowstepdefinitions.core.oam.dev \
workloaddefinitions.core.oam.dev