Kurtosis is a platform for running whole-system tests against distributed systems with the frequency and repeatability of unit tests.
For Q&A, head over to the Kurtosis Discord server.
The world is moving to microservices and systems are becoming increasingly complex. The more components a system has, the more emergent phenomena and unexpected outlier events that occur. More components equal more difficulty running a representative system, and more corners cut when testing. If nothing is done, testing will continue to decline and unpredictability will continue to rise. Engineers need a new tool to tame the complexity of the distributed age, that marries the ease and safety of unit tests with the representativeness of testing in production. Kurtosis is that tool.
Kurtosis will create several Docker volumes during the course of normal operation. These are intentionally not deleted after testsuite execution finishes, so that you can explore the volumes for debugging information. This means Docker volumes will slowly accumulate on your system, and you’ll want to periodically clear them out. To do so, you can use
docker volume ls to view existing volumes and identify the ones you’d like to remove, then
docker volume rm THE_VOLUME_ID to remove them.
Much like Docker volumes, Kurtosis will create Docker containers on your system but won’t delete them so it doesn’t destroy debugging information. This means you’ll also need to clear these out periodically. You can use
docker container ls -a to view all containers (including stopped ones), and
docker container rm THE_CONTAINER_ID to remove the ones you’d prefer to get rid of.
A handy tip to stop all running containers of a certain image (replace
YOUR-IMAGE-NAME with the name of the image of the containers you want to remove):
docker container ls # See which Docker containers are left around - these will depend on the containers spun up docker stop $(docker ps -a --quiet --filter ancestor="YOUR-IMAGE-NAME" --format="")