This repo contains:
- Libraries in various languages for interacting with Kurtosis Core, which are used to write testsuites
- Example implementations of testsuites in each langauge
- Infrastructure for bootstrapping a new testsuite, that you can use to create your own customized testsuite
Prerequisites:
- A Kurtosis user account
git
installed on your machinedocker
installed on your machine
Quickstart steps:
- Clone this repo's
master
branch:git clone --single-branch --branch master [email protected]:kurtosis-tech/kurtosis-libs.git
- View the supported languages and choose the language you'd like your testsuite in
- Run
bootstrap/bootstrap.sh
and follow the helptext instructions to fill in the script arguments and bootstrap your repo - If you see error messages after running your new testsuite, check out the guide for debugging failed tests which contains solutions to common issues. If this still doesn't resolve your issue, feel free to ask for help in the Kurtosis Discord server
- If all tests are passing, you can proceed to customizing your testsuite.
Run scripts/release.sh
Prerequisites:
protoc
installed (can be installed on Mac withbrew install protobuf
)- The Golang extension to
protoc
installed (can be installed on Mac withbrew install protoc-gen-go
) - The Golang gRPC extension to
protoc
installed (can be installed on Mac withbrew install protoc-gen-go-grpc
) - rust-protobuf-binding-generator installed
NOTE: One day we want to push all the protobuf binding into Docker, so that the output doesn't depend on the developer's machine; see this issue for more details
Each library needs to talk with Kurtosis Core, and the Kurtosis Core API is defined via Protobuf. Rather than storing the Protobufs in Git submodules (which add significant complexity), the .proto
files are simply copied from the relevant version of Kurtosis Core. In the future, we can move to a more productized solution.
To regenerate the bindings corresponding to the Protobuf files, use the scripts/regenerate-protobuf-output.sh
script.