This Namespace provides a suitable stack to operate Celo mainnet archive nodes.
- celo
Official golang implementation of the Celo blockchain - proxyd
Proxyd is an EVM-blockchain JSON-RPC router and load balancer developed in Go by Optimism. It is capable of load balancing, automatic failover, intelligent request routing and very basic caching.
- Actively maintained by GraphOps and contributors
- Common values interfaces across all namespaces
- Flexible and adaptable, allowing defaults to be overridden
- Two release channels:
stable
andcanary
- A large selection of Namespaces (listed below)
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 Celo Namespace by creating it with the following contents:
helmfiles:
- path: git::https://github.com/graphops/launchpad-namespaces.git@celo/helmfile.yaml?ref=celo-latest
selectorsInherited: true
Note On the path to the helmfile, you can use the query string's ref
(?ref=celo-latest)
to track one of the release streams:stable
andcanary
, 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.
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@celo/helmfile.yaml?ref=celo-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@celo/helmfile.yaml?ref=celo-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@celo/helmfile.yaml?ref=celo-latest
selectorsInherited: true
values:
<celo values>
- path: git::https://github.com/graphops/launchpad-namespaces.git@<other namespace>/helmfile.yaml?ref=<other namespace>-latest
selectorsInherited: true
values:
<other values>
Key | Type | Default | Description |
---|---|---|---|
annotations | object | Add annotations to release resources on this namespace | |
celo | object | ||
celo.annotations | object | Add annotations to resources on this release | |
celo.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) | |
celo.chartVersion | string | Specify a specific chart version to use for this release | |
celo.labels | object | Adds helmfile labels to this release | |
celo.mergeValues | boolean | true | Merges passed values with namespace's defaults if true, overrides if false |
celo.resourceLabels | object | Adds labels to resources on this release | |
celo.values | (object or list of objects) | Pass values to the release helm chart | |
features | list of strings | [proxyd] | enum of: (proxyd) |
flavor | string | ||
kubeVersion | string | Specifies the kubernetes API version, useful in helm templating environment | |
labels | object | Adds helmfile labels to releases on this namespace | |
proxyd | object | ||
proxyd.annotations | object | Add annotations to resources on this release | |
proxyd.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) | |
proxyd.chartVersion | string | Specify a specific chart version to use for this release | |
proxyd.labels | object | Adds helmfile labels to this release | |
proxyd.mergeValues | boolean | true | Merges passed values with namespace's defaults if true, overrides if false |
proxyd.resourceLabels | object | Adds labels to resources on this release | |
proxyd.values | (object or list of objects) | Pass values to the release helm chart | |
resourceLabels | object | Adds labels to release resources on this namespace | |
scaling | object | celo scaling interface | |
scaling.celo | object | ||
scaling.deployments | integer | 1 | number of independent stateful sets to deploy |
scaling.startP2PPort | integer | A beggining port for the range to use in P2P NodePorts | |
targetNamespace | string | celo-mainnet | the default is celo- |
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 |