Skip to content

Latest commit

 

History

History
125 lines (109 loc) · 7.85 KB

File metadata and controls

125 lines (109 loc) · 7.85 KB

nethermind

Version: 1.0.12 Type: application

Nethermind is an Ethereum execution layer implementation created with the C# .NET tech stack, running on all major platforms including ARM.

Homepage: https://nethermind.io/

Source Code

Values

Key Type Default Description
affinity object {} Affinity configuration for pods
annotations object {} Annotations for the StatefulSet
authPort int 8551 Engine Port (Auth Port)
containerSecurityContext object See values.yaml The security context for containers
customCommand list [] Legacy way of overwriting the default command. You may prefer to change defaultCommandTemplate instead.
defaultCommandTemplate string See values.yaml Template used for the default command
extraArgs list [] Extra args for the nethermind container
extraContainers list [] Additional containers
extraEnv list [] Additional env variables
extraPorts list [] Additional ports. Useful when using extraContainers
extraVolumeMounts list [] Additional volume mounts
extraVolumes list [] Additional volumes
fullnameOverride string "" Overrides the chart's computed fullname
httpPort int 8545 HTTP Port
image.pullPolicy string "IfNotPresent" nethermind container pull policy
image.repository string "nethermind/nethermind" nethermind container image repository
image.tag string "latest" nethermind container image tag
imagePullSecrets list [] Image pull secrets for Docker images
ingress.annotations object {} Annotations for Ingress
ingress.enabled bool false Ingress resource for the HTTP API
ingress.hosts[0].host string "chart-example.local"
ingress.hosts[0].paths list []
ingress.tls list [] Ingress TLS
initChownData.enabled bool true Init container to set the correct permissions to access data directories
initChownData.image.pullPolicy string "IfNotPresent" Container pull policy
initChownData.image.repository string "busybox" Container repository
initChownData.image.tag string "1.34.0" Container tag
initChownData.resources object {} Resource requests and limits
initContainers list [] Additional init containers
jwt string "ecb22bc24e7d4061f7ed690ccd5846d7d73f5d2b9733267e12f56790398d908a" JWT secret used by client as a secret. Change this value.
livenessProbe object See values.yaml Liveness probe
metricsPort int 9545 Metrics Port
nameOverride string "" Overrides the chart's name
nodeSelector object {} Node selector for pods
p2pNodePort.enabled bool false Expose P2P port via NodePort
p2pNodePort.initContainer.image.pullPolicy string "IfNotPresent" Container pull policy
p2pNodePort.initContainer.image.repository string "lachlanevenson/k8s-kubectl" Container image to fetch nodeport information
p2pNodePort.initContainer.image.tag string "v1.25.4" Container tag
p2pNodePort.port int 31000 NodePort to be used
p2pNodePort.portForwardContainer.image.pullPolicy string "IfNotPresent" Container pull policy
p2pNodePort.portForwardContainer.image.repository string "alpine/socat" Container image for the port forwarder
p2pNodePort.portForwardContainer.image.tag string "latest" Container tag
p2pPort int 30303 P2P Port
persistence.accessModes list ["ReadWriteOnce"] Access mode for the volume claim template
persistence.annotations object {} Annotations for volume claim template
persistence.enabled bool false Uses an EmptyDir when not enabled
persistence.existingClaim string nil Use an existing PVC when persistence.enabled
persistence.selector object {} Selector for volume claim template
persistence.size string "20Gi" Requested size for volume claim template
persistence.storageClassName string nil Use a specific storage class E.g 'local-path' for local storage to achieve best performance Read more (https://github.com/rancher/local-path-provisioner)
podAnnotations object {} Pod annotations
podDisruptionBudget object {} Define the PodDisruptionBudget spec If not set then a PodDisruptionBudget will not be created
podLabels object {} Pod labels
podManagementPolicy string "OrderedReady" Pod management policy
priorityClassName string nil Pod priority class
rbac.clusterRules list See values.yaml Required ClusterRole rules
rbac.create bool true Specifies whether RBAC resources are to be created
rbac.rules list See values.yaml Required ClusterRole rules
readinessProbe object See values.yaml Readiness probe
replicas int 1 Number of replicas
resources object {} Resource requests and limits
secretEnv object {} Additional env variables injected via a created secret
securityContext object See values.yaml The security context for pods
serviceAccount.annotations object {} Annotations to add to the service account
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.name string "" The name of the service account to use. If not set and create is true, a name is generated using the fullname template
serviceMonitor.annotations object {} Additional ServiceMonitor annotations
serviceMonitor.enabled bool false If true, a ServiceMonitor CRD is created for a prometheus operator https://github.com/coreos/prometheus-operator
serviceMonitor.interval string "1m" ServiceMonitor scrape interval
serviceMonitor.labels object {} Additional ServiceMonitor labels
serviceMonitor.namespace string nil Alternative namespace for ServiceMonitor
serviceMonitor.path string "/metrics" Path to scrape
serviceMonitor.relabelings list [] ServiceMonitor relabelings
serviceMonitor.scheme string "http" ServiceMonitor scheme
serviceMonitor.scrapeTimeout string "30s" ServiceMonitor scrape timeout
serviceMonitor.tlsConfig object {} ServiceMonitor TLS configuration
terminationGracePeriodSeconds int 300 How long to wait until the pod is forcefully terminated
tolerations list [] Tolerations for pods
topologySpreadConstraints list [] Topology Spread Constraints for pods
updateStrategy object {"type":"RollingUpdate"} Update stategy for the Statefulset
updateStrategy.type string "RollingUpdate" Update stategy type
wsPort int 8545 WS Port

Examples

Connecting to the holesky test network

extraArgs:
  - --config=holesky
  - --Network.MaxActivePeers=60

Exposing the P2P service via NodePort

This will make your node accessible via the Internet using a service of type NodePort. When using p2pNodePort.enabled the exposed IP address on your ENR record will be the "External IP" of the node where the pod is running.

Limitations: You can only run a single replica per chart deployment when using p2pNodePort.enabled=true.If you need N nodes, simply deploy the chart N times. Currently nethermind doesn't allow you to announce a a different discovery port, which would be a requirement to run multiple replicas within the same chart.

replicas: 1

p2pNodePort:
  enabled: true
  port: 31000