Skip to content

Commit 6c282e4

Browse files
feat(heimdall-v2): initial heimdall-v2 release (#549)
feat(heimdall-v2): initial heimdall-v2 release
1 parent 3753a9c commit 6c282e4

File tree

14 files changed

+7487
-0
lines changed

14 files changed

+7487
-0
lines changed

charts/heimdall-v2/.helmignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/

charts/heimdall-v2/Chart.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apiVersion: v2
2+
name: heimdall-v2
3+
description: Deploy and scale [Heimdall-v2](https://github.com/0xPolygon/heimdall-v2) inside Kubernetes with ease
4+
5+
# A chart can be either an 'application' or a 'library' chart.
6+
#
7+
# Application charts are a collection of templates that can be packaged into versioned archives
8+
# to be deployed.
9+
#
10+
# Library charts provide useful utilities or functions for the chart developer. They're included as
11+
# a dependency of application charts to inject those utilities and functions into the rendering
12+
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
13+
type: application
14+
15+
# This is the chart version. This version number should be incremented each time you make changes
16+
# to the chart and its templates, including the app version.
17+
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18+
version: 0.0.1
19+
20+
# This is the version number of the application being deployed. This version number should be
21+
# incremented each time you make changes to the application. Versions are not expected to
22+
# follow Semantic Versioning. They should reflect the version the application is using.
23+
# It is recommended to use it with quotes.
24+
# renovate: image=0xpolygon/heimdall
25+
appVersion: "0.2.12"

charts/heimdall-v2/README.md

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# Heimdall-V2 Helm Chart
2+
3+
Deploy and scale [Heimdall-v2](https://github.com/0xPolygon/heimdall-v2) inside Kubernetes with ease
4+
5+
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) ![Version: 0.0.1](https://img.shields.io/badge/Version-0.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.2.12](https://img.shields.io/badge/AppVersion-0.2.12-informational?style=flat-square)
6+
7+
## Features
8+
9+
- Actively maintained by [GraphOps](https://graphops.xyz) and contributors
10+
- Deploys a scalable pool of `statefulset` instances, with auto-scaling support
11+
- Strong security defaults (non-root execution, ready-only root filesystem, drops all capabilities)
12+
- Readiness checks to ensure traffic only hits `Pod`s that are healthy and ready to serve requests
13+
- Support for `PodMonitor`s to configure Prometheus to scrape metrics ([prometheus-operator](https://github.com/prometheus-operator/prometheus-operator))
14+
- Support for configuring Grafana dashboards for polygon ([grafana](https://github.com/grafana/helm-charts/tree/main/charts/grafana))
15+
16+
## Quickstart
17+
18+
To install the chart with the release name `my-release`:
19+
20+
```console
21+
$ helm repo add graphops http://graphops.github.io/launchpad-charts
22+
$ helm install my-release graphops/heimdall-v2
23+
```
24+
25+
Once the release is installed, heimdall will begin syncing from snapshot if the following was specified:
26+
```fromSnapshot:
27+
# -- Enable initialising Heimdall from a remote Snapshot
28+
enabled: true
29+
# -- URL to snapshot to download and extract, see [here](https://snapshots.matic.today)
30+
snapshotUrl:
31+
```
32+
You can use `kubectl logs` to monitor the download status. See the Values section to install Prometheus `PodMonitor`s and a Grafana dashboard.
33+
34+
## Upgrading
35+
36+
We recommend that you pin the version of the Chart that you deploy. You can use the `--version` flag with `helm install` and `helm upgrade` to specify a chart version constraint.
37+
38+
This project uses [Semantic Versioning](https://semver.org/). Changes to the version of the application (the `appVersion`) that the Chart deploys will generally result in a patch version bump for the Chart. Breaking changes to the Chart or its `values.yaml` interface will be reflected with a major version bump.
39+
40+
We do not recommend that you upgrade the application by overriding `image.tag`. Instead, use the version of the Chart that is built for your desired `appVersion`.
41+
42+
## Values
43+
44+
| Key | Description | Type | Default |
45+
|-----|-------------|------|---------|
46+
| fullnameOverride | | string | `""` |
47+
| grafana.dashboards | Enable creation of Grafana dashboards. [Grafana chart](https://github.com/grafana/helm-charts/tree/main/charts/grafana#grafana-helm-chart) must be configured to search this namespace, see `sidecar.dashboards.searchNamespace` | bool | `false` |
48+
| grafana.dashboardsConfigMapLabel | Must match `sidecar.dashboards.label` value for the [Grafana chart](https://github.com/grafana/helm-charts/tree/main/charts/grafana#grafana-helm-chart) | string | `"grafana_dashboard"` |
49+
| grafana.dashboardsConfigMapLabelValue | Must match `sidecar.dashboards.labelValue` value for the [Grafana chart](https://github.com/grafana/helm-charts/tree/main/charts/grafana#grafana-helm-chart) | string | `""` |
50+
| heimdall.affinity | | object | `{}` |
51+
| heimdall.affinityPresets.antiAffinityByHostname | Configure anti-affinity rules to prevent multiple Heimdall instances on the same host | bool | `true` |
52+
| heimdall.config.borRpcUrl | Bor RPC address | string | `""` |
53+
| heimdall.config.chainId | Override chain_id - Optional, defaults are provided for each network (heimdallv2-137, heimdallv2-80002) | string | `""` |
54+
| heimdall.config.corsAllowedOrigins | CORS Allowed Origins | string | `"[\"*\"]"` |
55+
| heimdall.config.downloadGenesis.enabled | Enable downloading the gensis file at init | bool | `true` |
56+
| heimdall.config.downloadGenesis.genesisSha512 | SHA512 for the Genesis URL file - Specify this if you set a genesisUrl above | string | `""` |
57+
| heimdall.config.downloadGenesis.genesisUrl | Override URL for the Genesis file - Optional, defaults are provided for mainnet and amoy | string | `""` |
58+
| heimdall.config.ethRpcUrl | Ethereum RPC address | string | `""` |
59+
| heimdall.config.extraArgs | Additional CLI arguments to pass to Heimdall | list | `[]` |
60+
| heimdall.config.fromSnapshot.enabled | Enable initialising Heimdall from a remote Snapshot | bool | `false` |
61+
| heimdall.config.fromSnapshot.snapshotUrl | URL to snapshot to download and extract, see [here](https://docs.polygon.technology/pos/how-to/snapshots/) | string | `""` |
62+
| heimdall.config.logFormat | Logs format | string | `"json"` |
63+
| heimdall.config.logLevel | Log level setup | string | `"info"` |
64+
| heimdall.config.metrics.enabled | Enable metrics | bool | `true` |
65+
| heimdall.config.name | Override moniker - Optional, default {{ .Release.Name }} | string | `""` |
66+
| heimdall.config.network | Specifies the heimdall network instance, one of: `mainnet`, `amoy` | string | `"mainnet"` |
67+
| heimdall.config.peers | Override persistent peers - Optional, defaults are provided for each network | string | `""` |
68+
| heimdall.config.seeds | Override seed nodes - Optional, defaults are provided for each network | string | `""` |
69+
| heimdall.enabled | Enable creation of `StatefulSet` for Heimdall | bool | `true` |
70+
| heimdall.env | Environment variables to set in key/value format | object | `{}` |
71+
| heimdall.image.pullPolicy | | string | `"IfNotPresent"` |
72+
| heimdall.image.repository | Image for Heimdall | string | `"0xpolygon/heimdall-v2"` |
73+
| heimdall.image.tag | Overrides the image tag | string | Chart.appVersion |
74+
| heimdall.nodeSelector | | object | `{}` |
75+
| heimdall.p2pNodePort.enabled | Expose P2P port via NodePort | bool | `false` |
76+
| heimdall.p2pNodePort.initContainer.image.pullPolicy | Container pull policy | string | `"IfNotPresent"` |
77+
| heimdall.p2pNodePort.initContainer.image.repository | Container image to fetch nodeport information | string | `"lachlanevenson/k8s-kubectl"` |
78+
| heimdall.p2pNodePort.initContainer.image.tag | Container tag | string | `"v1.25.4"` |
79+
| heimdall.p2pNodePort.port | NodePort to be used. Must be unique. | int | `31000` |
80+
| heimdall.podAnnotations | Annotations for the `Pod` | object | `{}` |
81+
| heimdall.podSecurityContext | Pod-wide security context | object | `{"runAsNonRoot":false}` |
82+
| heimdall.readyAfterSync | Enable a readiness probe that checks if heimdall is synced | bool | `false` |
83+
| heimdall.resources | | object | `{}` |
84+
| heimdall.service.ports.http-api | | int | `1317` |
85+
| heimdall.service.ports.http-metrics | | int | `26660` |
86+
| heimdall.service.ports.http-rpc | | int | `26657` |
87+
| heimdall.service.topologyAwareRouting.enabled | | bool | `false` |
88+
| heimdall.service.type | | string | `"ClusterIP"` |
89+
| heimdall.tolerations | | list | `[]` |
90+
| heimdall.volumeClaimSpec | [PersistentVolumeClaimSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#persistentvolumeclaimspec-v1-core) for heimdall storage | object | `{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"300Gi"}},"storageClassName":null}` |
91+
| heimdall.volumeClaimSpec.resources.requests.storage | The amount of disk space to provision for Heimdall | string | `"300Gi"` |
92+
| heimdall.volumeClaimSpec.storageClassName | The storage class to use when provisioning a persistent volume for heimdall | string | `nil` |
93+
| nameOverride | | string | `""` |
94+
| prometheus.serviceMonitors.enabled | Enable monitoring by creating `PodMonitor` CRDs ([prometheus-operator](https://github.com/prometheus-operator/prometheus-operator)) | bool | `false` |
95+
| prometheus.serviceMonitors.interval | | string | `nil` |
96+
| prometheus.serviceMonitors.labels | | object | `{}` |
97+
| prometheus.serviceMonitors.relabelings | | list | `[]` |
98+
| prometheus.serviceMonitors.scrapeTimeout | | string | `nil` |
99+
| serviceAccount.annotations | Annotations to add to the service account | object | `{}` |
100+
| serviceAccount.create | Specifies whether a service account should be created | bool | `true` |
101+
| serviceAccount.name | The name of the service account to use. If not set and create is true, a name is generated using the fullname template | string | `""` |
102+
103+
## Contributing
104+
105+
We welcome and appreciate your contributions! Please see the [Contributor Guide](/CONTRIBUTING.md), [Code Of Conduct](/CODE_OF_CONDUCT.md) and [Security Notes](/SECURITY.md) for this repository.

charts/heimdall-v2/README.md.gotmpl

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{{ template "graphops.title" . }}
2+
3+
{{ template "chart.description" . }}
4+
5+
{{ template "graphops.badges" . }}
6+
7+
## Features
8+
9+
- Actively maintained by [GraphOps](https://graphops.xyz) and contributors
10+
- Deploys a scalable pool of `statefulset` instances, with auto-scaling support
11+
- Strong security defaults (non-root execution, ready-only root filesystem, drops all capabilities)
12+
- Readiness checks to ensure traffic only hits `Pod`s that are healthy and ready to serve requests
13+
- Support for `PodMonitor`s to configure Prometheus to scrape metrics ([prometheus-operator](https://github.com/prometheus-operator/prometheus-operator))
14+
- Support for configuring Grafana dashboards for polygon ([grafana](https://github.com/grafana/helm-charts/tree/main/charts/grafana))
15+
16+
## Quickstart
17+
18+
To install the chart with the release name `my-release`:
19+
20+
```console
21+
$ helm repo add graphops http://graphops.github.io/launchpad-charts
22+
$ helm install my-release graphops/{{ template "chart.name" . }}
23+
```
24+
25+
Once the release is installed, heimdall will begin syncing from snapshot if the following was specified:
26+
```fromSnapshot:
27+
# -- Enable initialising Heimdall from a remote Snapshot
28+
enabled: true
29+
# -- URL to snapshot to download and extract, see [here](https://snapshots.matic.today)
30+
snapshotUrl:
31+
```
32+
You can use `kubectl logs` to monitor the download status. See the Values section to install Prometheus `PodMonitor`s and a Grafana dashboard.
33+
34+
{{ template "graphops.upgradingSection" . }}
35+
36+
{{ template "chart.requirementsSection" . }}
37+
38+
{{ template "chart.valuesSection" . }}
39+
40+
{{ template "graphops.contributingSection" . }}

0 commit comments

Comments
 (0)