A Helm chart for deploying the Linea blockchain stack on Kubernetes, including sequencer, Maru, Besu, and visualization services.
This Helm chart provides a complete deployment solution for the Linea blockchain network components:
- Sequencer: Handles transaction sequencing and ordering
- Maru: L2 execution client for the Linea network
- Besu: Ethereum client providing RPC endpoints and blockchain synchronization
- Ethstats: Network visualization and monitoring dashboard
- Txgen: Optional transaction generator for testing
The chart includes production-ready features such as:
- Horizontal Pod Autoscaling (HPA) for Besu nodes
- Prometheus monitoring integration via ServiceMonitors
- Automated backups using Gemini operator
- Network policies for enhanced security
- Configurable resource limits and requests
- Comprehensive labeling and annotations for Kubernetes resource management
- Kubernetes cluster (1.24+)
- Helm 3.x installed
- kubectl configured to access your cluster
- StorageClass configured for persistent volumes (default:
gp2)
The chart can be installed directly from the local chart directory:
helm install linea chart \
--namespace linea \
--create-namespace \
--set global.namespace=lineaAdditionally, the chart is available publicly here
helm install linea-dev oci://ghcr.io/samclusker/linea-devCreate a custom-values.yaml file to override default settings:
global:
namespace: linea
domain: example.com
besu:
replicaCount: 3
storage:
size: 1Ti
storageClassName: fast-ssd
sequencer:
storage:
size: 200GiInstall with custom values:
helm install linea chart \
--namespace linea \
--create-namespace \
-f custom-values.yamlTo upgrade an existing installation:
helm upgrade linea chart \
--namespace linea \
-f custom-values.yamlTo remove the chart:
helm uninstall linea --namespace lineaNote: This will remove all resources including persistent volumes. Ensure you have backups before uninstalling.
Check that all pods are running:
kubectl get pods -n lineaCheck the status of the Helm release:
helm status linea -n lineaSecrets can be deployed by populating values.yaml (for development purposes), but for production it is recommended that secrets are either created manually before deploying the chart or if using AWS, populate the secret names for the secrets manager addon.
The following secrets are required (manual):
<release-name>-sequencer-secret: Contains the sequencer node private key<release-name>-maru-secret: Contains Maru configuration secrets<release-name>-ethstats-secret: Contains Ethstats API secrets<release-name>-txgen-secret: Contains transaction generator sender private key
Secret name values for AWS Secrets Manager:
txgen.secrets.senderPkSecretNameethstats.secrets.wsSecretNamemaru.secrets.maruKeySecretNamesequencer.secrets.sequencerKeySecretName
Sequencer Secret:
kubectl create secret generic <release-name>-sequencer-secret \
--namespace linea \
--from-literal=key=<PRIVATE_KEY_HEX>Maru Secret:
kubectl create secret generic <release-name>-maru-secret \
--namespace linea \
--from-literal=key=<MARU_SECRET_KEY>Ethstats Secret:
kubectl create secret generic <release-name>-ethstats-secret \
--namespace linea \
--from-literal=secret=<ETHSTATS_SECRET>Txgen Secret:
kubectl create secret generic <release-name>-txgen-secret \
--namespace linea \
--from-literal=senderPk=<SENDER_PRIVATE_KEY_HEX>There is a basic example of a Terraform project which deploys the chart in the terraform/ directory.
cd terraform
terraform init
terraform apply -var-file terraform.prod.tfvarsExample .tfvars file:
cluster_name = "eks-task-production"
cluster_endpoint = "https://foo.gr7.<region>.eks.amazonaws.com"
cluster_ca_certificate = "...."
oidc_provider_arn = "arn:aws:iam::<accountId>:oidc-provider/oidc.eks.<region>.amazonaws.com/id/<id>"
namespace = "linea"
release_name = "linea"
# IRSA Configuration (optional)
create_irsa_role = true
tags = {
managedby = "terraform"
project = "eks-cluster"
}
dns_zone = "foo.bar"
ingress_certificate_arn = "arn:aws:acm:<region>:<accountId>:certificate/<certId>"For detailed configuration options, see the chart README which contains the complete values reference generated by helm-docs.
Key configuration areas include:
- Resource limits and requests
- Storage configuration
- Ingress settings
- Monitoring and backup schedules
- Component-specific settings
| Repository | Name | Version |
|---|---|---|
| https://charts.fairwinds.com/stable | gemini | ^2.1.0 |
| https://prometheus-community.github.io/helm-charts | kube-prometheus-stack | ^55.0.0 |
See LICENSE file for details.