Runner
The runner
is a utility for running various jobs to initialize the network and run workloads against it.
Currently the runner provides two utilites:
- Bootstrap nodes
- Run simulations
If you intend to develop either of these features you will need to build the runner image and configure your network or simulation to use your local image.
Build and Load the Runner Image
The runner
is a utility for running various jobs to initialize the network and run workloads against it.
Any changes to the runner require that you rebuild it and load it into kind again.
docker buildx build --load -t keramik/runner:dev --target runner .
kind load docker-image keramik/runner:dev
Setup network with Runner Image
To use a custom runner image when you setup your network, you will need to adjust the yaml you use to specify how to bootstrap the runner.
# small.yaml
---
apiVersion: "keramik.3box.io/v1alpha1"
kind: Network
metadata:
name: small
spec:
replicas: 2
# Use custom runner image for bootstrapping
bootstrap:
image: keramik/runner:dev
imagePullPolicy: IfNotPresent
Setup simulation with Runner Image
You will also need to specify the image in your simulation yaml.
# Custom runner
---
apiVersion: "keramik.3box.io/v1alpha1"
kind: Simulation
metadata:
name: basic
namespace: keramik-small
spec:
scenario: ceramic-simple
users: 10
runTime: 4
image: keramik/runner:dev
imagePullPolicy: IfNotPresent
Setup Load Generator with the runner image
# Custom load generator
---
apiVersion: "keramik.3box.io/v1alpha1"
kind: LoadGenerator
metadata:
name: load-gen
namespace: keramik-lgen-demo
spec:
scenario: "CreateModelInstancesSynced"
runTime: 3
image: "keramik/runner:dev"
imagePullPolicy: "IfNotPresent"
throttleRequests: 20
tasks: 2