Skip to content

Commit

Permalink
feat: add launchpad-taskfiles (#98)
Browse files Browse the repository at this point in the history
  • Loading branch information
chriswessels authored Aug 7, 2024
1 parent 683e608 commit 1ece73b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 25 deletions.
6 changes: 5 additions & 1 deletion docs/launchpad/docs-map.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ sidebar_position: 1

# Launchpad Documentation

Launchpad is a comprehensive toolkit designed for running a Graph Protocol Indexer on Kubernetes, aimed at providing the fastest route to production deployments of multi-chain indexing software stacks with robust security and performance defaults. Suitable for environments ranging from a single node cluster to large scale multi-region clusters. Launchpad is also comprised of an opinionated set of tools that run on your local machine, that are layered to offer a declarative workflow for managing your deployment stack. Key components of Launchpad include the Launchpad Starter ([`graphops/launchpad-starter`](https://github.com/graphops/launchpad-starter)), which serves as the initial setup point for new deployments; Launchpad Charts ([`graphops/launchpad-charts`](https://github.com/graphops/launchpad-charts)), a collection of Helm Charts for blockchains and web3 applications; and Launchpad Namespaces ([`graphops/launchpad-namespaces`](https://github.com/graphops/launchpad-namespaces)), which are preconfigured Kubernetes Namespaces that utilize Helmfile for enhanced management.
Launchpad is a comprehensive toolkit designed for running a Graph Protocol Indexer on Kubernetes, aimed at providing the fastest route to production deployments of multi-chain indexing software stacks with robust security and performance defaults.

Launchpad is suitable for environments ranging from a single node cluster to large scale multi-region clusters. Launchpad is also comprised of an opinionated set of tools that run on your local machine, that are layered to offer a declarative workflow for managing your deployment stack.

Key components of Launchpad include the Launchpad Starter ([`graphops/launchpad-starter`](https://github.com/graphops/launchpad-starter)), which serves as the initial setup point for new deployments; Launchpad Charts ([`graphops/launchpad-charts`](https://github.com/graphops/launchpad-charts)), a collection of Helm Charts for blockchains and web3 applications; Launchpad Namespaces ([`graphops/launchpad-namespaces`](https://github.com/graphops/launchpad-namespaces)), which are preconfigured Kubernetes Namespaces that utilize Helmfile for enhanced management; and Launchpad Taskfiles ([`graphops/launchpad-taskfiles`](https://github.com/graphops/launchpad-taskfiles)), a collection of Tasks defined with Taskfile.

Here's a guide to help you navigate this documentation based on the information you're seeking:

Expand Down
3 changes: 2 additions & 1 deletion docs/launchpad/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@ sidebar_position: 2

Launchpad is a toolkit for running a Graph Protocol Indexer on Kubernetes. It aims to provide the fastest path to production multi-chain indexing, with sane security and performance defaults. It should work well whether you have a single node cluster or twenty. It is comprised of an opinionated set of tools on your local machine, layered over one another to provide a declarative workflow to manage your deployments stack.

There are three major components to be aware of:
There are four major components to be aware of:

1. Launchpad Starter ([`graphops/launchpad-starter`](https://github.com/graphops/launchpad-starter)): A starting point for every new Launchpad deployment
2. Launchpad Charts ([`graphops/launchpad-charts`](https://github.com/graphops/launchpad-charts)): A collection of Helm Charts for blockchains and web3 apps
3. Launchpad Namespaces ([`graphops/launchpad-namespaces`](https://github.com/graphops/launchpad-namespaces)): A collection of preconfigured Kubernetes Namespaces using Helmfile
4. Launchpad Taskfiles ([`graphops/launchpad-taskfiles`](https://github.com/graphops/launchpad-taskfiles)): A collection of preconfigured Tasks using Taskfile

![Launchpad components](/img/launchpad-repos-slide.svg)

Expand Down
32 changes: 9 additions & 23 deletions docs/launchpad/quick-start.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,11 @@ All work on your infrastructure will take place in this new repo. We recommend c

Next, we should install all of the local tooling dependencies (like Helm or Kubectl) that we will need.

We can easily do that by running the launchpad:setup command.
We can easily do that by running the `launchpad:update-deps` command.

```shell
# You may need to use sudo for this command
task launchpad:setup

# For now, this will just run launchpad:deps, which will install all the local tooling dependencies
task launchpad:update-deps
```

### Connect your Local environment to your Kubernetes cluster
Expand Down Expand Up @@ -127,22 +125,6 @@ In the example above, values can be set to override the default configurations i
### Syncing your `helmfile.yaml` with the cluster
Next we need to install key non-Graph components of our stack, including monitoring and logging systems.
Let's see what the `releases:apply-base` task is actually doing by running `task help -- releases:apply-base`:

```shell
task: releases:apply-base
Apply current helmfile state filtered by all base layer services
commands:
• task releases:apply -- launchpad.graphops.xyz/layer=base
```

As you can see, `releases:apply-base` just calls `releases:apply` filter for all namespaces with the label `launchpad.graphops.xyz/layer=base`.

You can list all the releases present in the helmfile.yaml, and their labels, by running `task releases:list`:
```shell
NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION
Expand All @@ -164,7 +146,11 @@ In particular, the storage namespace may be a requirement even for other base na
Next, let's go ahead and install all the remaining cluster services. You will be prompted to install each namespace, with a summary of changes to be made.

```shell
task releases:apply-base
task releases:apply -- monitoring
task releases:apply -- storage
task releases:apply -- sealed-secrets
task releases:apply -- postgres-operator
task releases:apply -- ingress
```

### 🎉 Milestone: Kubernetes and core systems running!
Expand Down Expand Up @@ -334,9 +320,9 @@ For full implementation details and other comprehensive notes about `launchpad-n

### Pulling in starter changes

From time to time, you may want to update your infra repo with the latest changes from our starter.
From time to time, you may want to update your infra repo with the latest changes from our starter.

Launchpad comes with a built in task to do this:
Launchpad comes with a built in task to do this, but it does require you to handle any rebase conflicts:

```shell
task launchpad:pull-upstream-starter
Expand Down

0 comments on commit 1ece73b

Please sign in to comment.