Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: revamp package consumer quickstart #1805

Merged
merged 36 commits into from
Nov 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
782bdbd
working on revcamping the quickstart
galenmarchetti Nov 10, 2023
8649037
changing quickstart
galenmarchetti Nov 10, 2023
6357b2b
docs
galenmarchetti Nov 10, 2023
c54aa73
improving quikstart
galenmarchetti Nov 10, 2023
59e3579
improving docs a ton
galenmarchetti Nov 10, 2023
1f25ff3
modifying the ol quickstart
galenmarchetti Nov 10, 2023
e7a8c46
grammar in quickstart
galenmarchetti Nov 10, 2023
7c4c6c1
grammar in quickstart
galenmarchetti Nov 10, 2023
e7122b8
quickstart
galenmarchetti Nov 10, 2023
8b58b63
cleaning up words
galenmarchetti Nov 10, 2023
b3e90aa
add summary of what you did to last section of quickstart
galenmarchetti Nov 10, 2023
2aa9b53
using toggles
galenmarchetti Nov 10, 2023
f4137ac
improving last section
galenmarchetti Nov 10, 2023
0a00ee1
adding CTAs
galenmarchetti Nov 10, 2023
ebcf203
fixing up words
galenmarchetti Nov 10, 2023
e89254c
changing plan for files artifact in basic concepts
galenmarchetti Nov 10, 2023
8563d3d
changing logo to go to docs
galenmarchetti Nov 10, 2023
f77b637
fixing up the basic concepts explainers
galenmarchetti Nov 10, 2023
8997d02
fixing up command click
galenmarchetti Nov 10, 2023
1383d98
making install cleaner
galenmarchetti Nov 11, 2023
e31e2ba
remove warning of bug
galenmarchetti Nov 11, 2023
f107248
remove mention of k8s
galenmarchetti Nov 11, 2023
8822845
improving quickstart
galenmarchetti Nov 11, 2023
0c16d4b
quickstart
galenmarchetti Nov 11, 2023
7ac16ff
last quickstart changes
galenmarchetti Nov 14, 2023
898b1e4
brevity
galenmarchetti Nov 16, 2023
5d8d5cf
changing images
galenmarchetti Nov 16, 2023
67f0837
correctly naming images
galenmarchetti Nov 16, 2023
df63953
adding browser tab to make images more clear
galenmarchetti Nov 16, 2023
28a0558
updating images
galenmarchetti Nov 16, 2023
ee9deab
updating quickstart images
galenmarchetti Nov 16, 2023
ed02369
correcting quickstart
galenmarchetti Nov 16, 2023
5a8f6ed
Merge branch 'main' into gmarchetti/revamp-quickstart
galenmarchetti Nov 16, 2023
74e4b7d
Merge branch 'main' into gmarchetti/revamp-quickstart
galenmarchetti Nov 17, 2023
dd23ca0
remove gitpod
galenmarchetti Nov 17, 2023
b485fd1
Merge branch 'gmarchetti/revamp-quickstart' of github.com:kurtosis-te…
galenmarchetti Nov 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 11 additions & 23 deletions docs/docs/get-started/basic-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ Package

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

```bash
```console
kurtosis run github.com/kurtosis-tech/basic-service-package
```

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

```bash
```console
kurtosis run github.com/kurtosis-tech/basic-service-package \
'{"service_a_count": 2,
"service_b_count": 2,
Expand All @@ -27,31 +27,19 @@ kurtosis run github.com/kurtosis-tech/basic-service-package \
Enclave
-----------

An enclave is a "walled garden" in which Kurtosis runs a containerized backend. Enclaves can run anywhere that you have a Docker engine or a Kubernetes cluster. The main purposes of an enclave are resource isolation and "garbage collection". With an "enclave remove" command (`kurtosis enclave rm`), you can destroy all of the resources used to set up your environment and leave nothing hanging around on your machine(s).
An enclave is a "walled garden" in which Kurtosis runs a containerized backend. Enclaves can run anywhere that you have a Docker engine or a Kubernetes cluster. The main purposes of an enclave are resource isolation and "garbage collection".

Plan
-----------

The "plan" is the series of instructions, encoded in a package, that runs in an enclave. Each instruction in a plan is a basic building block for spinning up a containerized backend. You can see the plan that a package will run by "dry-running" the package:

```bash
kurtosis run --dry-run github.com/kurtosis-tech/basic-service-package
```

<details><summary><b>Rendered Plan</b></summary>
With an "enclave remove" command (`kurtosis enclave rm`), you can destroy all of the resources used to set up your environment and leave nothing hanging around on your machine(s).

```title="Steps in the Plan"
> render_templates

