Skip to content

Commit

Permalink
chore(main): release 0.80.14 (#955)
Browse files Browse the repository at this point in the history
🤖 I have created a release *beep* *boop*
---


##
[0.80.14](0.80.13...0.80.14)
(2023-07-24)


### Features

* Add ability to update a running service
([#943](#943))
([42a67f9](42a67f9))
* added create enclave flow
([#962](#962))
([4c931b8](4c931b8))
* Idempotent run V1 - services can now be live-updated inside an enclave
([#954](#954))
([a6a118d](a6a118d))


### Bug Fixes

* Fix `successfully executed` bug in APIC logs when script fails
([#964](#964))
([32fe63f](32fe63f))
* no magic string replacement in python packages
([#966](#966))
([8b0fa62](8b0fa62))
* the old go download
([#958](#958))
([f1b52ca](f1b52ca))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: kurtosisbot <kurtosisbot@users.noreply.github.com>
  • Loading branch information
kurtosisbot and kurtosisbot committed Jul 24, 2023
1 parent 4c931b8 commit c421afd
Show file tree
Hide file tree
Showing 109 changed files with 284 additions and 61 deletions.
16 changes: 16 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,21 @@
# Changelog

## [0.80.14](https://github.com/kurtosis-tech/kurtosis/compare/0.80.13...0.80.14) (2023-07-24)


### Features

* Add ability to update a running service ([#943](https://github.com/kurtosis-tech/kurtosis/issues/943)) ([42a67f9](https://github.com/kurtosis-tech/kurtosis/commit/42a67f9a3f9d4413f58929867b4e6e61eeeaa25e))
* added create enclave flow ([#962](https://github.com/kurtosis-tech/kurtosis/issues/962)) ([4c931b8](https://github.com/kurtosis-tech/kurtosis/commit/4c931b882e4298cf8d99d88425b0323576f7baf5))
* Idempotent run V1 - services can now be live-updated inside an enclave ([#954](https://github.com/kurtosis-tech/kurtosis/issues/954)) ([a6a118d](https://github.com/kurtosis-tech/kurtosis/commit/a6a118d5b6cc0d3560a5e3abdd8b043397efeced))


### Bug Fixes

* Fix `successfully executed` bug in APIC logs when script fails ([#964](https://github.com/kurtosis-tech/kurtosis/issues/964)) ([32fe63f](https://github.com/kurtosis-tech/kurtosis/commit/32fe63fcb77a8db78b2e1e86be18d3857bfa5fc0))
* no magic string replacement in python packages ([#966](https://github.com/kurtosis-tech/kurtosis/issues/966)) ([8b0fa62](https://github.com/kurtosis-tech/kurtosis/commit/8b0fa623a2c73ec195e2204da5a8463e016e6833))
* the old go download ([#958](https://github.com/kurtosis-tech/kurtosis/issues/958)) ([f1b52ca](https://github.com/kurtosis-tech/kurtosis/commit/f1b52ca98215f090a849e626f934ccd341ad91c3))

## [0.80.13](https://github.com/kurtosis-tech/kurtosis/compare/0.80.12...0.80.13) (2023-07-20)


Expand Down
4 changes: 2 additions & 2 deletions LICENSE.md
Expand Up @@ -3,7 +3,7 @@ Business Source License 1.1
Parameters

Licensor: Kurtosis Technologies, Inc.
Licensed Work: Kurtosis 0.80.13
Licensed Work: Kurtosis 0.80.14
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.
Expand All @@ -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-07-20
Change Date: 2027-07-24

Change License: AGPLv3 (GNU Affero General Public License Version 3)

Expand Down
2 changes: 1 addition & 1 deletion api/golang/kurtosis_version/kurtosis_version.go
Expand Up @@ -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.80.13"
KurtosisVersion = "0.80.14"
// !!!!!!!!!!! DO NOT UPDATE! WILL BE MANUALLY UPDATED DURING THE RELEASE PROCESS !!!!!!!!!!!!!!!!!!!!!!
)
2 changes: 1 addition & 1 deletion api/rust/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "kurtosis-sdk"
version = "0.80.13"
version = "0.80.14"
license = "BUSL-1.1"
description = "Rust SDK for Kurtosis"
edition = "2021"
Expand Down
2 changes: 1 addition & 1 deletion 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.80.13",
"version": "0.80.14",
"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",
Expand Down
2 changes: 1 addition & 1 deletion 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.80.13"
export const KURTOSIS_VERSION: string = "0.80.14"
// !!!!!!!!!!! DO NOT UPDATE! WILL BE MANUALLY UPDATED DURING THE RELEASE PROCESS !!!!!!!!!!!!!!!!!!!!!!
Expand Up @@ -35,6 +35,19 @@ Kurtosis has three different types of waits. Described here are the three, with
- More complex to configure
- Cannot be used to short-circuit `Plan.add_services`

Choosing service names in Kurtosis
----------------------------------
Kurtosis service names implements [RFC-1035](https://datatracker.ietf.org/doc/html/rfc1035), meaning the names of all services must be a valid [RFC-1035 Label Name](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#rfc-1035-label-names). Tactically this means a service name must:

* contain at most 63 characters
* contain only lowercase alphanumeric characters or '-'
* start with an alphabetic character
* end with an alphanumeric character

Failure to adhere to the above standards will result in errors when running Kurtosis.



<!---------------------------------------- ONLY LINKS BELOW HERE!!! ----------------------------------->
[args-concepts-reference]: ./concepts-reference/args.md

Expand Down
@@ -1,5 +1,64 @@
# Changelog

## [0.80.14](https://github.com/kurtosis-tech/kurtosis/compare/0.80.13...0.80.14) (2023-07-24)


### Features

* Add ability to update a running service ([#943](https://github.com/kurtosis-tech/kurtosis/issues/943)) ([42a67f9](https://github.com/kurtosis-tech/kurtosis/commit/42a67f9a3f9d4413f58929867b4e6e61eeeaa25e))
* added create enclave flow ([#962](https://github.com/kurtosis-tech/kurtosis/issues/962)) ([4c931b8](https://github.com/kurtosis-tech/kurtosis/commit/4c931b882e4298cf8d99d88425b0323576f7baf5))
* Idempotent run V1 - services can now be live-updated inside an enclave ([#954](https://github.com/kurtosis-tech/kurtosis/issues/954)) ([a6a118d](https://github.com/kurtosis-tech/kurtosis/commit/a6a118d5b6cc0d3560a5e3abdd8b043397efeced))


### Bug Fixes

* Fix `successfully executed` bug in APIC logs when script fails ([#964](https://github.com/kurtosis-tech/kurtosis/issues/964)) ([32fe63f](https://github.com/kurtosis-tech/kurtosis/commit/32fe63fcb77a8db78b2e1e86be18d3857bfa5fc0))
* no magic string replacement in python packages ([#966](https://github.com/kurtosis-tech/kurtosis/issues/966)) ([8b0fa62](https://github.com/kurtosis-tech/kurtosis/commit/8b0fa623a2c73ec195e2204da5a8463e016e6833))
* the old go download ([#958](https://github.com/kurtosis-tech/kurtosis/issues/958)) ([f1b52ca](https://github.com/kurtosis-tech/kurtosis/commit/f1b52ca98215f090a849e626f934ccd341ad91c3))

## [0.80.13](https://github.com/kurtosis-tech/kurtosis/compare/0.80.12...0.80.13) (2023-07-20)


### Features

* Add autocomplete for file path of artifact files inspect ([#947](https://github.com/kurtosis-tech/kurtosis/issues/947)) ([f72dfce](https://github.com/kurtosis-tech/kurtosis/commit/f72dfce9b755c37dde849f9047ef4a6ca7e59cb2))


### Bug Fixes

* broken symlinks on Kurtosis packages ([#944](https://github.com/kurtosis-tech/kurtosis/issues/944)) ([fbb0aee](https://github.com/kurtosis-tech/kurtosis/commit/fbb0aee6edfce4598b0384aebfe71b1e12b9730c)), closes [#846](https://github.com/kurtosis-tech/kurtosis/issues/846)
* improve frontend ([#940](https://github.com/kurtosis-tech/kurtosis/issues/940)) ([36153e2](https://github.com/kurtosis-tech/kurtosis/commit/36153e2c6e3c332508d6071d2f9101f77cfb6295))
* improved error msg ([#936](https://github.com/kurtosis-tech/kurtosis/issues/936)) ([4f72ae1](https://github.com/kurtosis-tech/kurtosis/commit/4f72ae12409d6ddd8c2e2c6b61770081d9200bde))

## [0.80.12](https://github.com/kurtosis-tech/kurtosis/compare/0.80.11...0.80.12) (2023-07-18)


### Features

* Service count can go up to 1024 in Docker backend ([#919](https://github.com/kurtosis-tech/kurtosis/issues/919)) ([e1dfff1](https://github.com/kurtosis-tech/kurtosis/commit/e1dfff119a0b6635e732e0e09de68b56d6af7d63))

## [0.80.11](https://github.com/kurtosis-tech/kurtosis/compare/0.80.10...0.80.11) (2023-07-18)


### Features

* Add file artifact inspect API do APIC ([#885](https://github.com/kurtosis-tech/kurtosis/issues/885)) ([7ad8155](https://github.com/kurtosis-tech/kurtosis/commit/7ad81553a8056887e1399649536319922a05bdc1))
* Add file inspect command to the CLI ([#905](https://github.com/kurtosis-tech/kurtosis/issues/905)) ([bb36a46](https://github.com/kurtosis-tech/kurtosis/commit/bb36a469925c3a8c00a88c0f5a16995088d26548))
* added run python ([#913](https://github.com/kurtosis-tech/kurtosis/issues/913)) ([365f5cf](https://github.com/kurtosis-tech/kurtosis/commit/365f5cf15399dd0e79f7b82d5ab4ad823def00b5))
* upload files support relative locators ([#930](https://github.com/kurtosis-tech/kurtosis/issues/930)) ([8d60968](https://github.com/kurtosis-tech/kurtosis/commit/8d609686ce78a72f82455592b48eeab94b44c359))


### Bug Fixes

* make service labels more restrictive ([#929](https://github.com/kurtosis-tech/kurtosis/issues/929)) ([a8fb599](https://github.com/kurtosis-tech/kurtosis/commit/a8fb5992d0e60bc50efa8585393048c168e878f0)), closes [#928](https://github.com/kurtosis-tech/kurtosis/issues/928)

## [0.80.10](https://github.com/kurtosis-tech/kurtosis/compare/0.80.9...0.80.10) (2023-07-17)


### Features

* Added enclave pool for improving performance on enclave creation ([#787](https://github.com/kurtosis-tech/kurtosis/issues/787)) ([d6efa43](https://github.com/kurtosis-tech/kurtosis/commit/d6efa435efeb9989de8f20f1d2d80603b7ef6827))

## [0.80.9](https://github.com/kurtosis-tech/kurtosis/compare/0.80.8...0.80.9) (2023-07-17)


Expand Down
@@ -0,0 +1,18 @@
---
title: engine restart
sidebar_label: engine restart
slug: /engine-restart
---

The CLI interacts with the Kurtosis engine, which is a very lightweight container. The CLI will start the engine container automatically for you and you should never need to start it manually, but you might need to restart the engine after a CLI upgrade. To do so, run:

```bash
kurtosis engine restart
```

You may optionally pass in the following flags with this command:
* `--log-level`: The level that the started engine should log at. Options include: `panic`, `fatal`, `error`, `warning`, `info`, `debug`, or `trace`. The engine logs at the `info` level by default.
* `--version`: The version (Docker tag) of the Kurtosis engine that should be started. If not set, the engine will start up with the default version.
* `--enclave-pool-size`: The size of the Kurtosis engine enclave pool. The enclave pool is a component of the Kurtosis engine that allows us to create and maintain 'n' number of idle enclaves for future use. This functionality allows to improve the performance for each new creation enclave request.

CAUTION: The `--enclave-pool-size` flag is only available for Kubernetes.
Expand Up @@ -13,4 +13,7 @@ This command will do nothing if the Kurtosis engine is already running.

You may optionally pass in the following flags with this command:
* `--log-level`: The level that the started engine should log at. Options include: `panic`, `fatal`, `error`, `warning`, `info`, `debug`, or `trace`. The engine logs at the `info` level by default.
* `--version`: The version (Docker tag) of the Kurtosis engine that should be started. If not set, the engine will start up with the default version.
* `--version`: The version (Docker tag) of the Kurtosis engine that should be started. If not set, the engine will start up with the default version.
* `--enclave-pool-size`: The size of the Kurtosis engine enclave pool. The enclave pool is a component of the Kurtosis engine that allows us to create and maintain 'n' number of idle enclaves for future use. This functionality allows to improve the performance for each new creation enclave request.

CAUTION: The `--enclave-pool-size` flag is only available for Kubernetes.
Expand Up @@ -11,7 +11,8 @@ kurtosis service add $THE_ENCLAVE_IDENTIFIER $THE_SERVICE_IDENTIFIER $CONTAINER_
```

where `$THE_ENCLAVE_IDENTIFIER` and the `$THE_SERVICE_IDENTIFIER` are [resource identifiers](../concepts-reference/resource-identifier.md) for the enclave and service, respectively.
Note, the service identifier needs to be formatted according to RFC 1123. Specifically, 1-63 lowercase alphanumeric characters with dashes and cannot start or end with dashes.
Note, the service identifier needs to be formatted according to RFC 1035. Specifically, 1-63 lowercase alphanumeric characters with dashes and cannot start or end with dashes. Also service names
have to start with a lowercase alphabet.

Much like `docker run`, this command has multiple options available to customize the service that's started:

Expand Down
Expand Up @@ -4,20 +4,20 @@ sidebar_label: Locators
---

:::info
Locators are a part of the Kurtosis package system. To read about the package system in detail, [see here][how-do-kurtosis-imports-work-explanation].
Locators are a part of the [Kurtosis packaging system][packages]. To read about the package system in detail, [see here][how-do-kurtosis-imports-work-explanation].
:::

A locator is a URL-like string used to locate a resource inside [a Kurtosis package][packages]. For example, this locator:
A locator is how resources are identified when being imported in a Starlark script - namely by [`import_module`](../starlark-reference/import-module.md) and [`read_file`](../starlark-reference/read-file.md). There are two types of locators: absolute and relative.

### Absolute Locators
Absolute locators unambiguously identify a resource using a URL-like syntax. For example, this locator:

```
github.com/package-author/package-repo/path/to/directory-with-kurtosis.yml/some-file.star
```

references a file inside a GitHub repo called `package-repo`, owned by `package-author`, that lives at the path `/path/to/directory-with-kurtosis.yml/some-file.star` relative to the root of the repo.


Locators are used for identifying resources that will be used inside a Starlark script - namely by [`import_module`](../starlark-reference/import-module.md) and [`read_file`](../starlark-reference/read-file.md).

:::caution
A GitHub URL is **not** a valid locator, because GitHub adds extra `/blob/main` paths to the URL that don't reflect the file's path in the repo. For example, a GitHub URL of:

Expand All @@ -36,69 +36,71 @@ github.com/kurtosis-tech/kurtosis/starlark/test.star
Only locators pointing to public GitHub repositories are currently allowed.
:::

Relative Locators are supported but the relative locator needs to be inside the package. Relative locators are relative to the file being interpreted. For a Starlark script to reference a local file (i.e. one that lives next to in the filesystem), the Starlark script must use the name of the package that it lives inside.
### Package Restriction
Any Starlark script that wishes to use external resources must be
a part of a [Kurtosis package][packages].

For example, suppose we had a [Kurtosis package][packages] like so:

```
/
package-repo
main.star
src/
lib.star
package-repo/
my-package/
kurtosis.yml
main.star
helpers/
random-script.star
not-a-package/
random-script.star
```

with a `kurtosis.yml` file like so:

```yaml
name: github.com/package-author/package-repo
name: github.com/package-author/package-repo/my-package
```

The `main.star` can refer to the `lib.star` in both of the following ways

The `main.star` file would import the `random-script.star` from the `helpers` subdirectory of `my-package` like so:

```python
helpers = import_module("github.com/package-author/package-repo/my-package/helpers/random-script.star")
```
# valid relative import
lib_via_relative_import = import_module("./src/lib.star")

# valid absolute import
lib_via_absolute_import = import_module("github.com/kurtosis-tech/package-repo/src/lib.star")
The import statement below will not succeed, because `main.star` cannot import from non-packages.
(see [how import works][how-do-kurtosis-imports-work-explanation] for more information)

```python
helpers = import_module("github.com/package-author/package-repo/not-a-package/random-script.star")
```

Any Starlark script that wishes to use external resources must be
a part of a [Kurtosis package][packages].
### Relative Locators
Relative locators like `./helper.star` are allowed as a short alternative to the full absolute locator. However, a relative locator cannot be used to reference files outside the package. In other words, you cannot use a relative locator to reference files above the directory containing the `kurtosis.yml` file.

For example, suppose we had a [Kurtosis package][packages] like so:
Suppose we had a [Kurtosis package][packages] like so:

```
/
package-repo
my-package
kurtosis.yml
main.star
helpers
random-script.star
not-a-package
random-script.star
package-repo/
main.star
src/
lib.star
```

with a `kurtosis.yml` file like so:

```yaml
name: github.com/package-author/package-repo/my-package
name: github.com/package-author/package-repo
```

The `main.star` file would import the `random-script.star` from the `helpers` subdirectory of `my-package` like so:

```python
helpers = import_module("github.com/package-author/package-repo/my-package/helpers/random-script.star")
```
The `main.star` can refer to the `lib.star` file using either relative or absolute imports:

The import statement below will not succeed, this is because `main.star` cannot import from non-packages.
(see [how import works][how-do-kurtosis-imports-work-explanation] for more information)

```python
helpers = import_module("github.com/package-author/package-repo/not-a-package/random-script.star")
# valid relative import
lib_via_relative_import = import_module("./src/lib.star")

# valid absolute import
lib_via_absolute_import = import_module("github.com/kurtosis-tech/package-repo/src/lib.star")
```

<!------------------ ONLY LINKS BELOW HERE -------------------->
Expand Down
17 changes: 17 additions & 0 deletions docs/versioned_docs/version-0.80.14/faq.md
@@ -0,0 +1,17 @@
---
title: FAQ
sidebar_label: FAQ
slug: /faq
---

Why can't I do X in Starlark?
-----------------------------
Starlark is intended to be a configuration and orchestration language, not a general-purpose programming language. It is excellent at simplicity, readability, and determinism, and terrible at general-purpose programming. We want to use Starlark for what it's good at, while making it easy for you to call down to whatever general-purpose programming you need for more complex logic.

Therefore, Kurtosis provides:

- [`plan.run_sh`](./starlark-reference/plan.md#run_sh) for running Bash tasks on a disposable container
- [`plan.run_python`](./starlark-reference/plan.md#run_python) for running Python tasks on a disposable container
- [`plan.exec`](./starlark-reference/plan.md#exec) for running Bash on a service

All of these let you customize the image to run on, so you can functionally call any code in any language using Kurtosis.

0 comments on commit c421afd

Please sign in to comment.