Skip to content

Latest commit

 

History

History

graph

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Graph Namespace

This Namespace provides the necessary software to run a Graph Node and participate in the Graph Protocol Network

License

Releases

  • graph-database
    Manage Raw Kubernetes Resources using Helm
  • graph-network-indexer
    Graph protocol indexer components
  • graph-node
    Graph Node is an open source Rust implementation that event sources the Ethereum blockchain to deterministically update a data store that can be queried via the GraphQL endpoint.
  • graph-operator-mnemonic
    Manage Raw Kubernetes Resources using Helm
  • graph-toolbox
    Utility kit for interacting and managing the Graph indexer stack.
  • subgraph-radio
    Gossip about Subgraphs with other Graph Protocol Indexers

Features

  • Actively maintained by GraphOps GraphOps and contributors
  • Common values interfaces across all namespaces
  • Flexible and adaptable, allowing defaults to be overridden
  • Two release channels: stable and canary
  • A large selection of Namespaces (listed below)

Quickstart

Note Launchpad Starter is a great way to make use of Namespaces and worth checking out as a starting point for every new Launchpad deployment.

To use Namespaces you will require both a Kubernetes cluster and Helmfile. As such:

  • Make sure your Kubernetes Cluster is in order and your environment has the kubeconfig context adequately setup
  • Install helmfile, upstream guidance available here: Helmfile Installation – Install kustomize, upstream guidance available here: Kustomize Installation. Although launchpad–namespaces doesn't explicitly use kustomize, it is a dependency for utilising helmfile features.

Next, setup an helmfile.yaml file that makes use of the Graph Namespace by creating it with the following contents:

helmfiles:
  - path: git::https://github.com/graphops/launchpad-namespaces.git@graph/helmfile.yaml?ref=graph-latest
    selectorsInherited: true

Note On the path to the helmfile, you can use the query string's ref (?ref=graph-latest) to track one of the release streams: stable and canary, pin to a specific version or just track a particular major or minor semantic version. For more on this, check the Updates section

This is a very minimalist helmfile but enough to get it done. Proceed by running helmfile:

helmfile sync -i

After some output, you should be greeted by a prompt like this:

Do you really want to sync? Helmfile will sync all your releases, as shown above.

[y/n]:

Answer 'y' and hopefully the installation will conclude successfully.

overriding namespace and releases' values

To customize the configuration and deployment, you can pass values to override the default helmfile configuration like so:

helmfiles:
  - path: git::https://github.com/graphops/launchpad-namespaces.git@graph/helmfile.yaml?ref=graph-latest
    selectorsInherited: true
    values:
      targetNamespace: "i-choose-my-own-namespace"
      labels:
        awesome.label.key/stuff: "yes"
        awesome.label.key/thing: "kind-of-thing"

where we add some labels to this Namespace releases, and set it to be deployed on cluster namespace different from default.

You can also easily override values for every release, like so:

helmfiles:
  - path: git::https://github.com/graphops/launchpad-namespaces.git@graph/helmfile.yaml?ref=graph-latest
    selectorsInherited: true
    values:
      targetNamespace: "i-choose-my-own-namespace"
      labels:
        awesome.label.key/stuff: "yes"
        awesome.label.key/thing: "kind-of-thing"
      <release-name>:
        - akey: value
          bkey: value

Check out the Namespaces list below for release names, and each chart's folder for its specific values interface.

To use multiple namespaces on the same cluster, just add more items to the helmfiles array like so:

helmfiles:
  - path: git::https://github.com/graphops/launchpad-namespaces.git@graph/helmfile.yaml?ref=graph-latest
    selectorsInherited: true
    values:
      <graph values>
  - path: git::https://github.com/graphops/launchpad-namespaces.git@<other namespace>/helmfile.yaml?ref=<other namespace>-latest
    selectorsInherited: true
    values:
      <other values>

Values

