OpenBalena Helm Chart - HAProxy Unhappy

Hello everyone,

I am a long term user of Balena Cloud but for development devices now wish to start using OpenBalena. K8s deployment is the preferred method for me so I started looking at @bartversluijs legendary Helm charts after finding them on the forum. However I am having some minor issue…

Firstly upon running the helm install -

Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: resource mapping not found for name: "openbelena-haproxy" namespace: "" from "": no matches for kind "PodDisruptionBudget" in version "policy/v1beta1"

I tried using slightly more modern versions of the haproxy ingress helm chart (13.11) but it didn’t work so well, so in the end hacked up 13.7 to use policy/v1 rather than policy/v1beta1…

Anyway, then the install command ran successfully and all seemed to be going well until failure in the replica set for haproxy.

On closer inspection of the pod it is failing during loading of HAProxy due to invalid config…

[WARNING] 065/203639 (23) : parsing [/etc/haproxy/haproxy.cfg:247] : a 'tcp-request' rule placed after a 'use_backend' rule will still be processed before.
[NOTICE] 065/203639 (23) : haproxy version is 2.3.19-0647791
[ALERT] 065/203639 (23) : Proxy '_front__tls': unable to find required use_backend: 'default_openbalena-vpn_443'.
[ALERT] 065/203639 (23) : Fatal errors found in configuration.

This is largely out of my control as it’s ingress configured by the Helm chart. I guess it is odd I am the only person reporting this so far, not sure why the backend isn’t being created in the haproxy config.

As for my methodology I literally clone the repo and follow this README.md in the top level of the repo… open-balena/README.md at master · bartversluijs/open-balena · GitHub

Use quickstart to generate config folder including the patched in kubernetes.yml, then resolve helm dependencies and run the helm install command.

Any assistance from the community is greatly appreciated.

Best Regards,

Rob

Hi @robputt,

You mentioned me, but I didn’t get a notification, weird…

However, nice to hear that you used my Helm chart to install openBalena, but it is unfortunate that you’re running into problems. Maybe you can provide me with some more details.

  1. What’s the version of your Kubernetes cluster?
  2. What version if your Kubernetes Helm chart?
  3. As I understand correctly, you’ve updated HAProxy to 0.13.11 instead of 0.13.7 because of the policy/v1beta1? If so, I can test HAProxy 0.13.11 for the Helm chart.

What I find interesting, is if you’ve copied the error, it states openbelena-haproxy instead of openbalena-haproxy (notice the second ‘e’). So something’s wrong there, but it is not wrong in the Helm chart itself. So that would probably be a configuration error on your end?

I haven’t run into these problems, but I’m happy to try and debug it and hopefully come to a good conclusion!

Hello,

Thanks for the reply, and sorry for my delay in getting back to you…

Here are the details;

  1. K8s cluster = Kubernetes 1.25.4-do.0 (it is running on Digital Ocean Managed Kubernetes Service)
  2. Helm chart version
  • version: 1.3.2
  • appVersion: v3.8.2
  1. Yes, infact it seems the error is the same no matter which version of HaProxy Ingress I use… Also tried 0.14.2, same error within the HaProxy container logs.
  2. The name I believe is a typo I made when running helm, from my history…
    helm install openbelena ./kubernetes/helm -f ./config/kubernetes.yaml

Anyway as it is not working I clean up by running helm uninstall, and then install with correct spelling. Now the container for haproxy has the expected name.

If it helps I can generate some token for you to poke at the deployment on our K8s or we can discuss via some more immediate messaging service such as Slack or Discord.

Best Regards,

Rob

Hi Rob,

I’ll try and reproduce it on a new Kubernetes cluster.
We’re also using DigitalOcean, so that helps :slight_smile:

I’ll let you know asap!

Managed to get this working in the end, turns out the ingress class wasn’t created appropriately, I don’t think it was a fault with the helm chart but rather a freak of nature event.

Thanks for the help.

1 Like

Hey how did you fix this? I am getting the same error

Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: resource mapping not found for name: "openbalena-haproxy" namespace: "" from "": no matches for kind "PodDisruptionBudget" in version "policy/v1beta1"
ensure CRDs are installed first