Skip to content

Running and managing Wasm(actors) and capability providers in Kubernetes

Notifications You must be signed in to change notification settings

wasmCloud/kasmcloud

Repository files navigation

KasmCloud

Managing and Running Actors, Providers, and Links in Kubernetes

⚠️Warning

This is a contributor-led experimental project and is not recommended to run in production at this time.

With each tag, it works fine, but there may be incompatible changes between tags.

Design

Combining WasmCloud with Kubernetes

Quick Start

  1. Deploy Nats
helm repo add nats https://nats-io.github.io/k8s/helm/charts/
helm repo update
helm upgrade --install kasmcloud-nats nats/nats
  1. Deploy KasmCloud CRDs and Webhook Server
kubectl apply -f ./deploy/crds
kubectl apply -f ./deploy/webhook
  1. Deploy KasmCloud Host
kubectl apply -f ./deploy/kasmcloud_host_rbac.yaml

# Deploy Default KasmCloud Host
kubectl apply -f ./deploy/kasmcloud_host_default.yaml

# [Optional] You can also deploy KasmCloud Host in each Kubernetes node.
kubectl apply -f ./deploy/kasmcloud_host_daemonset.yaml

# [Optional] You can also deploy as many temporary hosts as you want
# and change the number of temporary hosts by scaling the Deployment
kubectl apply -f ./deploy/kasmcloud_host_deployment.yaml
  1. Deploy Actor, Link and Provider Sample
kubectl apply -f ./sample.yaml

kubectl get kasmcloud
OUTPUT:
NAME                              DESC   PUBLICKEY                                                  REPLICAS   AVAILABLEREPLICAS   CAPS                                                   IMAGE
actor.kasmcloud.io/echo-default   Echo   MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5   10         10                  ["wasmcloud:httpserver","wasmcloud:builtin:logging"]   wasmcloud.azurecr.io/echo:0.3.8

NAME                                CONTRACTID             LINK   ACTORYKEY                                                  PROVIDERKEY
link.kasmcloud.io/httpserver-echo   wasmcloud:httpserver   test   MBCFOPM6JW2APJLXJD3Z5O4CN7CPYJ2B4FTKLJUR5YR5MITIU7HD3WD5   VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M

NAME                                       DESC          PUBLICKEY                                                  LINK   CONTRACTID             IMAGE
provider.kasmcloud.io/httpserver-default   HTTP Server   VAG3QITQQ2ODAOWB5TTQSDJ53XK3SHBEIFNK4AYJ5RKAX2UNSCAPHA5M   test   wasmcloud:httpserver   ghcr.io/iceber/wasmcloud/httpserver:0.17.0-index
  1. curl echo server
# other terminal
kubectl port-forward pod/kasmcloud-host-default 8080:8080

curl 127.0.0.1:8080
{"body":[],"method":"GET","path":"/","query_string":""}

RoadMap

  • Add KasmCloudHost resource
  • Add status information for the resource
  • Add Kasmcloud Repeater module
  • Add rolling updates for Actor
  • Add DaemonSet deployment for Actor
  • Blue/Green Deployment for Actors and Providers

About

Running and managing Wasm(actors) and capability providers in Kubernetes

Resources

Stars

Watchers

Forks

Packages

No packages published