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.

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

Install kubevela with enabled certmanager:

  1. 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.

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

And try the following command to install it.

  1. helm install --create-namespace -n vela-system kubevela kubevela/vela-core --version <next_version>-rc-master --wait
  1. NAME: kubevela
  2. LAST DEPLOYED: Thu Apr 1 19:41:30 2021
  3. NAMESPACE: vela-system
  4. STATUS: deployed
  5. REVISION: 1
  6. NOTES:
  7. 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!

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

macOS/Linux

  1. curl -fsSl https://kubevela.io/script/install-kubectl-vela.sh | bash

You can also download the binary from release pages ( >= v1.0.3) manually. Kubectl will discover it from your system path automatically.

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:

  1. helm repo update
  2. helm search repo kubevela/vela-core -l

Step 2. Upgrade KubeVela CRDs

  1. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_appdeployments.yaml
  2. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_applicationcontexts.yaml
  3. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml
  4. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_applications.yaml
  5. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_approllouts.yaml
  6. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_clusters.yaml
  7. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_componentdefinitions.yaml
  8. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_containerizedworkloads.yaml
  9. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_definitionrevisions.yaml
  10. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_envbindings.yaml
  11. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_healthscopes.yaml
  12. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_initializers.yaml
  13. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_manualscalertraits.yaml
  14. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_policydefinitions.yaml
  15. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_resourcetrackers.yaml
  16. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_scopedefinitions.yaml
  17. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_traitdefinitions.yaml
  18. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_workflowstepdefinitions.yaml
  19. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/release-1.1/charts/vela-core/crds/core.oam.dev_workloaddefinitions.yaml
  20. kubectl apply -f https://raw.githubusercontent.com/oam-dev/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.

  1. kubectl delete crd \
  2. scopedefinitions.core.oam.dev \
  3. traitdefinitions.core.oam.dev \
  4. workloaddefinitions.core.oam.dev

Step 3. Upgrade KubeVela Helm chart

  1. 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(installed by default)-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
  1. vela addon list
  1. Install addons (use fluxcd as example)
  1. vela addon enable fluxcd
  1. Disable addons
  1. 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:

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

Verify that multi-cluster is enabled:

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

Clean Up

Run:

  1. helm uninstall -n vela-system kubevela
  2. 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):

  1. kubectl delete crd \
  2. appdeployments.core.oam.dev \
  3. applicationconfigurations.core.oam.dev \
  4. applicationcontexts.core.oam.dev \
  5. applicationrevisions.core.oam.dev \
  6. applications.core.oam.dev \
  7. approllouts.core.oam.dev \
  8. clusters.core.oam.dev \
  9. componentdefinitions.core.oam.dev \
  10. components.core.oam.dev \
  11. containerizedworkloads.core.oam.dev \
  12. definitionrevisions.core.oam.dev \
  13. envbindings.core.oam.dev \
  14. healthscopes.core.oam.dev \
  15. initializers.core.oam.dev \
  16. manualscalertraits.core.oam.dev \
  17. podspecworkloads.standard.oam.dev \
  18. policydefinitions.core.oam.dev \
  19. resourcetrackers.core.oam.dev \
  20. rollouts.standard.oam.dev \
  21. rollouttraits.standard.oam.dev \
  22. scopedefinitions.core.oam.dev \
  23. traitdefinitions.core.oam.dev \
  24. workflows.core.oam.dev \
  25. workflowstepdefinitions.core.oam.dev \
  26. workloaddefinitions.core.oam.dev