> add_services configs={"service-a-1": ServiceConfig(image="h4ck3rk3y/service-a", ports={"frontend": PortSpec(number=8501, application_protocol="http")}, files={"/app/config": "slender-boulder"})}

> render_templates
Files Artifact
-----------

> add_services configs={"service-b-1": ServiceConfig(image="h4ck3rk3y/service-b", ports={"frontend": PortSpec(number=8501, application_protocol="http")}, files={"/app/config": "purple-comet"}, cmd=["false"])}
A files artifact is a set of files shipped with, or generated by, a package. Files artifacts are typically used for rendering configuration files that must be dynamically generated when an environment spins up, or for shipping static configuration files that must be shared across multiple services.

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

> add_services configs={"service-c-1": ServiceConfig(image="h4ck3rk3y/service-c", ports={"frontend": PortSpec(number=8501, application_protocol="http")}, files={"/app/config": "arctic-oak"}, env_vars={"PARTY_MODE": "false"})}
```console
kurtosis run github.com/kurtosis-tech/basic-service-package
```

</details>
![files-artifact-output-concepts.png](/img/home/files-artifact-output-concepts.png)
8 changes: 4 additions & 4 deletions docs/docs/get-started/get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ To quickly see what Kurtosis feels like, check out the example snippets below:

### Local Deploy on Docker

```bash
```console
kurtosis run github.com/kurtosis-tech/basic-service-package
```

Expand All @@ -34,7 +34,7 @@ kurtosis run github.com/kurtosis-tech/basic-service-package

### Local deploy with feature flag and different numbers of each service

```bash
```console
kurtosis run github.com/kurtosis-tech/basic-service-package \
'{"service_a_count": 2,
"service_b_count": 2,
Expand All @@ -56,10 +56,10 @@ kurtosis run github.com/kurtosis-tech/basic-service-package \

### Remote deploy on Kubernetes

```bash
```console
kurtosis cluster set remote-kubernetes; kurtosis gateway > /dev/null 2>&1 &
```
```bash
```console
kurtosis run github.com/kurtosis-tech/basic-service-package \
'{"service_a_count": 2,
"service_b_count": 2,
Expand Down
25 changes: 6 additions & 19 deletions docs/docs/get-started/installing-the-cli.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Installing Kurtosis
title: Install Kurtosis
id: installing-the-cli
sidebar_label: Installing Kurtosis
sidebar_label: Install Kurtosis
slug: /install
sidebar_position: 2
---
Expand All @@ -13,31 +13,18 @@ import TabItem from '@theme/TabItem';

<!---------- END IMPORTS ------------>


The instructions in this guide will walk you through installing the latest version of Kurtosis.

:::info
We're working on a cloud-hosted version of Kurtosis that doesn't require installing anything. If this interests you, let us know [here](https://mp2k8nqxxgj.typeform.com/to/U1HcXT1H) and we'll let you know when it's ready!
:::

If you already have Kurtosis installed and you're looking to upgrade to latest, [see here][upgrade-guide].

If you're looking to install a historical version instead, [see here][install-historical-guide].
The instructions in this guide will walk you through installing the latest version of Kurtosis.

I. Install & Start Docker
-----------------

1. If you don't already have Docker installed, follow the instructions [here][docker-install] to install the Docker application specific to your machine (e.g. Apple Intel, Apple M1, etc.).
1. Start the Docker daemon (e.g. open Docker Desktop)
1. Verify that Docker is running:
2. Start the Docker daemon (e.g. open Docker Desktop)
3. Verify that Docker is running:
```bash
docker image ls
```

:::note
For some users, Kurtosis fails to run if Docker was not installed in `sudo` mode. We have a workaround detailed in [#1140](https://github.com/kurtosis-tech/kurtosis/issues/1140) while we work on a more graceful solution, outlined in [#1469](https://github.com/kurtosis-tech/kurtosis/issues/1469).
:::

II. Install the CLI
-------------------------

Expand Down Expand Up @@ -134,7 +121,7 @@ kurtosis version

III. (Optional) Add command-line completion
--------------------------------
Kurtosis supports command-line completion to allow completing subcommands and dynamic values (e.g. enclave name during `enclave inspect`). This isn't required, but we believe it significantly enhances the Kurtosis experience for those who are using . If you'd like to install it, see [these instructions][installing-command-line-completion].
Kurtosis supports optional command-line completion to allow completing subcommands and dynamic values (e.g. enclave name during `enclave inspect`). If you'd like to install it, see [these instructions][installing-command-line-completion].

Run the quickstart
------------------
Expand Down
Loading