netbird icon indicating copy to clipboard operation
netbird copied to clipboard

Netbird server Helm chart

Open MohammedNoureldin opened this issue 2 years ago • 18 comments

Hi,

I have created this issue to track the status of creating a Helm chart to install a self-hosted server easily. I have just finished preparing all Kubernetes required resources and got it working out of the box.

I just still need to replace the hard-coded fields with Helm vars.

Here I am using no "magic script" to create my configuration, because it was the most tedious part for me to get everything working without the script, because it reduced the readability and my understanding to what is going on and how is every part being configured. So I think these K8s resources can also help anybody to understand how the components can be configured manually.

MohammedNoureldin avatar May 13 '23 07:05 MohammedNoureldin

You can assign me this task. Also, Please help me in finding Kubernetes manifest files so that I can start working on packaging it using Helm.

jayvardhan2111 avatar Jul 04 '23 06:07 jayvardhan2111

Hello @MohammedNoureldin @jayvardhan2111 Any news on this feature request ? Regards,

M0NsTeRRR avatar Nov 07 '23 01:11 M0NsTeRRR

As I see jaconi company have shared helm chart for client and server https://artifacthub.io/packages/helm/jaconi/netbird

https://github.com/jaconi-io/helm-charts/tree/main

M0NsTeRRR avatar Nov 07 '23 01:11 M0NsTeRRR

As I see jaconi company have shared helm chart for client and server https://artifacthub.io/packages/helm/jaconi/netbird

https://github.com/jaconi-io/helm-charts/tree/main

HelmCharts from jaconi's company seems a bit complicated, I think there can be a simplified version for easier understanding.

dextercai avatar Nov 20 '23 03:11 dextercai

As I see jaconi company have shared helm chart for client and server https://artifacthub.io/packages/helm/jaconi/netbird

https://github.com/jaconi-io/helm-charts/tree/main

HelmCharts from jaconi's company seems a bit complicated, I think there can be a simplified version for easier understanding.

It's a classic helm chart with a lot of configurable features (all ? I didn't look much into in for now) with default values also. If we have a simple helm chart if your requirement change and need a feature that's not managed you have to migrate to another helm chart. Documentation and default values (when possible) will helps to understand.

M0NsTeRRR avatar Nov 20 '23 17:11 M0NsTeRRR

I have written a generic helm chart, which is not as coupled as the one from jaconi. Right now works quite well, and is quite configurable. The difficult part, is how to manage the management configuration file, and populate it with configs and secrets. Should I create a PR on this repo, with a proposal? Spoiler alert:

  • It will support configuration template with secrets and config support using vals in an init container.

marcportabellaclotet-mt avatar Jun 04 '24 14:06 marcportabellaclotet-mt

@marcportabellaclotet-mt can you share a preview of your chart with the proposal? thanks

dfry avatar Jun 10 '24 10:06 dfry

Here is a basic version of the Helm chart that I am using.

It needs documentation, which could be added if the proposal is accepted. The aim is to support any configuration since it's impractical to template all possible configurations based on the management.json file.

To render the configuration, we will need to run the configure.sh from Netbird, include it as values.configuration in the netbird chart, and replace sensitive data with vals references. Note that netbird-dashboard also needs to update some env vars.

Maybe I could merge both charts for simplicity.

I provide an example using Authentik as an IdP and Kubernetes secrets to manage sensitive data.

For deploying the TURN server, I have successfully done so in Kubernetes using the Stunner Gateway Operator.

marcportabellaclotet-mt avatar Jun 11 '24 19:06 marcportabellaclotet-mt

I've just updated the helm chart, with relay support. It includes examples, documentation, and now you can use it as a helm release:

helm repo add netbird-helm https://totmicro.github.io/helms

Details here.

marcportabellaclotet-mt avatar Oct 07 '24 21:10 marcportabellaclotet-mt

@marcportabellaclotet-mt that is great work. I had forked your repo earlier and added some elements that I needed: https://github.com/mojaloop/netbird-charts

i would like to move to using your chart repo if we can see if my changes are needed anymore and if so, make a PR from mine to yours.

But also, was wondering if you are on the netbird slack. There are other users there interested in a helm chart and it would be good to get the discussion going with them as well as the netbird guys.

one big thing would be to address the use of env vars in the management.json config so we don't need the helmfile secrets injection and the kubectl init container bit.

dfry avatar Oct 08 '24 09:10 dfry

I will join netbird slack, to discuss about this.

marcportabellaclotet-mt avatar Oct 08 '24 10:10 marcportabellaclotet-mt

so the concensus is that you are moving forward with @marcportabellaclotet-mt 's helm chart.. and eventually merge that into netbird repo here as the official helm chart, or ?

KlavsKlavsen avatar Jan 24 '25 09:01 KlavsKlavsen

I am also happy to contribute to this effort.

drewhemm avatar Jan 24 '25 16:01 drewhemm

join the netbird slack #helm channel

dfry avatar Jan 24 '25 16:01 dfry

Hello @MohammedNoureldin,

We're currently reviewing our open issues and would like to verify if this problem still exists in the latest NetBird version.

Could you please confirm if the issue is still there?

We may close this issue temporarily if we don't hear back from you within 2 weeks, but feel free to reopen it with updated information.

Thanks for your contribution to improving the project!

nazarewk avatar Apr 28 '25 15:04 nazarewk

It is not an issue, we are missing the official Helm, while I am currently using my self-written chart. FYI @nazarewk

MohammedNoureldin avatar Jun 01 '25 17:06 MohammedNoureldin

More of a feature request and not an issue but regardless, it is a need.

richevanscybermyte avatar Jun 05 '25 01:06 richevanscybermyte

Can agree this is a need. Im surprised you went about creating an operator before even creating a chart to host the server

Edit: Although i have just spotted this, which i will be investigating.

hobbit44 avatar Jun 09 '25 23:06 hobbit44

The chart is available and it was donated by the community. If you have any feedback, please join our slack workspace here or open an issue in the chart repository directly.

mlsmaycon avatar Jun 10 '25 14:06 mlsmaycon

@mlsmaycon Sounds great. Where can I find it? I can't see it in general readme in this repo under installation methods?

KlavsKlavsen avatar Jun 10 '25 14:06 KlavsKlavsen

It looks like this chart (https://github.com/netbirdio/kubernetes-operator) is for the agent, I was expecting the manager and UI. Unless I am missing something.

richevanscybermyte avatar Jun 10 '25 18:06 richevanscybermyte

Isn't this one? https://github.com/netbirdio/helms

antoniolago avatar Jun 10 '25 22:06 antoniolago

Yes, you are right, I was looking at the operator that was posted earlier. Thank you!

richevanscybermyte avatar Jun 10 '25 22:06 richevanscybermyte

what chart are we using for coturn ?

ashish1099 avatar Jun 25 '25 23:06 ashish1099

@ashish1099 checking the source code of the Chart shows that the default TURN server is a netbird-built TURN server. You still can use your external self-hosted COTURN.

MohammedNoureldin avatar Oct 28 '25 08:10 MohammedNoureldin

I also happened to write a helm chart (the existing one didn't fit all the needs of my cluster). Feel free to steal anything from it https://github.com/cclloyd/helm-netbird

cclloyd avatar Nov 28 '25 21:11 cclloyd

@MohammedNoureldin I couldn't found anything where it says netbird-built TURN server setup, in the compose file too I saw its running coturn only.

I have working here kubeaid netbird

ashish1099 avatar Dec 12 '25 06:12 ashish1099