open-balena icon indicating copy to clipboard operation
open-balena copied to clipboard

Kubernetes support via Helm chart

Open bartversluijs opened this issue 3 years ago • 9 comments

I've spent quite some time in creating a Helm Chart for Kubernetes to deploy openBalena via Kubernetes. I'm confident now that this Helm Chart is stable enough to be supported in the main openBalena repository and I'd like to get the opinion of the openBalena contributors as well as the community what could be improved and what's needed to get this PR merged.

The Helm Chart will create the following services, with the same versions as the current openBalena version:

  • openBalena API
    • Deployment
    • Service for port 80
    • Ingress to api.<hostname> with TLS rule
  • openBalena VPN
    • Deployment
    • Service for port 443 and 3128
    • Ingress to vpn.<hostname>
    • HAProxy snippet to get the VPN working over port 443
  • openBalena Registry
    • StatefulSet with PVC
    • Service for port 80
    • Ingress to registry.<hostname> with TLS rule
  • openBalena S3
    • StatefulSet with PVC
    • Service for port 80
    • Ingress to s3.<hostname> with TLS
    • Can be disabled if you're using an external S3, which can be configured in the values.yaml
  • openBalena DB
    • StatefulSet with PVC
    • Service for port 5432
  • Redis
    • StatefulSet with PVC
    • Service to port 6379
  • VPN Tunnel via TLS
    • HAProxy Ingress TCP service with TLS to VPN service port 3128
    • Ingress to tunnel.<hostname> with TLS

This will also resolve #6.


Please let me know what you think!

bartversluijs avatar Jun 28 '21 14:06 bartversluijs

Any updates on this?

bdsoha avatar Sep 12 '21 11:09 bdsoha

An error occurred whilst building your landr site preview:

{
  "name": "Error",
  "message": "Command failed with code undefined: /usr/src/app/node_modules/gatsby/cli.js build",
  "stack": "Error: Command failed with code undefined: /usr/src/app/node_modules/gatsby/cli.js build\n    at Object.exports.run (/usr/src/app/lib/build-runner.js:257:11)\n    at async build (/usr/src/app/bot/index.js:132:19)\n    at async /usr/src/app/bot/index.js:210:25\n    at async Promise.all (index 0)\n    at async middleware (/usr/src/app/node_modules/@octokit/webhooks/dist-node/index.js:355:5)"
}

ghost avatar May 06 '22 13:05 ghost

Hi @bartversluijs I would be very interested in this PR. Is there anything that can be done to help getting this through ?

fabienheureux avatar Nov 14 '22 20:11 fabienheureux

Hi @fabienheureux, I don't think this PR will be merged, but I can be wrong. However, you can still use the Helm chart! Take a look here on how to use it.

I'm using it in production for a few years now and it works really well. And I'm not the only one using it!

When I have the time, I'll create a different repo with just the Helm chart and a script that can convert the current config to a Kubernetes Helm values file. This way, it doesn't need to keep up to date with the master branch here and versioning is somewhat simpler.

Hope it helps!

bartversluijs avatar Nov 17 '22 09:11 bartversluijs

Thanks a lot for your reply. No worries it does not get merged, I was wondering how stable it was, but if you use it on prod then I will go ahead and start using it 🎉

An external repo would be great, I would be happy to help.

fabienheureux avatar Nov 17 '22 09:11 fabienheureux

@bartversluijs very excited to deploy to my cluster, thanks for spearheading

nargetdev avatar Nov 30 '22 04:11 nargetdev