Skip to content

Latest commit

 

History

History
110 lines (96 loc) · 7.74 KB

File metadata and controls

110 lines (96 loc) · 7.74 KB

geth-lighthouse

Version: 0.1.2 Type: application

Helm chart that spins up a post-merge ethereum node consisting of the go-ethereum (geth) execution client and the lighthouse consensus client.

Source Code

Quick Start

# install from local copy
helm install geth-lighthouse-node charts/geth-lighthouse

NOTE: Service of type NodePort is used by default since otherwise consensus and execution clients will not get an internet-accessible port for P2P traffic. When deploying multiple nodes, set the p2p ports accordingly and ensure that there is no port conflict, e.g.:

helm install geth-lighthouse-node-1 charts/geth-lighthouse --set geth.ports.p2p=30304 --set lighthouse.ports.p2p=30104

Ephemery

The ephemeral testnet can be enabled with the following flag: --set global.network=ephemery. The current iteration is shown on the project website.

NOTE: Since the ephemeral testnet is small, the requested storage size can be reduced: --set global.persistence.size=10Gi

Testnet rollback is automated via a CronJob that checks every five minutes whether there is a new genesis release.

Values

Key Type Default Description
InitContainer.image.pullPolicy string "IfNotPresent" Container pull policy
InitContainer.image.repository string "archlinux" Container image repository. Archlinux contains curl and openssl.
InitContainer.image.tag string "base-20221211.0.109768" Image tag
InitContainer.name string "init-container" Init container to set the correct permissions to access data directories.
ephemery.image.pullPolicy string "IfNotPresent" Container pull policy
ephemery.image.repository string "nixery.dev/shell/gnutar/gzip/curl/jq/kubectl/gawk" Nixery.dev image
ephemery.image.tag string "latest" Image tag
ephemery.name string "ephemery-init" Name of the ephemery container
ephemery.repository string "ephemery-testnet/ephemery-genesis" Specify ephemery github repository
fullnameOverride string "" Overrides the chart's computed fullname
geth.image.pullPolicy string "IfNotPresent" Container pull policy
geth.image.repository string "ethereum/client-go" Container image repository
geth.image.tag string "v1.12.0" Image tag
geth.jsonRpcInterface string "0.0.0.0" Specify the listen address of the JSON-RPC API server for the execution client.
geth.livenessProbe.initialDelaySeconds int 60
geth.livenessProbe.periodSeconds int 120
geth.livenessProbe.tcpSocket.port int 8545 Liveness probe tcpSocket port, default is the geth JSON-RPC port
geth.name string "geth" Name of the container
geth.ports.httpJsonRpc int 8545 Execution-API port
geth.ports.metrics int 6060
geth.ports.p2p int 30303 TCP and UDP P2P port: place in range 30000-32767 and verify that no existing nodes use these ports
geth.readinessProbe.initialDelaySeconds int 60
geth.readinessProbe.periodSeconds int 10
geth.readinessProbe.tcpSocket.port int 8545 Readiness probe tcpSocket port, default is the geth JSON-RPC port
geth.resources object {} Resource requests and limits
geth.serviceMonitor.interval string "30s"
geth.serviceMonitor.path string "/debug/metrics/prometheus"
geth.serviceMonitor.scrapeTimeout string "10s"
global.affinity object {}
global.containerSecurityContext object {}
global.engineRpcPort int 8551 Engine API JSON-RPC Port, see also the official Engine Specification
global.imagePullSecrets object {} A list of pull secrets is used when credentials are needed to access a container registry with username and password.
global.network string "mainnet" Ethereum default network. Example: mainnet, goerli, ephemery
global.nodeSelector object {}
global.persistence object {"accessModes":["ReadWriteOnce"],"size":"2000Gi","storageClassName":null} PVC settings
global.persistence.accessModes list ["ReadWriteOnce"] Access mode for the volume claim template
global.persistence.size string "2000Gi" Requested size for volume claim template. When using OpenEBS Local PV Device this ensures that a block device with sufficient storage is selected.
global.persistence.storageClassName string nil Use a specific storage class.
global.podAnnotations object {}
global.securityContext object {"fsGroup":1001,"runAsGroup":1001,"runAsNonRoot":true,"runAsUser":1001} Security Context
global.service.annotations object {} Service annotations, e.g. for metallb: metallb.universe.tf/loadBalancerIPs: 10.1.2.3
global.service.type string "ClusterIP" Service type, ClusterIP or LoadBalancer
global.serviceAccount.annotations object {} Annotations to add to the service account
global.serviceAccount.create bool true Enable service account (Note: Service Account will only be automatically created if global.serviceAccount.name is not set)
global.serviceAccount.name string "" Name of an already existing service account. Setting this value disables the automatic service account creation
global.serviceMonitor.create bool false
global.terminationGracePeriodSeconds int 300
global.tolerations list []
global.updateStrategy.type string "RollingUpdate" Update stategy type
lighthouse.checkpointSync.enabled bool false
lighthouse.checkpointSync.url string "https://beaconstate.info"
lighthouse.extBuilder.enabled bool false enable external builder (mev-boost)
lighthouse.extBuilder.url string "http://mev-boost:18500" url of external builder
lighthouse.httpRestInterface string "0.0.0.0" Specify the listen address of the lighthouse REST API server for the consensus client.
lighthouse.image.pullPolicy string "IfNotPresent"
lighthouse.image.repository string "sigp/lighthouse" Container image repository
lighthouse.image.tag string "v4.2.0" Image tag
lighthouse.livenessProbe.initialDelaySeconds int 60
lighthouse.livenessProbe.periodSeconds int 120
lighthouse.livenessProbe.tcpSocket.port int 5052 Liveness probe tcpSocket port, default is the lighthouse httpRest port.
lighthouse.name string "lighthouse" Name of the container
lighthouse.ports.httpRest int 5052 Beacon-API port
lighthouse.ports.metrics int 5054
lighthouse.ports.p2p int 30103 TCP and UDP P2P port: place in range 30000-32767 and verify that no existing nodes use these ports
lighthouse.readinessProbe.initialDelaySeconds int 60
lighthouse.readinessProbe.periodSeconds int 10
lighthouse.readinessProbe.tcpSocket.port int 5052 Readiness probe tcpSocket port, default is the lighthouse httpRest port.
lighthouse.resources object {} Resource requests and limits
lighthouse.serviceMonitor.interval string "30s"
lighthouse.serviceMonitor.path string "/metrics"
lighthouse.serviceMonitor.scrapeTimeout string "10s"
nameOverride string "" Overrides the chart's name