Getting Started
This guide deploys Logic Operator on a local KIND cluster and runs the hello-world sample workflow end-to-end.
1. Clone the repository
git clone https://github.com/kubesmarts/logic-operator.git
cd logic-operator
2. Create a KIND cluster
make kind-create
This creates a local Kubernetes cluster with:
-
cert-manager (required for admission webhooks)
-
ingress-nginx (for
*.lvh.merouting)
3. Deploy the operator
make kind-deploy
This builds the operator image, loads it into KIND, and applies all manifests (CRDs, RBAC, Deployments, webhooks).
|
If the next step fails immediately with a webhook error, the cert-manager certificate is still being issued. Wait for the operator pod to be ready, then retry:
|
4. Apply the hello-world sample
make kind-demo
This creates a LogicFlowRuntime, a LogicFlowDefinition (the hello-world workflow), and a LogicFlowService in the default namespace.
Verify everything is ready:
kubectl get logicflowruntimes,logicflowdefinitions,logicflowservices
Expected output:
NAME PHASE REPLICAS READY
logicflowruntime.logic.kubesmarts.org/hello-runtime Ready 1 1
NAME WORKFLOW VERSION
logicflowdefinition.logic.kubesmarts.org/hello-world-v1-0-0 hello-world 1.0.0
NAME HOST URL
logicflowservice.logic.kubesmarts.org/hello-world hello.lvh.me http://hello.lvh.me/
5. Invoke the workflow
curl -X POST http://hello.lvh.me/q/flow/exec/default/hello-world/1.0.0 \
-H "Content-Type: application/json" \
-d '{"input": {"name": "world"}}'
The runner responds with the new workflow instance:
{
"instanceId": "01M0GC81PBCYD3X6E2SHJZ64V2",
"status": "RUNNING",
"startedAt": "2026-08-20T19:58:22.351417832Z"
}