Skip to content

Helm chart defaults produce a pod that cannot start; the settings it needs exist only in the dev and test profiles #645

Closed

Description

@martin-mat

The chart's values.yaml leaves securityContext, resources, livenessProbe and readinessProbe empty and passes no config file. The eBPF data plane needs privileges to raise its memory limits and load its programs, as the README notes, so with the defaults the process exits at once:

$ docker run ghcr.io/edgecomllc/eupf:0.7.1
Unable to read config file: open ./config.yml: no such file or directory. Using defaults
...
FTL Can't increase resource limits: operation not permitted

In a cluster that is a CrashLoopBackOff on the first helm install. Everything that makes the pod work lives only in .deploy/helm/values/dev.yaml and test.yaml:

  • privileged: true;
  • the net.ipv4.ip_forward sysctl;
  • the read-only /sys host mount;
  • a config file through configMaps;
  • TCP liveness and readiness probes on the API port;
  • resource requests and limits.

With the dev profile the same image starts and serves on :8080 and :9090.

Proposal

Move the settings the pod cannot start without into the chart's defaults, taken from dev.yaml: the privileged security context (or the specific capabilities, if those are enough), the sysctl, the /sys mount, a default config, the TCP probes and modest resources. The dev and test profiles then carry only what is specific to those environments, and helm install eupf .deploy/helm/eupf gives a running, probed UPF.

If privileges should stay opt-in by design, a documented minimal values file next to the chart would serve the same purpose, and the probes and resources can still be defaults.

Activity

  1. martin-mat commented on Oct 23, 2026

    @martin-mat
    ContributorAuthor

    Fixed by #649: a default helm install now gives a pod that starts, with the sysctl, the /sys mount, a default configuration, TCP probes and resources in the chart's defaults, and #666 then replaced the privileged container with the documented capability set. Thanks @pirog-spb, closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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