I was playing with the thought of installing helm charts to a k8s cluster via n8n-workflow. The idea of automatically creating DNS records, deploying applications on kubernetes and exposing them to the web with a single click seemed really interesting to me and I want to try out just that.
With that being said, it seems a bit tricky to install helm charts to a k8s purely via n8n. Has anybody ever faced this problem and found a more or less sophisticated solution for this? I’m not sure how I should set that up without introducing any major hacks.
I’d be grateful to hear your thoughts on that. Also, if there’s a general opinion on not doing these kinds of things in a workflow I’d also be really interested in the reasons as to why that would be.
Thanks.
Information on your n8n setup
n8n version: 1.104
Database (default: SQLite): SQLite
n8n EXECUTIONS_PROCESS setting (default: own, main): own
Running n8n via (Docker, npm, n8n cloud, desktop app): Docker/k8s
So to get started, you can use the Kubernetes node in n8n to connect to your cluster and execute kubectl commands. For Helm charts, you might need to use a custom script or the kubectl command to install or upgrade the chart.
One way to approach this is to break it down into smaller steps:
Connect to your Kubernetes cluster using the Kubernetes node.
Use the kubectl command to install or upgrade the Helm chart.
Verify the deployment status using the Kubernetes node.
You can also use n8n’s built in nodes to create DNS records and expose the application to the web.
As for whether this is a good idea, it really depends on your use case. Automating deployments can save time and reduce errors, but it also requires careful planning and testing to ensure everything works smoothly.
What specific challenges are you facing with this project?
I wasn’t aware of the fact that there’s a Kubernetes node out there. This would change everything actually!
May I ask where this node comes from? I’m self-hosting the n8n platform – is this a feature that doesn’t come with the environment I have (version 1.104) or are you referring to a community node?