Trouble with starting the Data Plane API

Hi there!

I am attempting to run the HAProxy Data Plane API from a Docker container in Kubernetes and I have gotten to the point where the app is crashing with no logs whatsoever.

At first it was complaining about not having access to write in any of the directories which I could validate based on the permissions of the folder and everything belonging to the root user and group. I was able to surpass this by changing every directory to /tmp.

Now, being past all of those errors, whenever the Data Plane API starts up it will take down the entire running instance and I’m not sure why or how to fix it. I have attached the logs and my configuration at the bottom of this post.

I do not have permission to bind to privileged ports which is why I am binding to 8080 and 4443, although I perform a mapping to that port through its k8s service.

I am deploying this using helm and running the latest version of HAProxy.

Here is a copy of my config:

[NOTICE]   (1) : New program 'api' (8) forked
[NOTICE]   (1) : New worker (9) forked
[NOTICE]   (1) : Loading success.
configuration file /tmp/dataplaneapi.yml does not exists, creating one
[NOTICE]   (1) : haproxy version is 2.8.2-61a0f57
[ALERT]    (1) : Current program 'api' (8) exited with code 1 (Exit)
[ALERT]    (1) : exit-on-failure: killing every processes with SIGTERM
[ALERT]    (1) : Current worker (9) exited with code 143 (Terminated)
[WARNING]  (1) : All workers exited. Exiting... (1)
Stream closed EOF  default/haproxy-6f9f7c6b6d-jwj5l (haproxy)

    log stdout format raw local0 debug
    maxconn 1024
    stats socket /tmp/haproxy.sock mode 666 level admin

  userlist haproxy-dataplaneapi
    user admin insecure-password mypassword

  program api
    command /usr/local/bin/dataplaneapi --host --port 5555 --haproxy-bin /usr/sbin/haproxy -f /tmp/dataplaneapi.yml --config-file /usr/local/etc/haproxy/haproxy.cfg --reload-cmd "kill -SIGUSR2 1" --reload-delay 5 --restart-cmd "kill -SIGUSR2 1" --userlist haproxy-dataplaneapi --maps-dir /tmp --backups-dir /tmp --ssl-certs-dir /tmp --general-storage-dir /tmp --spoe-dir /tmp --cluster-tls-dir /tmp --spoe-transaction-dir /tmp
    no option start-on-reload

    mode http
    log global
    timeout client 60s
    timeout connect 60s
    timeout server 60s

  frontend fe_main
    bind :8080
    default_backend default_response

  backend default_response
    http-request return content-type "text/plain" string "Hello World!"

Any help is greatly appreciated! Thank you.