Skip to main content

Basic Concepts

Package

A package defines the set up logic for a containerized backend. Packages can be accessed via Github locators.

kurtosis run github.com/kurtosis-tech/basic-service-package

Packages can accept a set of parameters, defined by the package author, which enable the package consumer to modify their deployed backend at a high-level without needing to know how to configure each individual service.

kurtosis run github.com/kurtosis-tech/basic-service-package \
'{"service_a_count": 2,
"service_b_count": 2,
"service_c_count": 1,
"party_mode": true}'

Enclave

An enclave is a "walled garden" in which Kurtosis runs a containerized backend. Enclaves can run anywhere that you have a Docker engine or a Kubernetes cluster. The main purposes of an enclave are resource isolation and "garbage collection".

With an "enclave remove" command (kurtosis enclave rm), you can destroy all of the resources used to set up your environment and leave nothing hanging around on your machine(s).

Files Artifact

A files artifact is a set of files shipped with, or generated by, a package. Files artifacts are typically used for rendering configuration files that must be dynamically generated when an environment spins up, or for shipping static configuration files that must be shared across multiple services.

When you run a package, you can see the files artifacts that the package uses in the enclave output:

kurtosis run github.com/kurtosis-tech/basic-service-package

files-artifact-output-concepts.png