Skip to content

Helm chart merges default tcpSocket probe with custom httpGet probe, causing invalid Pod spec (multiple handler types) #9

Description

@bussyjd

When deploying Erigon with the current Helm chart, it is not possible to cleanly override the default liveness and readiness probes. Even when specifying a custom httpGet probe (using both the flat and nested enabled: true structure), the resulting StatefulSet spec includes both the chart's default tcpSocket handler and the custom httpGet handler. This results in an invalid Pod spec and prevents the StatefulSet from being created:

spec.containers[0].livenessProbe.tcpSocket: Forbidden: may not specify more than 1 handler type, spec.containers[0].readinessProbe.tcpSocket: Forbidden: may not specify more than 1 handler type

Steps to reproduce:

  1. Set a custom liveness or readiness probe in values.yaml:
    livenessProbe:
      enabled: true
      httpGet:
        path: /eth1/liveness
        port: 3000
        scheme: HTTP
      initialDelaySeconds: 60
      periodSeconds: 30
      timeoutSeconds: 5
      failureThreshold: 3
      successThreshold: 1
  2. Deploy the chart.
  3. Observe that the resulting StatefulSet spec contains both httpGet and tcpSocket handlers, leading to a validation error.

Expected behavior:
Setting a custom probe in values.yaml should fully override the default probe, ensuring only one handler type is present in the rendered manifest.

Actual behavior:
The chart merges the custom probe with its own default probe, resulting in both handlers being present and an invalid Pod spec.

Workaround:
Currently, the only way to deploy is to disable probes entirely:

livenessProbe:
  enabled: false
readinessProbe:
  enabled: false

This is not ideal, as it disables health checks for the Erigon container.

Suggested fix:

  • Update the chart logic to ensure that when a custom probe is specified, it completely replaces the default probe, rather than merging fields.
  • Alternatively, support customLivenessProbe and customReadinessProbe fields that are used as-is if present.

Environment:

  • Chart version: erigon-1.0.12
  • Kubernetes version: (e.g., v1.32.2 via Kind)
  • Helm version: (e.g., v3.17.2)

Additional context:
This issue prevents using robust health checks (such as those provided by a sidecar) and may impact node reliability in production.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions