Skip to main content
Version: v2

Install wasmCloud

Install the parts of the wasmCloud platform that you need depending on what you want to accomplish:

Install wash

In your terminal, run the installation script to download and install the latest version of wash (2.0.3):

shell
curl -fsSL https://wasmcloud.com/sh | bash

The script installs wash to ~/.wash/bin and automatically updates your shell profile. Open a new terminal session to use wash.

Customizing the install location

To install to a different directory, set INSTALL_DIR:

shell
curl -fsSL https://wasmcloud.com/sh | INSTALL_DIR=/usr/local/bin bash

To skip automatic PATH modification (for example, if you manage your own dotfiles):

shell
curl -fsSL https://wasmcloud.com/sh -o install.sh && bash install.sh --no-modify-path

Verify that wash is properly installed and check your version for 2.0.3 with:

bash
wash -V

Now that wash is installed, the next step is to build and publish a Wasm application.

Install wasmCloud on Kubernetes

Installation requires the following tools:

You'll also need a Kubernetes environment. We recommend kind for the best local Kubernetes experience.

Local Kubernetes environment

You can use the one-liner below to start a kind cluster with a configuration from the wasmCloud/wasmCloud repository.

shell
curl -fLO https://raw.githubusercontent.com/wasmCloud/wasmCloud/refs/heads/main/deploy/kind/kind-config.yaml && kind create cluster --config=kind-config.yaml && rm kind-config.yaml

Install the wasmCloud operator

Use Helm to install the wasmCloud operator from an OCI chart image, using the values for local installation. The overlay disables the deprecated Runtime Gateway by default — HTTP traffic is routed by the operator via EndpointSlices tied to standard Kubernetes Services:

shell
helm install wasmcloud --version 2.0.3 oci://ghcr.io/wasmcloud/charts/runtime-operator \
  -f https://raw.githubusercontent.com/wasmCloud/wasmCloud/refs/heads/main/charts/runtime-operator/values.local.yaml

Verify the deployment:

shell
kubectl get pods -l app.kubernetes.io/instance=wasmcloud -n default

Once all pods are running, you're ready to deploy a Wasm workload.

Deploy a Wasm workload

Apply the wasmCloud-hosted manifest, which contains a NodePort Service and a WorkloadDeployment that references it by name. The operator creates an EndpointSlice for the Service pointing at the host pods running the workload, so the NodePort on port 30950 (mapped to host port 80 by the kind cluster config) reaches the component directly:

shell
kubectl apply -f https://raw.githubusercontent.com/wasmCloud/wasmCloud/refs/heads/main/examples/http-hello-world/manifests/workloaddeployment.yaml

Use curl to invoke the Wasm workload with an HTTP request:

shell
curl localhost -i
text
Hello from wasmCloud!

For more information on each of these steps, see Kubernetes Operator.

Clean up

Delete the workload deployment and its Service:

shell
kubectl delete workloaddeployment hello-world
kubectl delete service hello-world

Uninstall wasmCloud:

shell
helm uninstall wasmcloud

Delete the local Kubernetes environment:

shell
kind delete cluster

Next steps