Key Type Default Description
annotations object Add annotations to release resources on this namespace
features list of strings [subgraph-radio] enum of:  (subgraph-radio)
flavor string
graph‑database object
graph‑database.annotations object Add annotations to resources on this release
graph‑database.chartUrl string Override this release's chart URL (i.e: an absolute like /path/to/chart.tgz or /path/to/chart_dir. Or a remote like git::https://github.com/bitnami/charts.git@bitnami/apache?ref=main)
graph‑database.chartVersion string Specify a specific chart version to use for this release
graph‑database.labels object Adds helmfile labels to this release
graph‑database.mergeValues boolean true Merges passed values with namespace's defaults if true, overrides if false
graph‑database.resourceLabels object Adds labels to resources on this release
graph‑database.values (object or list of objects) Pass values to the release helm chart
graph‑network‑indexer object
graph‑network‑indexer.annotations object Add annotations to resources on this release
graph‑network‑indexer.chartUrl string Override this release's chart URL (i.e: an absolute like /path/to/chart.tgz or /path/to/chart_dir. Or a remote like git::https://github.com/bitnami/charts.git@bitnami/apache?ref=main)
graph‑network‑indexer.chartVersion string Specify a specific chart version to use for this release
graph‑network‑indexer.labels object Adds helmfile labels to this release
graph‑network‑indexer.mergeValues boolean true Merges passed values with namespace's defaults if true, overrides if false
graph‑network‑indexer.resourceLabels object Adds labels to resources on this release
graph‑network‑indexer.values (object or list of objects) Pass values to the release helm chart
graph‑node object
graph‑node.annotations object Add annotations to resources on this release
graph‑node.chartUrl string Override this release's chart URL (i.e: an absolute like /path/to/chart.tgz or /path/to/chart_dir. Or a remote like git::https://github.com/bitnami/charts.git@bitnami/apache?ref=main)
graph‑node.chartVersion string Specify a specific chart version to use for this release
graph‑node.labels object Adds helmfile labels to this release
graph‑node.mergeValues boolean true Merges passed values with namespace's defaults if true, overrides if false
graph‑node.resourceLabels object Adds labels to resources on this release
graph‑node.values (object or list of objects) Pass values to the release helm chart
graph‑operator‑mnemonic object
graph‑operator‑mnemonic.annotations object Add annotations to resources on this release
graph‑operator‑mnemonic.chartUrl string Override this release's chart URL (i.e: an absolute like /path/to/chart.tgz or /path/to/chart_dir. Or a remote like git::https://github.com/bitnami/charts.git@bitnami/apache?ref=main)
graph‑operator‑mnemonic.chartVersion string Specify a specific chart version to use for this release
graph‑operator‑mnemonic.labels object Adds helmfile labels to this release
graph‑operator‑mnemonic.mergeValues boolean true Merges passed values with namespace's defaults if true, overrides if false
graph‑operator‑mnemonic.resourceLabels object Adds labels to resources on this release
graph‑operator‑mnemonic.values (object or list of objects) Pass values to the release helm chart
graph‑toolbox object
graph‑toolbox.annotations object Add annotations to resources on this release
graph‑toolbox.chartUrl string Override this release's chart URL (i.e: an absolute like /path/to/chart.tgz or /path/to/chart_dir. Or a remote like git::https://github.com/bitnami/charts.git@bitnami/apache?ref=main)
graph‑toolbox.chartVersion string Specify a specific chart version to use for this release
graph‑toolbox.labels object Adds helmfile labels to this release
graph‑toolbox.mergeValues boolean true Merges passed values with namespace's defaults if true, overrides if false
graph‑toolbox.resourceLabels object Adds labels to resources on this release
graph‑toolbox.values (object or list of objects) Pass values to the release helm chart
kubeVersion string Specifies the kubernetes API version, useful in helm templating environment
labels object Adds helmfile labels to releases on this namespace
resourceLabels object Adds labels to release resources on this namespace
subgraph‑radio object
subgraph‑radio.annotations object Add annotations to resources on this release
subgraph‑radio.chartUrl string Override this release's chart URL (i.e: an absolute like /path/to/chart.tgz or /path/to/chart_dir. Or a remote like git::https://github.com/bitnami/charts.git@bitnami/apache?ref=main)
subgraph‑radio.chartVersion string Specify a specific chart version to use for this release
subgraph‑radio.labels object Adds helmfile labels to this release
subgraph‑radio.mergeValues boolean true Merges passed values with namespace's defaults if true, overrides if false
subgraph‑radio.resourceLabels object Adds labels to resources on this release
subgraph‑radio.values (object or list of objects) Pass values to the release helm chart
targetNamespace string graph-mainnet the default is graph-
helmDefaults object
helmDefaults.args list of strings
helmDefaults.cleanupOnFail boolean
helmDefaults.createNamespace boolean
helmDefaults.force boolean
helmDefaults.historyMax number 10 limit the maximum number of revisions saved per release. Use 0
for no limit.
helmDefaults.kubeContext string
helmDefaults.recreatePods boolean
helmDefaults.tillerNamespace string
helmDefaults.tillerless boolean
helmDefaults.timeout number
helmDefaults.tls boolean
helmDefaults.tlsCACert string
helmDefaults.tlsCert string
helmDefaults.tlsKey string
helmDefaults.verify boolean
helmDefaults.wait boolean
helmDefaults.waitForJobs boolean