Skip to content

Instantly share code, notes, and snippets.

@0xE282B0
Last active September 13, 2023 12:23
Show Gist options
  • Save 0xE282B0/1854ad6ed7ddaf4ad7d3032397056a38 to your computer and use it in GitHub Desktop.
Save 0xE282B0/1854ad6ed7ddaf4ad7d3032397056a38 to your computer and use it in GitHub Desktop.
KWasm Installer 0.3.0 Test Case

A test consists of three sections cluster setup, test setup, and test result.

Template

Prerequiusits

  • Docker
  • Kind
  • Kubectl
  • Helm

Setup cluster

# Crate cluster
kind create cluster --image kindest/node:v1.28.0

# Install with 0.3.0-pre installer
helm repo add kwasm http://kwasm.sh/kwasm-operator/ --force-update
helm repo update
helm upgrade --install -n kwasm --create-namespace kwasm-operator kwasm/kwasm-operator \
  --set kwasmOperator.autoProvision="true" \
  --set kwasmOperator.installerImage="ghcr.io/kwasm/kwasm-node-installer:pr-42"

Test execution

kubectl apply -f https://gist.githubusercontent.com/0xE282B0/1854ad6ed7ddaf4ad7d3032397056a38/raw/937c56555532d8f7dadedc9405c6764f3133073e/runtimeclass.yaml
kubectl apply -f https://gist.githubusercontent.com/0xE282B0/1854ad6ed7ddaf4ad7d3032397056a38/raw/937c56555532d8f7dadedc9405c6764f3133073e/workload.yaml

Test results

❯ kubectl get pod 
NAME                             READY   STATUS        RESTARTS   AGE
lunatic-demo-6475554875-5k9bf    2/2     Running       0          2m49s
wasm-slight-6467bcc5bc-5kd4k     2/2     Running       0          2m49s
wasm-spin-74c4cf5c77-smvzp       2/2     Running       0          2m49s
wasm-wws-888f6bc4b-f2nfj         2/2     Running       0          2m48s
wasmedge-demo-5ff758d79-fszsk    2/2     Running       0          2m49s
wasmer-demo-857f947cb7-lj467     2/2     Running       0          2m49s
wasmtime-demo-56c78ddd95-wkcsz   2/2     Running       0          2m49s
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: lunatic
handler: lunatic
---
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: slight
handler: slight
---
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: spin
handler: spin
---
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: wws
handler: wws
---
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: wasmedge
handler: wasmedge
---
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: wasmer
handler: wasmer
---
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: wasmtime
handler: wasmtime
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasmedge-demo
labels:
app: wasmedge-demo
spec:
replicas: 1
selector:
matchLabels:
app: wasmedge-demo
template:
metadata:
labels:
app: wasmedge-demo
spec:
runtimeClassName: wasmedge
containers:
- name: demo
image: 0xe282b0/wasi-demo-app
- name: nginx
image: docker.io/nginx:latest
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasmer-demo
labels:
app: wasmer-demo
spec:
replicas: 1
selector:
matchLabels:
app: wasmer-demo
template:
metadata:
labels:
app: wasmer-demo
spec:
runtimeClassName: wasmer
containers:
- name: demo
image: 0xe282b0/wasi-demo-app
- name: nginx
image: docker.io/nginx:latest
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasmtime-demo
labels:
app: wasmtime-demo
spec:
replicas: 1
selector:
matchLabels:
app: wasmtime-demo
template:
metadata:
labels:
app: wasmtime-demo
spec:
runtimeClassName: wasmtime
containers:
- name: demo
image: 0xe282b0/wasi-demo-app
- name: nginx
image: docker.io/nginx:latest
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lunatic-demo
labels:
app: lunatic-demo
spec:
replicas: 1
selector:
matchLabels:
app: lunatic-demo
template:
metadata:
labels:
app: lunatic-demo
spec:
runtimeClassName: lunatic
containers:
- name: demo
image: 0xe282b0/wasi-demo-app
- name: nginx
image: docker.io/nginx:latest
ports:
- containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasm-spin
spec:
replicas: 1
selector:
matchLabels:
app: wasm-spin
template:
metadata:
labels:
app: wasm-spin
spec:
runtimeClassName: spin
containers:
- name: spin-hello
image: ghcr.io/deislabs/containerd-wasm-shims/examples/spin-rust-hello:latest
command: ["/"]
- name: redis
image: redis
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasm-slight
spec:
replicas: 1
selector:
matchLabels:
app: wasm-slight
template:
metadata:
labels:
app: wasm-slight
spec:
runtimeClassName: slight
containers:
- name: slight-hello
image: ghcr.io/deislabs/containerd-wasm-shims/examples/slight-rust-hello:latest
command: ["/"]
- name: redis
image: redis
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasm-wws
spec:
replicas: 1
selector:
matchLabels:
app: wasm-wws
template:
metadata:
labels:
app: wasm-wws
spec:
runtimeClassName: wws
containers:
- name: wws-hello
image: ghcr.io/deislabs/containerd-wasm-shims/examples/wws-js-hello:latest
command: ["/"]
- name: redis
image: redis
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment