--- title: Installation --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; > For upgrading existing KubeVela, please read the [upgrade guide](./advanced-install#upgrade). ## 1. Choose Kubernetes Cluster Requirements: - Kubernetes cluster >= v1.15.0 - `kubectl` installed and configured KubeVela is a simple custom controller that can be installed on any Kubernetes cluster including managed offerings or your own clusters. The only requirement is please ensure [ingress-nginx](https://kubernetes.github.io/ingress-nginx/deploy/) is installed and enabled. For for local deployment and test, you could use `minikube` or `kind`. Follow the minikube [installation guide](https://minikube.sigs.k8s.io/docs/start/). Then spins up a minikube cluster ```shell script minikube start ``` Install ingress: ```shell script minikube addons enable ingress ``` Follow [this guide](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) to install kind. Then spins up a kind cluster: ```shell script cat < ## 2. Install KubeVela Controller 1. Add helm chart repo for KubeVela ```shell script helm repo add kubevela https://kubevelacharts.oss-cn-hangzhou.aliyuncs.com/core ``` 2. Update the chart repo ```shell script helm repo update ``` 3. Install KubeVela ```shell script helm install --create-namespace -n vela-system kubevela kubevela/vela-core ``` By default, it will enable the webhook with a self-signed certificate provided by [kube-webhook-certgen](https://github.com/jet/kube-webhook-certgen). You can also [install it with `cert-manager`](./advanced-install#install-kubevela-with-cert-manager). 4. Verify chart installed successfully ```shell script helm test kubevela -n vela-system ```
Click to see the expected output of helm test ```shell Pod kubevela-application-test pending Pod kubevela-application-test pending Pod kubevela-application-test running Pod kubevela-application-test succeeded NAME: kubevela LAST DEPLOYED: Tue Apr 13 18:42:20 2021 NAMESPACE: vela-system STATUS: deployed REVISION: 1 TEST SUITE: kubevela-application-test Last Started: Fri Apr 16 20:49:10 2021 Last Completed: Fri Apr 16 20:50:04 2021 Phase: Succeeded TEST SUITE: first-vela-app Last Started: Fri Apr 16 20:49:10 2021 Last Completed: Fri Apr 16 20:49:10 2021 Phase: Succeeded NOTES: Welcome to use the KubeVela! Enjoy your shipping application journey! ```
## 3. Get KubeVela CLI Using KubeVela CLI gives you a simplified workflow with optimized output comparing to using `kubectl`. It is not mandatory though. Here are three ways to get KubeVela Cli: ** macOS/Linux ** ```shell script curl -fsSl https://kubevela.io/script/install.sh | bash ``` **Windows** ```shell script powershell -Command "iwr -useb https://kubevela.io/script/install.ps1 | iex" ``` **macOS/Linux** Update your brew firstly. ```shell script brew update ``` Then install kubevela client. ```shell script brew install kubevela ``` - Download the latest `vela` binary from the [releases page](https://github.com/oam-dev/kubevela/releases). - Unpack the `vela` binary and add it to `$PATH` to get started. ```shell script sudo mv ./vela /usr/local/bin/vela ``` > Known Issue(https://github.com/oam-dev/kubevela/issues/625): > If you're using mac, it will report that “vela” cannot be opened because the developer cannot be verified. > > The new version of MacOS is stricter about running software you've downloaded that isn't signed with an Apple developer key. And we haven't supported that for KubeVela yet. > You can open your 'System Preference' -> 'Security & Privacy' -> General, click the 'Allow Anyway' to temporarily fix it. ## 4. Enable Helm Support KubeVela leverages Helm controller from [Flux v2](https://github.com/fluxcd/flux2) to deploy [Helm](https://helm.sh/) based components. You can enable this feature by installing a minimal Flux v2 chart as below: ```shell $ helm install --create-namespace -n flux-system helm-flux http://oam.dev/catalog/helm-flux2-0.1.0.tgz ``` Or you could install full Flux v2 following its own guide of course. ## 5. Verify Checking available application components and traits by `vela` CLI tool: ```shell script vela components ``` ```console NAME NAMESPACE WORKLOAD DESCRIPTION task vela-system jobs.batch Describes jobs that run code or a script to completion. webservice vela-system deployments.apps Describes long-running, scalable, containerized services that have a stable network endpoint to receive external network traffic from customers. worker vela-system deployments.apps Describes long-running, scalable, containerized services that running at backend. They do NOT have network endpoint to receive external network traffic. ``` These capabilities are built-in so they are ready to use if showed up. KubeVela is designed to be programmable and fully self-service, so the assumption is more capabilities will be added later per your own needs. Also, whenever new capabilities are added in the platform, you will immediately see them in above output. > See the [advanced installation guide](./advanced-install) to learn more about installation details.