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!
- Krew
- Script
- Install and set up Krew on your machine.
- Discover plugins available on Krew:
kubectl krew update
- install kubectl vela:
kubectl krew install vela
macOS/Linux
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:
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
Name | Description | capability | Open Source Project Reference |
---|---|---|---|
terraform | Basic addon to Provide Cloud Resources | - | https://github.com/oam-dev/terraform-controller |
fluxcd | Support Deployment of Helm and Kustomize components | kustomize、helm | https://fluxcd.io/ |
kruise | Support more powerful workload feature | cloneset | https://openkruise.io/ |
prometheus | Support basic observability from Promethus | - | https://prometheus.io/ |
keda | Support event driven auto scaling | - | https://keda.sh/ |
ocm | Support Multi-cluster Application Deployment | - | http://open-cluster-management.io/ |
observability | Support KubeVela core observability | - | - |
- Search all addons
vela addon list
- Install addons (use fluxcd as example)
vela addon enable fluxcd
- 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