You might want to package your logic for a wider audience (e.g. your users), or you might want to consume someone else’s logic. Kurtosis’ solution to this are “modules”, which are chunks of code, packaged as container images, that execute within the Kurtosis context. You can think of a module as a language-agnostic library.
To write your own module, visit the module starter pack repo.
Some hypothetical modules that could be built:
The most basic module is an executable module - a module that responds to exactly one command, “execute”. To make these easy to run, the Kurtosis CLI comes with the following command that will load an executable module and call its execute command:
kurtosis module exec EXECUTABLE_MODULE_IMAGE
You can run
kurtosis module exec -h for more detailed information about the flags that can be passed in.
The current modules we know about:
Under the covers, modules are:
The containerized nature of modules means that they can be written in your language of choice, and easily distributed via Dockerhub.
The API that a module must implement is defined in the module API lib.