From 3eb9cacf66e28d751d4ed946e53f40e29687e4bc Mon Sep 17 00:00:00 2001 From: kurtosisbot Date: Fri, 11 Aug 2023 13:57:26 +0000 Subject: [PATCH] Apply automatic changes --- LICENSE.md | 4 +- .../kurtosis_version/kurtosis_version.go | 2 +- api/rust/Cargo.toml | 2 +- api/typescript/package.json | 2 +- .../src/kurtosis_version/kurtosis_version.ts | 2 +- .../cli-reference/config-path.md | 7 - .../how-do-idempotent-runs-work.md | 82 ------- .../best-practices.md | 0 .../changelog.md | 59 +++++ .../cli-reference/analytics-disable.md | 0 .../cli-reference/analytics-enable.md | 0 .../cli-reference/analytics-id.md | 0 .../cli-reference/clean.md | 0 .../cli-reference/cluster-get.md | 0 .../cli-reference/cluster-ls.md | 0 .../cli-reference/cluster-set.md | 0 .../cli-reference/completion.md | 0 .../cli-reference/config-path.md | 13 ++ .../cli-reference/discord.md | 0 .../cli-reference/docs.md | 0 .../cli-reference/dump.md | 0 .../cli-reference/enclave-add.md | 0 .../cli-reference/enclave-dump.md | 0 .../cli-reference/enclave-inspect.md | 0 .../cli-reference/enclave-ls.md | 0 .../cli-reference/enclave-rm.md | 0 .../cli-reference/enclave-stop.md | 0 .../cli-reference/engine-logs.md | 0 .../cli-reference/engine-restart.md | 0 .../cli-reference/engine-start.md | 0 .../cli-reference/engine-status.md | 0 .../cli-reference/engine-stop.md | 0 .../cli-reference/feedback.md | 0 .../cli-reference/files-download.md | 0 .../cli-reference/files-rendertemplate.md | 0 .../cli-reference/files-storeservice.md | 0 .../cli-reference/files-storeweb.md | 0 .../cli-reference/files-upload.md | 0 .../cli-reference/index.md | 0 .../cli-reference/port-print.md | 0 .../cli-reference/run.md | 0 .../cli-reference/service-add.md | 0 .../cli-reference/service-exec.md | 0 .../cli-reference/service-logs.md | 0 .../cli-reference/service-rm.md} | 6 +- .../cli-reference/service-shell.md | 0 .../cli-reference/service-start.md | 0 .../cli-reference/service-stop.md | 0 .../cli-reference/twitter.md | 0 .../cli-reference/version.md | 0 .../cli-reference/web.md | 0 .../code-examples.md | 0 .../concepts-reference/args.md | 0 .../concepts-reference/enclaves.md | 0 .../concepts-reference/files-artifacts.md | 0 .../concepts-reference/future-references.md | 0 .../concepts-reference/glossary.md | 0 .../concepts-reference/idempotent-runs.md | 0 .../concepts-reference/kurtosis-yml.md | 0 .../concepts-reference/locators.md | 0 .../concepts-reference/multi-phase-runs.md | 0 .../concepts-reference/packages.md | 0 .../concepts-reference/plan.md | 0 .../concepts-reference/resource-identifier.md | 0 .../concepts-reference/starlark.md | 0 .../explanations/architecture.md | 0 .../how-do-idempotent-runs-work.md | 134 +++++++++++ .../how-do-kurtosis-imports-work.md | 0 .../explanations/metrics-philosophy.md | 0 .../public-and-private-ips-and-ports.md | 0 .../reusable-environment-definitions.md | 0 .../explanations/why-kurtosis-starlark.md | 0 .../explanations/why-multi-phase-runs.md | 0 .../explanations/why-we-built-kurtosis.md | 0 .../{version-0.81.1 => version-0.81.6}/faq.md | 0 .../guides/adding-command-line-completion.md | 0 .../guides/how-to-compose-your-own-testnet.md | 217 ++++++++++++++++++ .../guides/how-to-local-eth-testnet.md | 0 .../guides/how-to-parameterize-cassandra.md | 0 .../guides/installing-historical-versions.md | 0 .../guides/installing-the-cli.md | 0 .../guides/running-in-ci.md | 0 .../guides/running-in-k8s.md | 0 .../guides/upgrading-the-cli.md | 0 .../home.md | 0 .../quickstart.md | 0 .../roadmap.md | 0 .../{version-0.81.1 => version-0.81.6}/sdk.md | 0 .../starlark-reference/args.md | 0 .../starlark-reference/directory.md | 35 +++ .../starlark-reference/exec-recipe.md | 0 .../get-http-request-recipe.md | 0 .../starlark-reference/import-module.md | 0 .../starlark-reference/index.md | 0 .../starlark-reference/plan.md | 0 .../starlark-reference/port-spec.md | 0 .../post-http-request-recipe.md | 0 .../starlark-reference/read-file.md | 0 .../starlark-reference/ready-condition.md | 0 .../starlark-reference/service-config.md | 21 +- .../starlark-reference/service.md | 0 .../starlark-reference/standard-library.md | 0 ...bars.json => version-0.81.6-sidebars.json} | 0 docs/versions.json | 2 +- 104 files changed, 481 insertions(+), 107 deletions(-) delete mode 100644 docs/versioned_docs/version-0.81.1/cli-reference/config-path.md delete mode 100644 docs/versioned_docs/version-0.81.1/explanations/how-do-idempotent-runs-work.md rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/best-practices.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/changelog.md (94%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/analytics-disable.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/analytics-enable.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/analytics-id.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/clean.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/cluster-get.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/cluster-ls.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/cluster-set.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/completion.md (100%) create mode 100644 docs/versioned_docs/version-0.81.6/cli-reference/config-path.md rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/discord.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/docs.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/dump.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/enclave-add.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/enclave-dump.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/enclave-inspect.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/enclave-ls.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/enclave-rm.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/enclave-stop.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/engine-logs.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/engine-restart.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/engine-start.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/engine-status.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/engine-stop.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/feedback.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/files-download.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/files-rendertemplate.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/files-storeservice.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/files-storeweb.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/files-upload.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/index.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/port-print.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/run.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/service-add.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/service-exec.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/service-logs.md (100%) rename docs/versioned_docs/{version-0.81.1/cli-reference/service-delete.md => version-0.81.6/cli-reference/service-rm.md} (89%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/service-shell.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/service-start.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/service-stop.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/twitter.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/version.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/cli-reference/web.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/code-examples.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/args.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/enclaves.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/files-artifacts.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/future-references.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/glossary.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/idempotent-runs.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/kurtosis-yml.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/locators.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/multi-phase-runs.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/packages.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/plan.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/resource-identifier.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/concepts-reference/starlark.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/architecture.md (100%) create mode 100644 docs/versioned_docs/version-0.81.6/explanations/how-do-idempotent-runs-work.md rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/how-do-kurtosis-imports-work.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/metrics-philosophy.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/public-and-private-ips-and-ports.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/reusable-environment-definitions.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/why-kurtosis-starlark.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/why-multi-phase-runs.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/explanations/why-we-built-kurtosis.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/faq.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/adding-command-line-completion.md (100%) create mode 100644 docs/versioned_docs/version-0.81.6/guides/how-to-compose-your-own-testnet.md rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/how-to-local-eth-testnet.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/how-to-parameterize-cassandra.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/installing-historical-versions.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/installing-the-cli.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/running-in-ci.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/running-in-k8s.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/guides/upgrading-the-cli.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/home.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/quickstart.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/roadmap.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/sdk.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/args.md (100%) create mode 100644 docs/versioned_docs/version-0.81.6/starlark-reference/directory.md rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/exec-recipe.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/get-http-request-recipe.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/import-module.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/index.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/plan.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/port-spec.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/post-http-request-recipe.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/read-file.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/ready-condition.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/service-config.md (86%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/service.md (100%) rename docs/versioned_docs/{version-0.81.1 => version-0.81.6}/starlark-reference/standard-library.md (100%) rename docs/versioned_sidebars/{version-0.81.1-sidebars.json => version-0.81.6-sidebars.json} (100%) diff --git a/LICENSE.md b/LICENSE.md index 4cc9a8aa9d..f18d896524 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -3,7 +3,7 @@ Business Source License 1.1 Parameters Licensor: Kurtosis Technologies, Inc. -Licensed Work: Kurtosis 0.81.5 +Licensed Work: Kurtosis 0.81.6 The Licensed Work is (c) 2023 Kurtosis Technologies, Inc. Additional Use Grant: You may make use of the Licensed Work, provided that you may not use the Licensed Work for an Environment Orchestration Service. @@ -12,7 +12,7 @@ you may not use the Licensed Work for an Environment Orchestration Service. allows third parties (other than your employees and contractors) to create distributed system environments. -Change Date: 2027-08-07 +Change Date: 2027-08-11 Change License: AGPLv3 (GNU Affero General Public License Version 3) diff --git a/api/golang/kurtosis_version/kurtosis_version.go b/api/golang/kurtosis_version/kurtosis_version.go index 22de0029ea..0cc7141f2f 100644 --- a/api/golang/kurtosis_version/kurtosis_version.go +++ b/api/golang/kurtosis_version/kurtosis_version.go @@ -9,6 +9,6 @@ const ( // !!!!!!!!!!! DO NOT UPDATE! WILL BE MANUALLY UPDATED DURING THE RELEASE PROCESS !!!!!!!!!!!!!!!!!!!!!! // This is necessary so that Kurt Core consumers will know if they're compatible with the currently-running // API container - KurtosisVersion = "0.81.5" + KurtosisVersion = "0.81.6" // !!!!!!!!!!! DO NOT UPDATE! WILL BE MANUALLY UPDATED DURING THE RELEASE PROCESS !!!!!!!!!!!!!!!!!!!!!! ) diff --git a/api/rust/Cargo.toml b/api/rust/Cargo.toml index 4cce691524..2a3317adc5 100644 --- a/api/rust/Cargo.toml +++ b/api/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kurtosis-sdk" -version = "0.81.5" +version = "0.81.6" license = "BUSL-1.1" description = "Rust SDK for Kurtosis" edition = "2021" diff --git a/api/typescript/package.json b/api/typescript/package.json index fca0ce2c66..9027cf9600 100644 --- a/api/typescript/package.json +++ b/api/typescript/package.json @@ -1,7 +1,7 @@ { "name": "kurtosis-sdk", "//": "NOTE: DO NOT UPDATE THIS VERSION MANUALLY - IT WILL BE UPDATED DURING THE RELEASE PROCESS!", - "version": "0.81.5", + "version": "0.81.6", "main": "./build/index", "description": "This repo contains a Typescript client for communicating with the Kurtosis Engine server, which is responsible for creating, managing and destroying Kurtosis Enclaves.", "types": "./build/index", diff --git a/api/typescript/src/kurtosis_version/kurtosis_version.ts b/api/typescript/src/kurtosis_version/kurtosis_version.ts index 4beaf34c25..89d2b8f4b6 100644 --- a/api/typescript/src/kurtosis_version/kurtosis_version.ts +++ b/api/typescript/src/kurtosis_version/kurtosis_version.ts @@ -1,5 +1,5 @@ // !!!!!!!!!!! DO NOT UPDATE! WILL BE MANUALLY UPDATED DURING THE RELEASE PROCESS !!!!!!!!!!!!!!!!!!!!!! // This is necessary so that Kurt Core consumers (e.g. modules) will know if they're compatible with the currently-running // API container -export const KURTOSIS_VERSION: string = "0.81.5" +export const KURTOSIS_VERSION: string = "0.81.6" // !!!!!!!!!!! DO NOT UPDATE! WILL BE MANUALLY UPDATED DURING THE RELEASE PROCESS !!!!!!!!!!!!!!!!!!!!!! diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/config-path.md b/docs/versioned_docs/version-0.81.1/cli-reference/config-path.md deleted file mode 100644 index 21af20ad97..0000000000 --- a/docs/versioned_docs/version-0.81.1/cli-reference/config-path.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: config path -sidebar_label: config path -slug: /config-path ---- - -The `kurtosis config path` command displays the path to the Kurtosis CLI config YAML file. This file is used to configure Kurtosis CLI behaviour. diff --git a/docs/versioned_docs/version-0.81.1/explanations/how-do-idempotent-runs-work.md b/docs/versioned_docs/version-0.81.1/explanations/how-do-idempotent-runs-work.md deleted file mode 100644 index 5a13faa149..0000000000 --- a/docs/versioned_docs/version-0.81.1/explanations/how-do-idempotent-runs-work.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: How do idempotent runs work? -sidebar_label: Idempotent Runs ---- - -Background ----------- -:::tip -To learn about what idempotent runs are in Kurtosis and the motivation behind this feature, go [here][idempotent-run-concept-reference]. -::: - -When running the `kurtosis run` command, you may notice the following message get printed: -```console -SKIPPED - This instruction has already been run in this enclave -``` -The reason this happens is because Kurtosis will optimize each run of a Starlark package based on what has already been run in a given enclave, thus reducing execution time and resources. - -This means when you try to run the exact same package twice in a row, Kurtosis will skip all the instructions for the second run because they were already executed in the first run. - -:::info -This feature is still experimental and can be deactivated by adding `--experimental NO_INSTRUCTIONS_CACHING` parameter to the `kurtosis run` command. -::: - -How it works ------------- - -#### Definitions - -The __enclave plan__ is defined as the sequence of Starlark instructions that were previously executed inside a given enclave. Meanwhile, the __submitted plan__ is defined as the set of instructions generated by interpreting the package before it gets executed. - -Within a plan, whether it be an _enclave_ or _submitted_ plan, Kurtosis considers a given instruction `instruction_2` to be dependent on another instruction `instruction_1` if and only if `instruction_2` is sequenced to take place _after_ `instruction_1` in the plan's instruction sequence. - - - -Two instructions are said to be _equivalent_ if and only if their Starlark representations are strictly equal. - -#### Criteria to skip an instruction -Kurtosis uses the following heuristic to determine which parts of a plan to skip in order to optimize runs: - -1. Any instruction from the _submitted plan_ that is executed inside the enclave is appended to the _enclave plan_ -1. For any given instruction from the _submitted plan_, it is effectively skipped (i.e. not executed) if: - 1. There exists one instruction in the *enclave plan* that is equivalent to this instruction in the _enclave plan_(called the _matched instruction_ below) - 1. And if at least ONE of the following assertions is true: - 1. There is no direct dependent instruction for the given instruction in the _submitted plan_. Put it simply, it is the last instruction of the _submitted plan_. - 1. There is no direct dependent instruction for the _matched instruction_ in the _enclave plan_. Put it simply, the _matched instruction_ is the last instruction of the _enclave plan_. - 1. The sequence of direct dependent instructions for the _matched instruction_ in the _enclave plan_ is a _prefix_ of the sequence of direct dependent instructions of the _instruction_ from the _submitted plan_. - -Examples --------- - -#### Case of a _submitted plan_ being disjoint from the _enclave plan_ -No instruction get skipped, all instructions from the _submitted plan_ are appended to the _enclave plan_. - -![disjoint-plans.png](/img/explanations/starlark-idempotent-run/disjoint-plans.png) - -#### Case of a _submitted plan_ being a sub-sequence of the _enclave plan_ -All instructions from the _submitted plan_ are skipped because they were all present in the _enclave plan_ (therefore -already executed inside this enclave). - -![sub-sequence-plan.png](/img/explanations/starlark-idempotent-run/sub-sequence-plan.png) - -#### Case of a _submitted plan_ partially overlapping the _enclave plan_ -The overlapping instructions from the _submitted plan_ are skipped but the new ones (i.e. non-overlapping ones) are -executed and appended to the _enclave plan_. - -![overlapping-plan.png](/img/explanations/starlark-idempotent-run/overlapping-plan.png) - -#### Case of a _submitted plan_ incompatible with the _enclave plan_ -Even though there are overlapping instructions in the _submitted plan_, the sequence of instructions itself is -incompatible with the _enclave plan_ because there exist at least one dependent instruction in the _enclave plan_ that -is not in the _submitted plan_. Kurtosis cannot optimize the _submitted plan_, and therefore falls back to the naive -behaviour of considering the _submitted plan_ as a sequence of new instructions. - -![incompatible-plans.png](/img/explanations/starlark-idempotent-run/incompatible-plans.png) - -Note that in this case, it is possible (and even likely) the execution of the submitted plan will fail. In the example -above, execution will fail because instruction 1 is an `add_service` instruction and a service cannot be added -twice within the same enclave. - - -[idempotent-run-concept-reference]: ../concepts-reference/idempotent-runs.md - diff --git a/docs/versioned_docs/version-0.81.1/best-practices.md b/docs/versioned_docs/version-0.81.6/best-practices.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/best-practices.md rename to docs/versioned_docs/version-0.81.6/best-practices.md diff --git a/docs/versioned_docs/version-0.81.1/changelog.md b/docs/versioned_docs/version-0.81.6/changelog.md similarity index 94% rename from docs/versioned_docs/version-0.81.1/changelog.md rename to docs/versioned_docs/version-0.81.6/changelog.md index f5012e9137..c71ecad180 100644 --- a/docs/versioned_docs/version-0.81.1/changelog.md +++ b/docs/versioned_docs/version-0.81.6/changelog.md @@ -1,5 +1,64 @@ # Changelog +## [0.81.6](https://github.com/kurtosis-tech/kurtosis/compare/0.81.5...0.81.6) (2023-08-11) + + +### Features + +* add more endpoints to support the Cloud ([#1077](https://github.com/kurtosis-tech/kurtosis/issues/1077)) ([1d70382](https://github.com/kurtosis-tech/kurtosis/commit/1d70382cdefd5361da10c88c64a6c5be81ae3a57)) +* enable streaming exec output in container engine [stream exec pt. 1] ([#1043](https://github.com/kurtosis-tech/kurtosis/issues/1043)) ([e8f34ef](https://github.com/kurtosis-tech/kurtosis/commit/e8f34ef3d33cf84499ddb07b461ca87319bef0fc)) +* implement new logging architecture v0 ([#1071](https://github.com/kurtosis-tech/kurtosis/issues/1071)) ([c66c148](https://github.com/kurtosis-tech/kurtosis/commit/c66c1480c8f8e6fcc8e17488135ff3d1cb456ffa)) +* Persist file artifacts ([#1084](https://github.com/kurtosis-tech/kurtosis/issues/1084)) ([c7b3590](https://github.com/kurtosis-tech/kurtosis/commit/c7b3590a121ef4a9398efe7a5bc479578a04c43f)) +* Portal automatic start and stop on context change ([#1086](https://github.com/kurtosis-tech/kurtosis/issues/1086)) ([a6a73d1](https://github.com/kurtosis-tech/kurtosis/commit/a6a73d1c2a03c9d6d9e89b689b86bf170e39f108)), closes [#970](https://github.com/kurtosis-tech/kurtosis/issues/970) +* Update files if already present in enclave ([#1066](https://github.com/kurtosis-tech/kurtosis/issues/1066)) ([1135543](https://github.com/kurtosis-tech/kurtosis/commit/1135543b1dea9ddb2f5419cffd9fd1557e644824)) + + +### Bug Fixes + +* Add API key to endpoint ([#1102](https://github.com/kurtosis-tech/kurtosis/issues/1102)) ([64f0c20](https://github.com/kurtosis-tech/kurtosis/commit/64f0c2034405fbaefb7dfb26f63308f055978f53)) +* Fix issue with idempotent plan resolution ([#1087](https://github.com/kurtosis-tech/kurtosis/issues/1087)) ([fd48f8f](https://github.com/kurtosis-tech/kurtosis/commit/fd48f8f5f34abe2929b7831ef1453b67eba0b3ca)) +* update golang docker client to latest ([#1082](https://github.com/kurtosis-tech/kurtosis/issues/1082)) ([724084f](https://github.com/kurtosis-tech/kurtosis/commit/724084f1f0b6d0645990d7b92e41ad6e286f9259)) + +## [0.81.5](https://github.com/kurtosis-tech/kurtosis/compare/0.81.4...0.81.5) (2023-08-07) + + +### Features + +* Enclave inspect relying on the API container service only ([#1070](https://github.com/kurtosis-tech/kurtosis/issues/1070)) ([da171ea](https://github.com/kurtosis-tech/kurtosis/commit/da171ea6a9350992ec282265ecfa07882dc47c65)) + + +### Bug Fixes + +* Fix broken link in docs causing CI build to fail ([#1079](https://github.com/kurtosis-tech/kurtosis/issues/1079)) ([77d8a13](https://github.com/kurtosis-tech/kurtosis/commit/77d8a13e1104eb7b7556a2c3796a2ad5e51f23ec)) + +## [0.81.4](https://github.com/kurtosis-tech/kurtosis/compare/0.81.3...0.81.4) (2023-08-03) + + +### Bug Fixes + +* Only forward APIC port on remote context. ([#1049](https://github.com/kurtosis-tech/kurtosis/issues/1049)) ([7072b7b](https://github.com/kurtosis-tech/kurtosis/commit/7072b7be2fa0f5a417a3e0ca28c4ca8cb4558a29)), closes [#1039](https://github.com/kurtosis-tech/kurtosis/issues/1039) +* remove historical enclave names from auto complete ([#1059](https://github.com/kurtosis-tech/kurtosis/issues/1059)) ([e63fd88](https://github.com/kurtosis-tech/kurtosis/commit/e63fd88b8bc657f086b631400dd1c70b0f66d1ab)) + +## [0.81.3](https://github.com/kurtosis-tech/kurtosis/compare/0.81.2...0.81.3) (2023-08-03) + + +### Bug Fixes + +* Pin grpc-file-transfer version on Go SDK ([#1058](https://github.com/kurtosis-tech/kurtosis/issues/1058)) ([36a16ac](https://github.com/kurtosis-tech/kurtosis/commit/36a16ac3b6db9914f3b0a6695535d8ee6ac8ae6b)) + +## [0.81.2](https://github.com/kurtosis-tech/kurtosis/compare/0.81.1...0.81.2) (2023-08-03) + + +### Features + +* Compute content hash when compressing files artifact ([#1041](https://github.com/kurtosis-tech/kurtosis/issues/1041)) ([510ffe2](https://github.com/kurtosis-tech/kurtosis/commit/510ffe270fea663985b45228e45836fcb575932d)) + + +### Bug Fixes + +* Fix comment about sidecar ([#1053](https://github.com/kurtosis-tech/kurtosis/issues/1053)) ([d9b07ea](https://github.com/kurtosis-tech/kurtosis/commit/d9b07ea0a5d609c1191c7e7260a1928ddd1ebd4e)) +* Use the local grpc-file-transfer library version ([#1056](https://github.com/kurtosis-tech/kurtosis/issues/1056)) ([59fa980](https://github.com/kurtosis-tech/kurtosis/commit/59fa98013aee05a32a34aa2bef1a153a1a57a29b)) + ## [0.81.1](https://github.com/kurtosis-tech/kurtosis/compare/0.81.0...0.81.1) (2023-08-02) diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/analytics-disable.md b/docs/versioned_docs/version-0.81.6/cli-reference/analytics-disable.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/analytics-disable.md rename to docs/versioned_docs/version-0.81.6/cli-reference/analytics-disable.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/analytics-enable.md b/docs/versioned_docs/version-0.81.6/cli-reference/analytics-enable.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/analytics-enable.md rename to docs/versioned_docs/version-0.81.6/cli-reference/analytics-enable.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/analytics-id.md b/docs/versioned_docs/version-0.81.6/cli-reference/analytics-id.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/analytics-id.md rename to docs/versioned_docs/version-0.81.6/cli-reference/analytics-id.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/clean.md b/docs/versioned_docs/version-0.81.6/cli-reference/clean.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/clean.md rename to docs/versioned_docs/version-0.81.6/cli-reference/clean.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/cluster-get.md b/docs/versioned_docs/version-0.81.6/cli-reference/cluster-get.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/cluster-get.md rename to docs/versioned_docs/version-0.81.6/cli-reference/cluster-get.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/cluster-ls.md b/docs/versioned_docs/version-0.81.6/cli-reference/cluster-ls.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/cluster-ls.md rename to docs/versioned_docs/version-0.81.6/cli-reference/cluster-ls.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/cluster-set.md b/docs/versioned_docs/version-0.81.6/cli-reference/cluster-set.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/cluster-set.md rename to docs/versioned_docs/version-0.81.6/cli-reference/cluster-set.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/completion.md b/docs/versioned_docs/version-0.81.6/cli-reference/completion.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/completion.md rename to docs/versioned_docs/version-0.81.6/cli-reference/completion.md diff --git a/docs/versioned_docs/version-0.81.6/cli-reference/config-path.md b/docs/versioned_docs/version-0.81.6/cli-reference/config-path.md new file mode 100644 index 0000000000..9f72383027 --- /dev/null +++ b/docs/versioned_docs/version-0.81.6/cli-reference/config-path.md @@ -0,0 +1,13 @@ +--- +title: config path +sidebar_label: config path +slug: /config-path +--- + +The `kurtosis config path` command displays the path to the Kurtosis CLI config YAML file. This file is used to configure Kurtosis CLI behaviour. + +To see the full set of configuration values available: + +1. Open [the directory containing the versions of Kurtosis config](https://github.com/kurtosis-tech/kurtosis/tree/main/cli/cli/kurtosis_config/overrides_objects) +2. Select the most recent (highest) version +3. Explore the various config objects inside, starting with the `kurtosis_config_vX.go` top-level object (each `struct` represents a YAML object inside the configuration) diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/discord.md b/docs/versioned_docs/version-0.81.6/cli-reference/discord.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/discord.md rename to docs/versioned_docs/version-0.81.6/cli-reference/discord.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/docs.md b/docs/versioned_docs/version-0.81.6/cli-reference/docs.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/docs.md rename to docs/versioned_docs/version-0.81.6/cli-reference/docs.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/dump.md b/docs/versioned_docs/version-0.81.6/cli-reference/dump.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/dump.md rename to docs/versioned_docs/version-0.81.6/cli-reference/dump.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/enclave-add.md b/docs/versioned_docs/version-0.81.6/cli-reference/enclave-add.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/enclave-add.md rename to docs/versioned_docs/version-0.81.6/cli-reference/enclave-add.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/enclave-dump.md b/docs/versioned_docs/version-0.81.6/cli-reference/enclave-dump.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/enclave-dump.md rename to docs/versioned_docs/version-0.81.6/cli-reference/enclave-dump.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/enclave-inspect.md b/docs/versioned_docs/version-0.81.6/cli-reference/enclave-inspect.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/enclave-inspect.md rename to docs/versioned_docs/version-0.81.6/cli-reference/enclave-inspect.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/enclave-ls.md b/docs/versioned_docs/version-0.81.6/cli-reference/enclave-ls.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/enclave-ls.md rename to docs/versioned_docs/version-0.81.6/cli-reference/enclave-ls.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/enclave-rm.md b/docs/versioned_docs/version-0.81.6/cli-reference/enclave-rm.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/enclave-rm.md rename to docs/versioned_docs/version-0.81.6/cli-reference/enclave-rm.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/enclave-stop.md b/docs/versioned_docs/version-0.81.6/cli-reference/enclave-stop.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/enclave-stop.md rename to docs/versioned_docs/version-0.81.6/cli-reference/enclave-stop.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/engine-logs.md b/docs/versioned_docs/version-0.81.6/cli-reference/engine-logs.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/engine-logs.md rename to docs/versioned_docs/version-0.81.6/cli-reference/engine-logs.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/engine-restart.md b/docs/versioned_docs/version-0.81.6/cli-reference/engine-restart.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/engine-restart.md rename to docs/versioned_docs/version-0.81.6/cli-reference/engine-restart.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/engine-start.md b/docs/versioned_docs/version-0.81.6/cli-reference/engine-start.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/engine-start.md rename to docs/versioned_docs/version-0.81.6/cli-reference/engine-start.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/engine-status.md b/docs/versioned_docs/version-0.81.6/cli-reference/engine-status.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/engine-status.md rename to docs/versioned_docs/version-0.81.6/cli-reference/engine-status.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/engine-stop.md b/docs/versioned_docs/version-0.81.6/cli-reference/engine-stop.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/engine-stop.md rename to docs/versioned_docs/version-0.81.6/cli-reference/engine-stop.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/feedback.md b/docs/versioned_docs/version-0.81.6/cli-reference/feedback.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/feedback.md rename to docs/versioned_docs/version-0.81.6/cli-reference/feedback.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/files-download.md b/docs/versioned_docs/version-0.81.6/cli-reference/files-download.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/files-download.md rename to docs/versioned_docs/version-0.81.6/cli-reference/files-download.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/files-rendertemplate.md b/docs/versioned_docs/version-0.81.6/cli-reference/files-rendertemplate.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/files-rendertemplate.md rename to docs/versioned_docs/version-0.81.6/cli-reference/files-rendertemplate.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/files-storeservice.md b/docs/versioned_docs/version-0.81.6/cli-reference/files-storeservice.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/files-storeservice.md rename to docs/versioned_docs/version-0.81.6/cli-reference/files-storeservice.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/files-storeweb.md b/docs/versioned_docs/version-0.81.6/cli-reference/files-storeweb.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/files-storeweb.md rename to docs/versioned_docs/version-0.81.6/cli-reference/files-storeweb.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/files-upload.md b/docs/versioned_docs/version-0.81.6/cli-reference/files-upload.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/files-upload.md rename to docs/versioned_docs/version-0.81.6/cli-reference/files-upload.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/index.md b/docs/versioned_docs/version-0.81.6/cli-reference/index.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/index.md rename to docs/versioned_docs/version-0.81.6/cli-reference/index.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/port-print.md b/docs/versioned_docs/version-0.81.6/cli-reference/port-print.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/port-print.md rename to docs/versioned_docs/version-0.81.6/cli-reference/port-print.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/run.md b/docs/versioned_docs/version-0.81.6/cli-reference/run.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/run.md rename to docs/versioned_docs/version-0.81.6/cli-reference/run.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/service-add.md b/docs/versioned_docs/version-0.81.6/cli-reference/service-add.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/service-add.md rename to docs/versioned_docs/version-0.81.6/cli-reference/service-add.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/service-exec.md b/docs/versioned_docs/version-0.81.6/cli-reference/service-exec.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/service-exec.md rename to docs/versioned_docs/version-0.81.6/cli-reference/service-exec.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/service-logs.md b/docs/versioned_docs/version-0.81.6/cli-reference/service-logs.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/service-logs.md rename to docs/versioned_docs/version-0.81.6/cli-reference/service-logs.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/service-delete.md b/docs/versioned_docs/version-0.81.6/cli-reference/service-rm.md similarity index 89% rename from docs/versioned_docs/version-0.81.1/cli-reference/service-delete.md rename to docs/versioned_docs/version-0.81.6/cli-reference/service-rm.md index 7437aad52e..0b9f918e0b 100644 --- a/docs/versioned_docs/version-0.81.1/cli-reference/service-delete.md +++ b/docs/versioned_docs/version-0.81.6/cli-reference/service-rm.md @@ -1,7 +1,7 @@ --- -title: service delete -sidebar_label: service delete -slug: /service-delete +title: service rm +sidebar_label: service rm +slug: /service-rm --- Services can be deleted from an enclave like so: diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/service-shell.md b/docs/versioned_docs/version-0.81.6/cli-reference/service-shell.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/service-shell.md rename to docs/versioned_docs/version-0.81.6/cli-reference/service-shell.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/service-start.md b/docs/versioned_docs/version-0.81.6/cli-reference/service-start.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/service-start.md rename to docs/versioned_docs/version-0.81.6/cli-reference/service-start.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/service-stop.md b/docs/versioned_docs/version-0.81.6/cli-reference/service-stop.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/service-stop.md rename to docs/versioned_docs/version-0.81.6/cli-reference/service-stop.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/twitter.md b/docs/versioned_docs/version-0.81.6/cli-reference/twitter.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/twitter.md rename to docs/versioned_docs/version-0.81.6/cli-reference/twitter.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/version.md b/docs/versioned_docs/version-0.81.6/cli-reference/version.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/version.md rename to docs/versioned_docs/version-0.81.6/cli-reference/version.md diff --git a/docs/versioned_docs/version-0.81.1/cli-reference/web.md b/docs/versioned_docs/version-0.81.6/cli-reference/web.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/cli-reference/web.md rename to docs/versioned_docs/version-0.81.6/cli-reference/web.md diff --git a/docs/versioned_docs/version-0.81.1/code-examples.md b/docs/versioned_docs/version-0.81.6/code-examples.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/code-examples.md rename to docs/versioned_docs/version-0.81.6/code-examples.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/args.md b/docs/versioned_docs/version-0.81.6/concepts-reference/args.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/args.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/args.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/enclaves.md b/docs/versioned_docs/version-0.81.6/concepts-reference/enclaves.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/enclaves.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/enclaves.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/files-artifacts.md b/docs/versioned_docs/version-0.81.6/concepts-reference/files-artifacts.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/files-artifacts.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/files-artifacts.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/future-references.md b/docs/versioned_docs/version-0.81.6/concepts-reference/future-references.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/future-references.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/future-references.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/glossary.md b/docs/versioned_docs/version-0.81.6/concepts-reference/glossary.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/glossary.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/glossary.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/idempotent-runs.md b/docs/versioned_docs/version-0.81.6/concepts-reference/idempotent-runs.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/idempotent-runs.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/idempotent-runs.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/kurtosis-yml.md b/docs/versioned_docs/version-0.81.6/concepts-reference/kurtosis-yml.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/kurtosis-yml.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/kurtosis-yml.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/locators.md b/docs/versioned_docs/version-0.81.6/concepts-reference/locators.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/locators.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/locators.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/multi-phase-runs.md b/docs/versioned_docs/version-0.81.6/concepts-reference/multi-phase-runs.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/multi-phase-runs.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/multi-phase-runs.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/packages.md b/docs/versioned_docs/version-0.81.6/concepts-reference/packages.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/packages.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/packages.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/plan.md b/docs/versioned_docs/version-0.81.6/concepts-reference/plan.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/plan.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/plan.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/resource-identifier.md b/docs/versioned_docs/version-0.81.6/concepts-reference/resource-identifier.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/resource-identifier.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/resource-identifier.md diff --git a/docs/versioned_docs/version-0.81.1/concepts-reference/starlark.md b/docs/versioned_docs/version-0.81.6/concepts-reference/starlark.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/concepts-reference/starlark.md rename to docs/versioned_docs/version-0.81.6/concepts-reference/starlark.md diff --git a/docs/versioned_docs/version-0.81.1/explanations/architecture.md b/docs/versioned_docs/version-0.81.6/explanations/architecture.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/architecture.md rename to docs/versioned_docs/version-0.81.6/explanations/architecture.md diff --git a/docs/versioned_docs/version-0.81.6/explanations/how-do-idempotent-runs-work.md b/docs/versioned_docs/version-0.81.6/explanations/how-do-idempotent-runs-work.md new file mode 100644 index 0000000000..82865bb7f1 --- /dev/null +++ b/docs/versioned_docs/version-0.81.6/explanations/how-do-idempotent-runs-work.md @@ -0,0 +1,134 @@ +--- +title: How do idempotent runs work? +sidebar_label: Idempotent Runs +--- + +Background +---------- +:::tip +To learn about what idempotent runs are in Kurtosis and the motivation behind this feature, go [here][idempotent-run-concept-reference]. +::: + +When running the `kurtosis run` command, you may notice the following message get printed: +```console +SKIPPED - This instruction has already been run in this enclave +``` +The reason this happens is because Kurtosis will optimize each run of a Starlark package based on what has already been +run in a given enclave, thus reducing execution time and resources. + +This means when you try to run the exact same package twice in a row, Kurtosis will skip all the instructions for the +second run because they were already executed in the first run. + +:::info +This feature is still experimental and can be deactivated by adding `--experimental NO_INSTRUCTIONS_CACHING` parameter +to the `kurtosis run` command. +::: + +How it works +------------ + +#### Definitions + +The __enclave plan__ is defined as the sequence of Starlark instructions that were previously executed inside a given +enclave. Meanwhile, the __submitted plan__ is defined as the set of instructions generated by interpreting the package +before it gets executed. + +When running a Starlark package in a world without idempotent runs, all the instructions are naively executed inside +the enclave and the new _post-execution enclave plan_ is set to the concatenation of the previous _enclave plan_ and +the _submitted plan_. + +To avoid re-running instructions that have already been run inside the enclave, Kurtosis will try to maximize the +overlap __between the submitted plan and the tail-end portion of the enclave plan__. In the overlapping portion, +if any, Kurtosis will re-run only the instructions that were updated. Then, if they are new instructions at the end +of the _submitted plan_ that were not in the _enclave plan_, they are executed as new instructions and added to the +_enclave plan_ + +#### Instruction equality + +To spot overlap between the _enclave plan_ and the _submitted plan_, Kurtosis needs to compare instructions one by one. +There are different level of equality: +- The submitted plan instruction is __equal__ to the enclave plan instruction - the instructions are of the same type +(i.e. two `exec`, `wait`, `upload_file` etc.) __and__ the set of arguments of the instructions are strictly identical. +- The submitted plan instruction is __an update of__ the enclave plan instruction - the instructions are of the same +type but only a subset of pre-defined arguments are identical. This only exist for a certain instructions: + - `add_service` instruction adding a service with __the same name__ but a different `ServiceConfig` object will be + considered as an update to the enclave plan instruction. The service will be restarted inside the enclave with the + new service configuration. + - `upload_file` instruction uploading a files artifact with __the same name__ but different file contents will be + considered as an update to the enclave plan instruction. The files artifact will be updated with the new contents + inside the enclave. + - `render_template` instruction creating a files artifact with _the same name_ but a different content will be + considered as an update to the enclave plan instruction. Similarly to `upload_file`, the content of the files artifact + will be updated inside the enclave. + - `store_service_file` instruction creating a files artifact with _the same name_ but either a different source path + or a different service name will be considered as an update to the enclave plan instruction. Similarly to + `upload_file`, the content of the files artifact will be updated inside the enclave. + +Two instructions that doesn't fit into any of the two categories above are considered __different__ (i.e. independent +from each other). + +It's good to callout here that a few Kurtosis instructions are __fundamentally incompatible with the concept of +idempotency__. The use of one of those instructions in the package will make the plans not resolvable, and Kurtosis will +default to the "naive" execution strategy of running the _submitted plan_ on top of the _current plan_, without even +trying the overlap them. Those instructions currently are: +- `remove_service` +- `start_service` +- `stop_service` + +#### Instruction dependencies + +Certain instructions depend on other ones, and with the concept of __instruction update__ explained above comes the +concept of __dependency between instructions__. It's easier to understand the concept with an example. + +Let's consider a submitted plan with 2 instructions: an `add_service` adding `service_1` and an `exec` on `service_1`. +If the first `add_service` instruction is considered an update when running the package, `service_1` will be updated +and therefore restarted. In that case, __even if the `exec` is equal to the matching instruction in the enclave plan__ +it will be re-run because it runs on a component (`service_1`) that has been updated. It is said that the `exec` +instruction depends on the `add_service` instruction. + +Dependency relationships can be the following: +- `add_service` instruction depends on the files artifact mounted onto the service. If one of the files artifact is +updated, the `add_service` will be re-run +- `exec` instruction depends on the service on which it runs. If the service is updated, the `exec` will be re-run. +- `request` instruction depends on the service on which it runs, similarly to `exec` +- `store_service_file`instruction depends on the service on which it runs, similarly to `exec` +- `wait` instruction depends on the service on which it runs, similarly to `exec` + +Examples +-------- + +#### Case of a _submitted plan_ being disjoint from the _enclave plan_ +No instruction get skipped, all instructions from the _submitted plan_ are executed and appended to the _enclave plan_. + +![disjoint-plans-v2.png](/img/explanations/starlark-idempotent-run/disjoint-plans-v2.png) + +#### Case of a _submitted plan_ partially overlapping the _enclave plan_ +The first two `add_service` instructions from the submitted plans are __equal__ to the last two instructions of the +enclave plan. They are therefore skipped, and only the `exec` and `store_service_files` from the submitted plan are +executed. + +![overlapping-plans-v2.png](/img/explanations/starlark-idempotent-run/overlapping-plans-v2.png) + +#### Case of a _submitted plan_ partially overlapping the _enclave plan_ with instruction updates +The `upload_file` instruction is equal, it will be skipped similarly to the case explained above. + +The `add_service` instruction from the submitted plan adding service `service_1` __is an update__ of the `add_service` +instruction from the enclave plan adding `service_1` (notice the `***` on the schema - the `ServiceConfig` object has +been updated, for example to update the container image version). It will therefore be re-run and `service_1` will +be updated inside the enclave. + +The second `add_service` instruction from the submitted plan adding service `service_2` is __equal__ to the one +from the enclave plan. It will be skipped. + +The `exec` instruction from the submitted plan is __equal__ to the one from the enclave plan. However, since +it operates on `service_1` __and__ `service_1` was updated in the submitted plan, this instruction __will also be +re-run__. + +The `store_service_file` from the submitted plan is __equal__ to the one from the enclave plan, and the service on +which it runs (`service_2`) was left intact in the submitted plan. It will therefore be skipped. + +![overlapping-plans-with-updates-v2.png](/img/explanations/starlark-idempotent-run/overlapping-plans-with-updates-v2.png) + + +[idempotent-run-concept-reference]: ../concepts-reference/idempotent-runs.md + diff --git a/docs/versioned_docs/version-0.81.1/explanations/how-do-kurtosis-imports-work.md b/docs/versioned_docs/version-0.81.6/explanations/how-do-kurtosis-imports-work.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/how-do-kurtosis-imports-work.md rename to docs/versioned_docs/version-0.81.6/explanations/how-do-kurtosis-imports-work.md diff --git a/docs/versioned_docs/version-0.81.1/explanations/metrics-philosophy.md b/docs/versioned_docs/version-0.81.6/explanations/metrics-philosophy.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/metrics-philosophy.md rename to docs/versioned_docs/version-0.81.6/explanations/metrics-philosophy.md diff --git a/docs/versioned_docs/version-0.81.1/explanations/public-and-private-ips-and-ports.md b/docs/versioned_docs/version-0.81.6/explanations/public-and-private-ips-and-ports.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/public-and-private-ips-and-ports.md rename to docs/versioned_docs/version-0.81.6/explanations/public-and-private-ips-and-ports.md diff --git a/docs/versioned_docs/version-0.81.1/explanations/reusable-environment-definitions.md b/docs/versioned_docs/version-0.81.6/explanations/reusable-environment-definitions.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/reusable-environment-definitions.md rename to docs/versioned_docs/version-0.81.6/explanations/reusable-environment-definitions.md diff --git a/docs/versioned_docs/version-0.81.1/explanations/why-kurtosis-starlark.md b/docs/versioned_docs/version-0.81.6/explanations/why-kurtosis-starlark.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/why-kurtosis-starlark.md rename to docs/versioned_docs/version-0.81.6/explanations/why-kurtosis-starlark.md diff --git a/docs/versioned_docs/version-0.81.1/explanations/why-multi-phase-runs.md b/docs/versioned_docs/version-0.81.6/explanations/why-multi-phase-runs.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/why-multi-phase-runs.md rename to docs/versioned_docs/version-0.81.6/explanations/why-multi-phase-runs.md diff --git a/docs/versioned_docs/version-0.81.1/explanations/why-we-built-kurtosis.md b/docs/versioned_docs/version-0.81.6/explanations/why-we-built-kurtosis.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/explanations/why-we-built-kurtosis.md rename to docs/versioned_docs/version-0.81.6/explanations/why-we-built-kurtosis.md diff --git a/docs/versioned_docs/version-0.81.1/faq.md b/docs/versioned_docs/version-0.81.6/faq.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/faq.md rename to docs/versioned_docs/version-0.81.6/faq.md diff --git a/docs/versioned_docs/version-0.81.1/guides/adding-command-line-completion.md b/docs/versioned_docs/version-0.81.6/guides/adding-command-line-completion.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/adding-command-line-completion.md rename to docs/versioned_docs/version-0.81.6/guides/adding-command-line-completion.md diff --git a/docs/versioned_docs/version-0.81.6/guides/how-to-compose-your-own-testnet.md b/docs/versioned_docs/version-0.81.6/guides/how-to-compose-your-own-testnet.md new file mode 100644 index 0000000000..d30076c297 --- /dev/null +++ b/docs/versioned_docs/version-0.81.6/guides/how-to-compose-your-own-testnet.md @@ -0,0 +1,217 @@ +--- +title: How to build your own private, Ethereum testnet with eth-kurtosis +sidebar_label: Build your own testnet from scratch +slug: /how-to-compose-your-own-testnet +toc_max_heading_level: 2 +--- + +:::tip +If you'd prefer to dive into the code example, visit the repository [here](https://github.com/kurtosis-tech/geth-lighthouse-package). + +If you'd prefer not to run it on your local machine, try it out on the [Kurtosis playground](https://gitpod.io/?autoStart=true&editor=code#https://github.com/kurtosis-tech/geth-lighthouse-package) +::: + +## Introduction +A testnet is an incredibly valuable tool for any web3 developer, no matter if you’re building a dApp or working on protocol-level changes. It comes as no surprise then that Ethereum has multiple public testnets in addition to a plethora of tools for local development networks (e.g. Ganache, Hardhat, Foundry Anvil). + +However, there are cases where an engineer may need to develop or test functionality that: modifies the protocol itself (execution or consensus layers), necessitates a certain scale, or interacts with another blockchain entirely (e.g. L2s/rollups, bridges, or multi-chain relayers). In these cases, a fully functioning private testnet is required - one where the user has full control over every aspect of the network and its ancillary services. + +:::note +We will review the details on when and how a full, private testnet can be useful in another article. +::: + +This guide will walk you through how to build your very own fully functioning, private Ethereum testnet using [`eth-kurtosis`](https://github.com/kurtosis-tech/eth-kurtosis/tree/main) components. In fact, the artifact you’ll end up with at the end of this tutorial will be a special type of environment definition that works at any scale you desire, is completely reproducible for CI workflows, and is modular - meaning you can add or remove other services to your network as you wish. + +**What you will do:** + +1. Create a local Kurtosis package template & push it to Github +2. Import required dependencies +3. Define how your private Ethereum testnet should look like. This example will leverage the Lighthouse CL client and Geth EL client to build a single, full node over Docker with [`eth-kurtosis`](https://github.com/kurtosis-tech/eth-kurtosis/tree/main). +4. Launch the private testnet locally over Docker +5. Publish your testnet definition to Github +6. Learn about some advanced workflows you can do with `eth-kurtosis`. + +**What you will need beforehand to get started:** + +- Install [Docker & ensure its running](./installing-the-cli.md#i-install--start-docker) +- Install [Kurtosis](./installing-the-cli.md) (or [upgrade to latest](./upgrading-the-cli.md) if you already have it) +- A Github account to leverage the [template repository](https://github.com/kurtosis-tech/package-template-repo) + +### 1. Set up an empty Kurtosis package +To begin, create and `cd` into a directory to hold your files: +```bash +mkdir my-testnet && cd my-testnet +``` +Next, create a file called `network_params.json` in that folder with the following contents: +```json +{ + "preregistered_validator_keys_mnemonic": "giant issue aisle success illegal bike spike question tent bar rely arctic volcano long crawl hungry vocal artwork sniff fantasy very lucky have athlete", + "num_validator_keys_per_node": 64, + "network_id": "3151908", + "deposit_contract_address": "0x4242424242424242424242424242424242424242", + "seconds_per_slot": 12, + "genesis_delay": 10, + "capella_fork_epoch": 2, + "deneb_fork_epoch": 500 +} +``` +The contents above will be used to define the specific parameters with which to start the network with. + +Now, create a `kurtosis.yml` file in the same folder with the following contents, replacing `$YOUR_GITHUB_USERNAME` with your actual Github username. +```yml +name: github.com/$YOUR_GITHUB_USERNAME/my-testnet +``` + +Finally, create a Github repository titled `my-testnet` and push both of the files you just wrote to the Github repository: +- `network_params.json` +- `kurtosis.yml` + +Awesome. You have just created the beginnings of your first [Kurtosis package](../concepts-reference/packages.md)! This package will form the backbone of the environment definition you will use to instantiate and deploy your private testnet. A Kurtosis package is completely reproducible, modular, and will work locally (Docker, Minikube, k3s, etc) or in the cloud, on backends like EC2 or Kubernetes. All that is missing to make your new Kurtosis package [runnable](https://docs.kurtosis.com/concepts-reference/packages/#runnable-packages) is add a `main.star` file in the directory - which you will do next! + +### 2. Import dependencies +Now that you have a local project to house your definition and some parameters to start the network with, its time to actually build the network. First, create a Starlark file called `main.star` and add the following three lines: +```python +# main.star +geth = import_module("github.com/kurtosis-tech/geth-package/lib/geth.star") +lighthouse = import_module("github.com/kurtosis-tech/lighthouse-package/lib/lighthouse.star") + +# Again, replacing $YOUR_GITHUB_USERNAME with your Github username +network_params = json.decode(read_file("github.com/$YOUR_GITHUB_USERNAME/my-testnet/network_params.json")) +``` + +In the first two lines, you're using [Locators](../concepts-reference/locators.md) to import in `geth.star` and `lighthouse.star` files from Github, making them available to use in your testnet definition. These files themselves are environment definitions that can be used to bootstrap and start up a Geth execution layer client and a Lighthouse consensus layer client as part of your testnet - which is exactly what you will do next. + +:::note +Feel free to check out the [`geth.star`](https://github.com/kurtosis-tech/geth-package/blob/main/lib/geth.star) and [`lighthouse.star`](https://github.com/kurtosis-tech/lighthouse-package/blob/main/lib/lighthouse.star) to understand how they work. At a high level, the definition instructs Kurtosis to generate genesis data, set up pre-funded accounts, and then launches the client using the client container images. +::: + +Finally, we are converting the `network_params.json` file into a format that can be used in your environment definition using [`json.decode()`](https://bazel.build/rules/lib/core/json#decode) and [`read_file()`](../starlark-reference/read-file.md). + +### 3. Define how your testnet gets built +Now that you have all the necessary dependencies, you can start writing the function that will instantiate the network. Within your `main.star` file, add the following 3 new lines: + +```python +def run(plan): + final_genesis_timestamp = geth.generate_genesis_timestamp() + el_genesis_data = geth.generate_el_genesis_data(plan, final_genesis_timestamp, network_params) +``` + +What you've just done here is define a function using `run(plan)` to house all of the methods you will use for instantiating the network. Within this method, you will call the [`generate_genesis_timestamp()` function](https://github.com/kurtosis-tech/geth-package/blob/main/lib/geth.star#L58), from the `geth.star` you imported earlier, to generate an abitrary timestamp for the genesis of your network. This is important for time-based forks that you may want to use later on. Next, you will generate some genesis data for the execution layer using [`generate_el_genesis_data`](https://github.com/kurtosis-tech/geth-package/blob/main/lib/geth.star#L43) which was imported from `geth.star` as well. Under the hood, the genesis data is being generated using the Ethereum Foundation's [`ethereum-genesis-generator`](https://github.com/ethpandaops/ethereum-genesis-generator). + +You can already see the benefit of composable environment definitions: you don't need to deal with nor understand how the genesis data is being generated. You can rely on the framework built and used by the Ethereum Foundation for your testnet's genesis data. + +With some execution layer genesis data in hand, you will now bootstrap the node! Go ahead and add the next 3 lines to your `main.star` file inside the same `def run(plan)` function so that your final result looks like: + +```python +# main.star +geth = import_module("github.com/kurtosis-tech/geth-package/lib/geth.star") +lighthouse = import_module("github.com/kurtosis-tech/lighthouse-package/lib/lighthouse.star") + +# Again, replacing $YOUR_GITHUB_USERNAME with your Github username +network_params = json.decode(read_file("github.com/$YOUR_GITHUB_USERNAME/my-testnet/network_params.json")) + +def run(plan): + # Generate genesis, note EL and the CL needs the same timestamp to ensure that timestamp based forking works + final_genesis_timestamp = geth.generate_genesis_timestamp() + el_genesis_data = geth.generate_el_genesis_data(plan, final_genesis_timestamp, network_params) + + # NEW LINES TO ADD: + # Run the nodes + el_context = geth.run(plan, network_params, el_genesis_data) + lighthouse.run(plan, network_params, el_genesis_data, final_genesis_timestamp, el_context) + + return +``` + +Here, the Geth client is launched using the `run()` function in `geth.star` and then returns all the relevant information about the client to `el_context`, including the [Ethereum Node Record](https://github.com/sigp/enr). This information, alongside the network parameters, genesis data, and the genesis timestamp, are then passed in as arguments in the next command: `lighthouse.run()` which bootstraps the Lighthouse consensus layer client. + +And that is it! In these short few lines, you now have an environment definition that spins up a full stacking Ethereum node with Geth and Lighthouse over Docker on your local machine. + +### 4. Run your new testnet! +Finally, time to give it a spin! Go back to your terminal & from within the `my-testnet` directory, run: +``` +kurtosis run main.star +``` + +Kurtosis will interpret the environment definition you just wrote, validate that everything will work, and then execute the instructions to instantiate your Ethereum node inside an [enclave](../concepts-reference/enclaves.md), which is just a sandbox environment that will house your node. Kurtosis will handle the importing of the `lighthouse.star` and `geth.star` files from Github. The output you'll get at the end should look like this: + +```bash +Starlark code successfully run. No output was returned. +INFO[2023-08-04T16:07:28+02:00] ========================================================== +INFO[2023-08-04T16:07:28+02:00] || Created enclave: tranquil-woodland || +INFO[2023-08-04T16:07:28+02:00] ========================================================== +Name: tranquil-woodland +UUID: ac3877184757 +Status: RUNNING +Creation Time: Fri, 04 Aug 2023 16:06:57 CEST + +========================================= Files Artifacts ========================================= +UUID Name +8a1de99b7224 1-lighthouse-eth-0-63 +271f6e53a7e1 cl-genesis-data +6c116cfcc7d1 el-genesis-data +7549ddc4135a genesis-generation-config-cl +d266370395ef genesis-generation-config-el +d204de12687e geth-prefunded-keys +a069f55dc147 prysm-password + +========================================== User Services ========================================== +UUID Name Ports Status +cb04101e98fd cl-client-0 http: 4000/tcp -> http://127.0.0.1:50646 RUNNING + metrics: 5054/tcp -> http://127.0.0.1:50647 + tcp-discovery: 9000/tcp -> 127.0.0.1:50648 + udp-discovery: 9000/udp -> 127.0.0.1:59240 +f377be0f55f8 cl-client-0-validator http: 5042/tcp -> 127.0.0.1:50649 RUNNING + metrics: 5064/tcp -> http://127.0.0.1:50650 +19b325f68893 el-client-0 engine-rpc: 8551/tcp -> 127.0.0.1:50639 RUNNING + rpc: 8545/tcp -> 127.0.0.1:50641 + tcp-discovery: 30303/tcp -> 127.0.0.1:50640 + udp-discovery: 30303/udp -> 127.0.0.1:49442 + ws: 8546/tcp -> 127.0.0.1:50642 +a9608eaf4942 prelaunch-data-generator-cl-genesis-data RUNNING +a1e33f5b7141 prelaunch-data-generator-cl-validator-keystore STOPPED +971aaffb412d prelaunch-data-generator-el-genesis-data RUNNING +``` + +You'll now see in the `User Services` section all the ports that you will use to connect to and interact with your local node, including the RPC URL. Your port numbers may differ from the one above. + +Congratulations! You now have a full Ethereum staking node for all your private testnet needs. + + +### 5. Add our `main.star` file to your `my-testnet` repository on Github! +One last step you'll want to do is to add your new `main.star` file to Github! + +First, save your `main.star` file and then push it to your repository so that your repository now contains 3 files: +- `main.star` +- `kurtosis.yml` +- `network_params.json` + +```bash +kurtosis run github.com/$YOUR_GITHUB_USERNAME/my-testnet/main.star +``` + +Everything should work the same way as it did before, but the beauty of using Kurtosis is that you can now run the above command anywhere and the node will be spun up in the exact same way. Additionally, this means your testnet can be shared with your teammates to bring up the *exact same* environment - making reproducing of bugs or functionalities painless. + +### 6. Advanced Workflows +You may already know what you want to do with the private testnet you've just spun up, and that's great! We hope this was helpful in getting you started and to show you just how easy it was to write your own testnet definition using Kurtosis. + +Otherwise, we've got some neat ideas for what you can do next. If you need a hand with any of the below, feel free to let us know in our [Github Discussions](https://github.com/kurtosis-tech/kurtosis/discussions/new/choose) where we and members of our community can help! +* Deploy your node in a Kubernetes cluster for collaborative work and scale it out to multiple nodes! Check out our docs for how to do so [here](https://docs.kurtosis.com/k8s/). +* Simulate MEV workflows by importing the [MEV Package](https://github.com/kurtosis-tech/mev-package) into your testnet definition. The MEV package deploys and configures the Flashbots suite of products to your local Ethereum testnet and includes: MEV-Boost, MEV-Flood, and MEV-relay, and any required dependencies (postgres & redis). Here's a full example of this set up [here](https://github.com/kurtosis-tech/geth-lighthouse-mev-package). +* Connect other infrastructure (oracles, relayers, etc) to the network by adding more to your `main.star` file! Remember, this is an environment definition and you can import any pre-existing packages that you may find useful. Here are a [few examples](https://github.com/kurtosis-tech/awesome-kurtosis/tree/main) +* Deploy your dApp onto the local network! Hardhat can be used to do so by using the given RPC URL & the `network_id` defined in the `network_params.json` you wrote at the beginning. In your case, the `network_id` should be: `3151908`. A more thorough example of this workflow can also be found [here](./how-to-local-eth-testnet.md). + +We're currently building out more components of [`eth-kurtosis`](https://github.com/kurtosis-tech/eth-kurtosis/tree/main), which serves as an index of plug-and-play components for Ethereum private testnets. We're building support for more clients - so let us know if there's something you would love to see added to the index! + +### Conclusion + +To recap, in this guide you: +* Created a working directory locally for your Kurtosis package +* Wrote a very short environment definition, `main.star`, which simply imported the client implementations for your node, generated the necessary starting state, and then launched them! +* Pushed your environment definition to Github, enabling it to be used time and again for the future with complete reproduciblity. + +You also saw first-hand how the composability aspect of Kurtosis environment definitions were used to abstract away a lot of the complexities that come with bootstrapping your own node. And because this is entirely reproducible, your team can use this as a private blockchain for validating and testing changes for your application. + +We hope this guide was helpful and we'd love to hear from you. Please don't hesitate to share with us what went well, and what didn't, using [`kurtosis feedback`](../cli-reference/feedback.md) from the CLI to file an issue in our [Github](https://github.com/kurtosis-tech/eth-kurtosis/issues) or post your question in our [Github Discussions](https://github.com/kurtosis-tech/kurtosis/discussions). + +Thank you! diff --git a/docs/versioned_docs/version-0.81.1/guides/how-to-local-eth-testnet.md b/docs/versioned_docs/version-0.81.6/guides/how-to-local-eth-testnet.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/how-to-local-eth-testnet.md rename to docs/versioned_docs/version-0.81.6/guides/how-to-local-eth-testnet.md diff --git a/docs/versioned_docs/version-0.81.1/guides/how-to-parameterize-cassandra.md b/docs/versioned_docs/version-0.81.6/guides/how-to-parameterize-cassandra.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/how-to-parameterize-cassandra.md rename to docs/versioned_docs/version-0.81.6/guides/how-to-parameterize-cassandra.md diff --git a/docs/versioned_docs/version-0.81.1/guides/installing-historical-versions.md b/docs/versioned_docs/version-0.81.6/guides/installing-historical-versions.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/installing-historical-versions.md rename to docs/versioned_docs/version-0.81.6/guides/installing-historical-versions.md diff --git a/docs/versioned_docs/version-0.81.1/guides/installing-the-cli.md b/docs/versioned_docs/version-0.81.6/guides/installing-the-cli.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/installing-the-cli.md rename to docs/versioned_docs/version-0.81.6/guides/installing-the-cli.md diff --git a/docs/versioned_docs/version-0.81.1/guides/running-in-ci.md b/docs/versioned_docs/version-0.81.6/guides/running-in-ci.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/running-in-ci.md rename to docs/versioned_docs/version-0.81.6/guides/running-in-ci.md diff --git a/docs/versioned_docs/version-0.81.1/guides/running-in-k8s.md b/docs/versioned_docs/version-0.81.6/guides/running-in-k8s.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/running-in-k8s.md rename to docs/versioned_docs/version-0.81.6/guides/running-in-k8s.md diff --git a/docs/versioned_docs/version-0.81.1/guides/upgrading-the-cli.md b/docs/versioned_docs/version-0.81.6/guides/upgrading-the-cli.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/guides/upgrading-the-cli.md rename to docs/versioned_docs/version-0.81.6/guides/upgrading-the-cli.md diff --git a/docs/versioned_docs/version-0.81.1/home.md b/docs/versioned_docs/version-0.81.6/home.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/home.md rename to docs/versioned_docs/version-0.81.6/home.md diff --git a/docs/versioned_docs/version-0.81.1/quickstart.md b/docs/versioned_docs/version-0.81.6/quickstart.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/quickstart.md rename to docs/versioned_docs/version-0.81.6/quickstart.md diff --git a/docs/versioned_docs/version-0.81.1/roadmap.md b/docs/versioned_docs/version-0.81.6/roadmap.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/roadmap.md rename to docs/versioned_docs/version-0.81.6/roadmap.md diff --git a/docs/versioned_docs/version-0.81.1/sdk.md b/docs/versioned_docs/version-0.81.6/sdk.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/sdk.md rename to docs/versioned_docs/version-0.81.6/sdk.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/args.md b/docs/versioned_docs/version-0.81.6/starlark-reference/args.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/args.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/args.md diff --git a/docs/versioned_docs/version-0.81.6/starlark-reference/directory.md b/docs/versioned_docs/version-0.81.6/starlark-reference/directory.md new file mode 100644 index 0000000000..f4a57f5b49 --- /dev/null +++ b/docs/versioned_docs/version-0.81.6/starlark-reference/directory.md @@ -0,0 +1,35 @@ +--- +title: Directory +sidebar_label: Directory +--- + +The `Directory` constructor creates a `Directory` object that represents a directory inside an existing service (see +the [ServiceConfig][service-config] object). +Directory object can be either a files artifact or a persistent directory, depending on the arguments passed to the +constructor. + +```python +file_artifact_directory = Directory( + artifact_name=files_artifact_1, +) +# Or: +persistent_directory = Directory( + persistent_key="data-directory" +) +``` + +A directory composed of a files artifact will be automatically provisioned with the given files artifact content. In +the above example, `files_artifact_1` is a files artifact name. (see [upload_files][upload-files-reference], +[render_templates][render-templates-reference] and [store_service_files][store-service-reference] to learn more about +on how to create file artifacts). + +A persistent directory, as its name indicates, persists over service updates and restarts. It is uniquely identified +by its `persistent_key` and the service ID on which it is being used (a persistent directory cannot be shared across +multiple services). When it is first created, it will be empty. The service can write anything in it. When the service +gets updated, the data in it persists. It is particularly useful for a service's data directory, logs directory, etc. + + +[render-templates-reference]: ./plan.md#render_templates +[service-config]: ./service-config.md +[store-service-reference]: ./plan.md#store_service_files +[upload-files-reference]: ./plan.md#upload_files diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/exec-recipe.md b/docs/versioned_docs/version-0.81.6/starlark-reference/exec-recipe.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/exec-recipe.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/exec-recipe.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/get-http-request-recipe.md b/docs/versioned_docs/version-0.81.6/starlark-reference/get-http-request-recipe.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/get-http-request-recipe.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/get-http-request-recipe.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/import-module.md b/docs/versioned_docs/version-0.81.6/starlark-reference/import-module.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/import-module.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/import-module.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/index.md b/docs/versioned_docs/version-0.81.6/starlark-reference/index.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/index.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/index.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/plan.md b/docs/versioned_docs/version-0.81.6/starlark-reference/plan.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/plan.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/plan.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/port-spec.md b/docs/versioned_docs/version-0.81.6/starlark-reference/port-spec.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/port-spec.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/port-spec.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/post-http-request-recipe.md b/docs/versioned_docs/version-0.81.6/starlark-reference/post-http-request-recipe.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/post-http-request-recipe.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/post-http-request-recipe.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/read-file.md b/docs/versioned_docs/version-0.81.6/starlark-reference/read-file.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/read-file.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/read-file.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/ready-condition.md b/docs/versioned_docs/version-0.81.6/starlark-reference/ready-condition.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/ready-condition.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/ready-condition.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/service-config.md b/docs/versioned_docs/version-0.81.6/starlark-reference/service-config.md similarity index 86% rename from docs/versioned_docs/version-0.81.1/starlark-reference/service-config.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/service-config.md index 89339a4dff..da1694786e 100644 --- a/docs/versioned_docs/version-0.81.1/starlark-reference/service-config.md +++ b/docs/versioned_docs/version-0.81.6/starlark-reference/service-config.md @@ -30,12 +30,18 @@ config = ServiceConfig( ), }, - # A mapping of path_on_container_where_contents_will_be_mounted -> files_artifact_id_to_mount - # For more info on what a files artifact is, see below + # A mapping of path_on_container_where_contents_will_be_mounted -> Directory object or file artifact name + # For more info on what a Directory object is, see below + # # OPTIONAL (Default: {}) files = { - "path/to/file/1": files_artifact_1, - "path/to/file/2": files_artifact_2, + "path/to/files/artifact_1/": files_artifact_1, + "path/to/files/artifact_2/": Directory( + artifact_name=files_artifact_2, + ), + "path/to/persistent/directory/": Directory( + persistent_key="data-directory", + ), }, # The ENTRYPOINT statement hardcoded in a container image's Dockerfile might not be suitable for your needs. @@ -93,7 +99,8 @@ config = ServiceConfig( ``` The `ports` dictionary argument accepts a key value pair, where `key` is a user defined unique port identifier and `value` is a [PortSpec][port-spec] object. -The `files` dictionary argument accepts a key value pair, where `key` is the path where the contents of the artifact will be mounted to and `value` is a file artifact name. (see [upload_files][upload-files-reference], [render_templates][render-templates-reference] and [store_service_files][store-service-reference] to learn more about on how to create file artifacts) +The `files` dictionary argument accepts a key value pair, where `key` is the path where the contents of the artifact will be mounted to and `value` is a [Directory][directory] object or files artifact name. +Using a `Directory` object with `artifact_name` is strictly equivalent to directly using the files artifact name as the value of the dictionary. This is just to simplify usage. You can view more information on [configuring the `ReadyCondition` type here][ready-condition]. @@ -104,8 +111,6 @@ set the `entrypoint` to `["/bin/sh", "-c"]` and then set the `cmd` to the comman [add-service-reference]: ./plan.md#add_service +[directory]: ./directory.md [port-spec]: ./port-spec.md -[upload-files-reference]: ./plan.md#upload_files -[render-templates-reference]: ./plan.md#render_templates -[store-service-reference]: ./plan.md#store_service_files [ready-condition]: ./ready-condition.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/service.md b/docs/versioned_docs/version-0.81.6/starlark-reference/service.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/service.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/service.md diff --git a/docs/versioned_docs/version-0.81.1/starlark-reference/standard-library.md b/docs/versioned_docs/version-0.81.6/starlark-reference/standard-library.md similarity index 100% rename from docs/versioned_docs/version-0.81.1/starlark-reference/standard-library.md rename to docs/versioned_docs/version-0.81.6/starlark-reference/standard-library.md diff --git a/docs/versioned_sidebars/version-0.81.1-sidebars.json b/docs/versioned_sidebars/version-0.81.6-sidebars.json similarity index 100% rename from docs/versioned_sidebars/version-0.81.1-sidebars.json rename to docs/versioned_sidebars/version-0.81.6-sidebars.json diff --git a/docs/versions.json b/docs/versions.json index 3e0e4f1167..58c3520cc7 100644 --- a/docs/versions.json +++ b/docs/versions.json @@ -1,9 +1,9 @@ [ + "0.81.6", "0.81.5", "0.81.4", "0.81.3", "0.81.2", - "0.81.1", "0.80.24", "0.79.0", "0.78.5",