From 99159994aa3a39af6a455380991804883596be90 Mon Sep 17 00:00:00 2001 From: Carlos Jorge Date: Wed, 9 Aug 2023 14:24:53 +0100 Subject: [PATCH 1/6] docs: wip --- docs/launchpad/client-side-tooling.md | 10 +++-- docs/launchpad/intro.md | 4 +- docs/launchpad/prerequisites.md | 2 +- docs/launchpad/quick-start.md | 63 +++++---------------------- 4 files changed, 21 insertions(+), 58 deletions(-) diff --git a/docs/launchpad/client-side-tooling.md b/docs/launchpad/client-side-tooling.md index 745ecdf9..bfb8bcf4 100644 --- a/docs/launchpad/client-side-tooling.md +++ b/docs/launchpad/client-side-tooling.md @@ -4,11 +4,11 @@ sidebar_position: 5 # Client Side Tooling -Launchpad comes with an opinionated set of tools on your local machine, layered over one another to provide a declarative workflow through all the layers of your infrastructure. +Launchpad comes with an opinionated set of tools on your local machine, layered over one another to provide a declarative workflow to manage your cluster software stack. ![Client Side Stack](/img/launchpad-client-side-stack.svg) -These tools do not run on your servers, but on your local machine. They form the command & control center that you use to send instructions to your cluster of servers. +These tools do not run on your servers, but on your local machine. They form the command & control center that you use to send instructions to your cluster. ## Installing on your local machine @@ -34,8 +34,12 @@ Launchpad uses Helm to deploy packages (Helm Charts) into your cluster. Launchpad uses Helmfile to declare and manage sets of related Helm releases. +### Kustomize + +[Kustomize](https://github.com/kubernetes-sigs/kustomize) lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is. It is used by helmfile for some of its features. + ### Kubectl [Kubectl](https://github.com/kubernetes/kubectl) is the command-line interface for Kubernetes that allows you to deploy, scale, and manage applications on a Kubernetes cluster. It provides a simple, easy-to-use command-line interface for performing common Kubernetes tasks such as creating and managing pods, services, and deployments. -Launchpad uses Kubectl to interact with your Kubernetes cluster. \ No newline at end of file +Launchpad uses Kubectl to interact with your Kubernetes cluster. diff --git a/docs/launchpad/intro.md b/docs/launchpad/intro.md index 4ccff06d..1abf3dec 100644 --- a/docs/launchpad/intro.md +++ b/docs/launchpad/intro.md @@ -4,7 +4,7 @@ sidebar_position: 1 # Introduction -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 host or twenty. It is comprised of an opinionated set of tools on your local machine, layered over one another to provide a declarative workflow through all the layers of your infrastructure. +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: @@ -27,4 +27,4 @@ There are three major components to be aware of: - Read the [Prerequisites](prerequisites) section to understand what you need to bring - Read the [Quick Start guide](quick-start) to get up and running - Look at the repositories above on GitHub to understand how they work -- Review **Advanced Topics** to understand more advanced behaviour +- Review **Advanced Topics** to understand more advanced behavior diff --git a/docs/launchpad/prerequisites.md b/docs/launchpad/prerequisites.md index 907a44b5..ceadb6db 100644 --- a/docs/launchpad/prerequisites.md +++ b/docs/launchpad/prerequisites.md @@ -45,4 +45,4 @@ You will need to provision a Kubernetes cluster. This can be a self-managed clus Launchpad is a collaborative effort to create the best UX for Graph Protocol Indexers on Kubernetes. The Launchpad stack provides an opinionated set of defaults and recipes for success, but to be an advanced operator you will need to learn Kubernetes and many of the other tools in the stack. With Launchpad, you have guard rails to guide you in your journey towards mastering operating your Indexer on Kubernetes. -Please contribute back when you are able! \ No newline at end of file +Please contribute back when you are able! diff --git a/docs/launchpad/quick-start.md b/docs/launchpad/quick-start.md index 56a0fa73..b1b8ea09 100644 --- a/docs/launchpad/quick-start.md +++ b/docs/launchpad/quick-start.md @@ -39,80 +39,39 @@ git push origin main All work on your infrastructure will take place in this new repo. We recommend carefully version controlling all changes you make to your infrastructure configuration. -### Install the launchpad-core submodule and all local dependencies +### Setup the launchpad dependencies -Next, we need to install the `launchpad-core` submodule, which contains Taskfile definitions, Helm Release templates and other useful things we will use. We also need to install all of the local tooling dependencies (like Helm or Kubectl) that we will need. +Next, we should install all of the local tooling dependencies (like Helm or Kubectl) that we will need. -We can easily do both of these things by running the launchpad:setup command. +We can easily do that by running the launchpad:setup command. ```shell # You may need to use sudo for this command task launchpad:setup -# This will run two other tasks: -# launchpad:update-core, which will install the launchpad-core submodule -# launchpad:deps, which will install all the local tooling dependencies -``` - -Installing the `launchpad-core` submodule will leave an uncommitted change in our new repo, so let's commit that now. - -```shell -git add . -git commit -m "feat: added launchpad-core submodule" -git push origin main +# For now, this will just run launchpad:deps, which will install all the local tooling dependencies ``` ### 🎉 Milestone: Local environment configured! -- [x] We now have our own private git repo containing the declarative configuration for our new infrastructure +- [x] We now have our own private git repo containing the declarative configuration for our cluster deployments - [x] We have installed all the tooling dependencies on our local machine, which will be used to control the cluster -- [ ] Next: Use Launchpad to connect to our servers and set them up - -### Update the configuration with your values - -Next we need to fill out `inventory/inventory.yaml`. This file contains our host definitions. - -You can find sample configurations in `inventory/samples`. Some details of the different sammple inventory files available: - -* [`single-node.sample.yaml`](https://github.com/graphops/launchpad-starter/blob/main/inventory/samples/single-node.sample.yaml) - shows an example of a cluster running on one host only, the host acting as both a `k0s Kubernetes controller` and a `k0s Kubernetes worker` -* [`single-node-lvm.sample.yaml`](https://github.com/graphops/launchpad-starter/blob/main/inventory/samples/single-node-lvm.sample.yaml) - shows an example of a cluster running on one host only, the host acting as both a `k0s Kubernetes controller` and a `k0s Kubernetes worker` with lvm storage. Here LVM is being used to create single logical volumes of multiple physical volumes. -* [`single-controller.sample.yaml`](https://github.com/graphops/launchpad-starter/blob/main/inventory/samples/single-controller.sample.yaml) - shows an example of a cluster running on two hosts, one host acting as a `k0s Kubernetes controller` and the other as `k0s Kubernetes worker`. -* [`multi-node.sample.yaml`](https://github.com/graphops/launchpad-starter/blob/main/inventory/samples/multi-node.sample.yaml) - shows an example of a HA cluster comprised of three `k0s Kubernetes controllers` and three `k0s Kubernetes workers`. -* [`multi-node-zfs.sample.yaml`](https://github.com/graphops/launchpad-starter/blob/main/inventory/samples/multi-node-zfs.sample.yaml) - shows an example of a HA cluster comprised of three `k0s Kubernetes controllers` and three `k0s Kubernetes workers` with `zfs` storage. Using this inventory we create [`zfs`](https://wiki.archlinux.org/title/ZFS) pools on `k0s Kubernetes workers` that will act as an advanced filesystem on each worker node which Kubernetes will use when managing various [`persistent-volumes`](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) resources. - -### Bootstrap your hosts with Kubernetes +- [ ] Next: Copy `sample.helmfile.yaml` to `helmfile.yaml` and edit it to customize and deploy Namespaces on the Kubernetes cluster -First, let's apply the base host configuration to your hosts. +### Customize your helmfile.yaml +If you don't have an `helmfile.yaml` file yet, you can start with copying the existing sample one (`sample.helmfile.yaml`): ```shell -task hosts:apply-base +cp sample.helmfile.yaml helmfile.yaml ``` -Next, we can install [K0s](https://k0sproject.io/), our chosen distribution of Kubernetes, onto your hosts. +and edit it with your editor of choice. -```shell -task hosts:apply-k0s -``` - -We should now have our cluster credentials at `inventory/artifacts/k0s-kubeconfig.yml`. Let's make these our default credentials. -```shell -# Make sure our config directory exists -mkdir -p ~/.kube -# Backup our existing credentials if we have any -mv ~/.kube/config ~/.kube/config.backup.$(date +%s) -# Copy our new config into the default location -cp inventory/artifacts/k0s-kubeconfig.yml ~/.kube/config -# Set secure permissions on the file -chmod 600 ~/.kube/config -``` - -:::tip -You can now use Kubernetes clients like `kubectl`, `k9s` or `octant` to inspect your Kubernetes cluster and the workloads running inside it. You can use these tools to watch progress as you are installing releases in the steps below. -::: ### Install releases into the cluster for base cluster services + 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`: From d6bd347b6883300c01edbec2b2c0137469a97b37 Mon Sep 17 00:00:00 2001 From: Carlos Jorge Date: Thu, 10 Aug 2023 03:09:17 +0100 Subject: [PATCH 2/6] docs: wip --- docs/launchpad/quick-start.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/launchpad/quick-start.md b/docs/launchpad/quick-start.md index b1b8ea09..74b6d198 100644 --- a/docs/launchpad/quick-start.md +++ b/docs/launchpad/quick-start.md @@ -65,11 +65,29 @@ If you don't have an `helmfile.yaml` file yet, you can start with copying the ex cp sample.helmfile.yaml helmfile.yaml ``` -and edit it with your editor of choice. +and edit it with your editor of choice. Under that file, there is an `helmfiles:` section declaring Namespaces to be deployed on the cluster, looking like this: + +```yaml +helmfiles: + - path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-stable/latest + selectorsInherited: true + values: + - helmDefaults: + <<: *helmDefaults + + - path: git::https://github.com/graphops/launchpad-namespaces.git@monitoring/helmfile.yaml?ref=monitoring-stable/latest + selectorsInherited: true + + - path: git::https://github.com/graphops/launchpad-namespaces.git@ingress/helmfile.yaml?ref=ingress-stable/latest + selectorsInherited: true + values: + - kubeVersion: *kubeVersion +``` +You can override values, and select which Namespaces you are interested in. Refer to Namespaces documentation available here for more examples on how to configure them, or to see which ones are available: [Namespaces](https://github.com/graphops/launchpad-namespaces). +### Syncing your `helmfile.yaml` with the cluster -### Install releases into the cluster for base cluster services Next we need to install key non-Graph components of our stack, including monitoring and logging systems. From bfc84ceaeba602a1ceb96810e556cd950a3b78bd Mon Sep 17 00:00:00 2001 From: Carlos Jorge Date: Thu, 10 Aug 2023 03:32:27 +0100 Subject: [PATCH 3/6] docs: wip --- docs/launchpad/quick-start.md | 38 ++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/docs/launchpad/quick-start.md b/docs/launchpad/quick-start.md index 74b6d198..0df0966f 100644 --- a/docs/launchpad/quick-start.md +++ b/docs/launchpad/quick-start.md @@ -88,31 +88,41 @@ You can override values, and select which Namespaces you are interested in. Refe ### 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 all namespaces for base cluster services - + +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`. -• task releases:apply -- sealed-secrets -• task releases:apply -- storage -• task releases:apply -- monitoring -• task releases:apply -- ingress -• task releases:apply -- postgres-operator +You can list all the releases present in the helmfile.yaml, and their labels, by running `helmfile list`: +```shell +NAME NAMESPACE ENABLED INSTALLED LABELS CHART VERSION +openebs storage true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:storage openebs/openebs 3.8.0 +openebs-zfs-localpv storage true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:storage openebs-zfs-localpv/zfs-localpv 2.3.0 +openebs-zfs-storageclass storage true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:storage graphops/resource-injector 0.2.0 +openebs-zfs-snapclass storage true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:storage graphops/resource-injector 0.2.0 +postgres-operator postgres-operator true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:postgres-operator postgres-operator-charts/postgres-operator 1.10.0 +ingress-nginx ingress true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:ingress ingress-nginx/ingress-nginx 4.7.1 +cert-manager ingress true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:ingress jetstack/cert-manager v1.12.3 +cert-manager-resources ingress true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:ingress graphops/resource-injector 0.2.0 +sealed-secrets sealed-secrets true true launchpad.graphops.xyz/namespace:sealed-secrets sealed-secrets/sealed-secrets 2.1 ``` -As you can see, `releases:apply-base` just calls `releases:apply` for multiple namespace. +First, update configuration in your `helmfile.yaml` for the base namespaces. You will likely need to configure storage and ingress with your own values. -First, update configuration in the `helmfiles/release-values//*` for the base namespaces. You will likely need to configure storage and ingress with your own values. +In particular, the storage namespace may be a requirement even for other base namespaces, so lets install that one first by running `task releases:apply -- launchpad.graphops.xyz/namespace=storage` -Next, let's go ahead and install all the cluster services. You will be prompted to install each namespace, with a summary of changes to be made. +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 @@ -134,7 +144,7 @@ You can now use `task indexer:forward-grafana` to securely access your remote cl If you have existing external blockchain nodes that you would like to use instead of deploying them into your cluster, you can skip this section, but make sure that you can access those nodes securely (e.g. via an internal network, or using HTTPS and authentication). ::: -Launchpad comes with namespace defitions for a number of blockchain networks, including Ethereum Mainnet, Ethereum Goerli Testnet, Gnosis Chain Mainnet, Polygon mainnet, Abitrum Mainnet, Avalanche Mainnet, Celo Mainnet and others. Using these defintions, you can easily deploy blockchain nodes for the networks you want to index into your cluster. Namespace definitions are located in your `helmfiles/namespace-releases` folder. +Launchpad comes with Namespace definitions for a number of blockchain networks, including Ethereum Mainnet, Ethereum Goerli Testnet, Gnosis Chain Mainnet, Polygon mainnet, Abitrum Mainnet, Avalanche Mainnet, Celo Mainnet and others. Using those Namespaces, you can easily deploy blockchain nodes for the networks you want to index into your cluster. #### (optional, eth-goerli) Install Erigon, Nimbus and Proxyd for Ethereum Goerli From efe79213707ee05643b34a86bd5f776fc34689ee Mon Sep 17 00:00:00 2001 From: Ana-Maria Calin Date: Wed, 9 Aug 2023 22:45:14 -0700 Subject: [PATCH 4/6] feat: small updates and launchpad-namespaces changes --- .../launchpad/advanced/advanced-kubernetes.md | 4 +- docs/launchpad/quick-start.md | 56 ++++++++++++++++--- docs/launchpad/server-side-stack.md | 5 +- 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/docs/launchpad/advanced/advanced-kubernetes.md b/docs/launchpad/advanced/advanced-kubernetes.md index aaf11afe..e84176cc 100644 --- a/docs/launchpad/advanced/advanced-kubernetes.md +++ b/docs/launchpad/advanced/advanced-kubernetes.md @@ -32,7 +32,9 @@ Key features of `kubeadm` include: * **Configuration Validation:** kubeadm performs preflight checks to validate whether the host system is ready for cluster creation or joining. -**Note:** If you opt for a multi-node Kubernetes cluster, your Butane configurations will differ based on the specific role each node plays, whether it's a control plane or a worker node. +:::note +If you opt for a multi-node Kubernetes cluster, your Butane configurations will differ based on the specific role each node plays, whether it's a control plane or a worker node. +::: ### Butane config for Kubernetes control-planes diff --git a/docs/launchpad/quick-start.md b/docs/launchpad/quick-start.md index 0df0966f..6435e94c 100644 --- a/docs/launchpad/quick-start.md +++ b/docs/launchpad/quick-start.md @@ -4,10 +4,6 @@ sidebar_position: 3 # Quick Start -:::warning -This Quick Start guide has not yet been updated for Launchpad V2. -::: - Make sure you have all the [Prerequisites](prerequisites) before starting. ### Install Taskfile @@ -174,16 +170,60 @@ task releases:apply -- graph-goerli ## Updates -### Updating `launchpad-core` +### Updating `launchpad-namespace` changes into your stack -As new versions of key components in the stack are released, we will update `launchpad-core`'s templated definitions. You can easily inherit these updates by pulling down the latest submodule. +As new versions of key components in the stack are released, we will update `launchpad-namespaces`'s templated definitions and the various release streams available. You can selectively inherit these updates with ease by changing the git ref as a means to track what release stream you may want, or to pin to any particular major, minor or patch version. -Launchpad comes with a built in task to do this: +**following latest**: + +Your `?ref=` would look like this, for the storage namespace: `?ref=storage-latest`, or alternatively: `?ref=storage-stable/latest`. +The path for this *Namespace*, under helmfiles, would then look like: + +```shell +- path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-latest +``` + +**following a specific major version**: + +Your `?ref=` would look like this, for the storage namespace: `?ref=storage-v1`. +The path for this *Namespace*, under helmfiles, would then look like: + +```shell +- path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-v1 +``` + +**following a specific minor version**: + +Your `?ref=` would look like this, for the storage namespace: `?ref=storage-v1.2`. +The path for this *Namespace*, under helmfiles, would then look like: ```shell -task launchpad:update-core +- path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-v1.2 ``` +**pinning to an exact version**: + +Your `?ref=` would look like this, for the storage namespace: `?ref=storage-v1.2.2`. +The path for this *Namespace*, under helmfiles, would then look like: + +```shell +- path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-v1.2.2 +``` +**following the latest canary**: + +Your `?ref=` would look like this, for the storage namespace: `?ref=storage-canary/latest`. +The path for this *Namespace*, under helmfiles, would then look like: + +```shell +- path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-canary/latest +``` + +We would recommend that you either follow the latest stable releases, or pin to a specific version and use pulling in starter changes as a means to keep your `helmfile.yaml` updated regularly. + +:::note +For full implemetation details and other comprehensive notes about `launchpad-namespaces` please visit the [github repo](https://github.com/graphops/launchpad-namespaces/blob/main/README.md). +::: + ### Pulling in starter changes From time to time, you may want to update your infra repo with the latest changes from our starter. diff --git a/docs/launchpad/server-side-stack.md b/docs/launchpad/server-side-stack.md index 033962ac..189466da 100644 --- a/docs/launchpad/server-side-stack.md +++ b/docs/launchpad/server-side-stack.md @@ -7,7 +7,10 @@ sidebar_position: 20 ## Your Kubernetes cluster -Note that Launchpad v1 used [`k0s`](https://k0sproject.io/) as the [`Kubernetes distribution`](https://acloudguru.com/blog/engineering/which-kubernetes-distribution-is-right-for-you) for managing Kubernetes. K0s was picked for this project as it was viewed to be one of the top open-source lightweight certified Kubernetes distributions targeted at public & private clouds, on-premises, edge & hybrid. + +:::note +Launchpad v1 used [`k0s`](https://k0sproject.io/) as the [`Kubernetes distribution`](https://acloudguru.com/blog/engineering/which-kubernetes-distribution-is-right-for-you) for managing Kubernetes. K0s was picked for this project as it was viewed to be one of the top open-source lightweight certified Kubernetes distributions targeted at public & private clouds, on-premises, edge & hybrid. +::: Launchpad V2 represents a departure from the previous model of orchestrating the configuration of host machines to form a Kubernetes cluster. Instead, users are now encouraged to bring their own Kubernetes clusters to be used in conjunction with Launchpad. This approach ensures that users are not tied to a specific Kubernetes distribution or mode of installation. From 99a73daf882741c93606f070b7c72654f7b36244 Mon Sep 17 00:00:00 2001 From: Carlos Jorge Date: Thu, 10 Aug 2023 11:34:50 +0100 Subject: [PATCH 5/6] docs: v2 wip --- docs/launchpad/quick-start.md | 91 ++++++++++++++++++++++++++++++++--- 1 file changed, 84 insertions(+), 7 deletions(-) diff --git a/docs/launchpad/quick-start.md b/docs/launchpad/quick-start.md index 6435e94c..b64c2a80 100644 --- a/docs/launchpad/quick-start.md +++ b/docs/launchpad/quick-start.md @@ -100,7 +100,7 @@ commands: 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 `helmfile list`: +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 openebs storage true true launchpad.graphops.xyz/layer:base,launchpad.graphops.xyz/namespace:storage openebs/openebs 3.8.0 @@ -144,7 +144,39 @@ Launchpad comes with Namespace definitions for a number of blockchain networks, #### (optional, eth-goerli) Install Erigon, Nimbus and Proxyd for Ethereum Goerli -Update the configuration files in the `helmfiles/release-values/eth-goerli` folder to ensure they are correct. You will need to generate a JWT and configure Erigon and Nimbus with it. +Update your `helmfile.yaml` to add the ethereum Namespace and ensure the values are correct: + +```yaml +helmfiles: + - path: git::https://github.com/graphops/launchpad-namespaces.git@ethereum/helmfile.yaml + selectorsInherited: true + values: + - flavor: goerli + helmDefaults: + <<: *helmDefaults + - erigon: + values: + statefulNode: + volumeClaimSpec: + storageClassName: "<>" + jwt: + existingSecret: + name: jwt + key: jwt + nimbus: + values: + nimbus: + volumeClaimSpec: + storageClassName: "<>" + jwt: + existingSecret: + name: jwt + key: jwt +``` + +You will need to generate a JWT and create a kubernetes secret accordingly, to be used by Erigon and Nimbus. + +Deploy by syncing your cluster with the declarative `helmfile.yaml`: ```shell task releases:apply -- eth-goerli @@ -152,15 +184,60 @@ task releases:apply -- eth-goerli ### Install the Graph Goerli Indexer Stack -Update the configuration files in the `helmfiles/release-values/graph-goerli` folder to ensure they are correct. +Update your `helmfile` to include the graph Namespace, and configure the values accordingly: -```shell -task releases:apply -- graph-goerli +```yaml +helmfiles: + - path: git::https://github.com/graphops/launchpad-namespaces.git@graph/helmfile.yaml + selectorsInherited: true + values: + - helmDefaults: + <<: *helmDefaults + flavor: "goerli" + - graph-network-indexer: + values: + indexerDefaults: + config: + indexer-address: "<>" + indexerAgent: + config: + public-indexer-url: "<>" + graph-operator-mnemonic: + values: + resources: + ### RECOMMENDED, safe to commit + sealed-secret: + apiVersion: bitnami.com/v1alpha1 + kind: SealedSecret + metadata: + name: graph-operator-mnemonic + namespace: graph-goerli + spec: + template: + metadata: + name: graph-operator-mnemonic + namespace: graph-goerli + type: Opaque + encryptedData: + mnemonic: <> # Generate a SealedSecret encryptedData key with the "utils:seal-secrets" task, e.g.: task utils:seal-secrets -- -n graph-goerli -s graph-operator-mnemonic -k mnemonic -v "your mnemonic words" + graph-database: + values: + resources: + postgres-cr-primary-subgraph-data: + spec: + volume: + storageClass: "<>" + postgres-cr-indexer-metadata: + spec: + volume: + storageClass: "<>" ``` -### Check Indexer CLI status output - +Proceed to deploy: +```shell +task releases:apply -- graph-goerli +``` ### 🎉 Milestone: Graph Indexer running and accessible From 09ef3a44754f3559817819c2933982f474cd2cfc Mon Sep 17 00:00:00 2001 From: Carlos Jorge Date: Thu, 10 Aug 2023 11:44:03 +0100 Subject: [PATCH 6/6] docs: wip --- docs/launchpad/quick-start.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/launchpad/quick-start.md b/docs/launchpad/quick-start.md index b64c2a80..ce90ba01 100644 --- a/docs/launchpad/quick-start.md +++ b/docs/launchpad/quick-start.md @@ -295,10 +295,10 @@ The path for this *Namespace*, under helmfiles, would then look like: - path: git::https://github.com/graphops/launchpad-namespaces.git@storage/helmfile.yaml?ref=storage-canary/latest ``` -We would recommend that you either follow the latest stable releases, or pin to a specific version and use pulling in starter changes as a means to keep your `helmfile.yaml` updated regularly. +We would recommend that you either follow the latest stable releases, or pin to a specific version. :::note -For full implemetation details and other comprehensive notes about `launchpad-namespaces` please visit the [github repo](https://github.com/graphops/launchpad-namespaces/blob/main/README.md). +For full implementation details and other comprehensive notes about `launchpad-namespaces` please visit the [github repo](https://github.com/graphops/launchpad-namespaces/blob/main/README.md). ::: ### Pulling in starter changes