n8n-operator
Kubernetes Operator for N8n, a fair-code workflow automation platform with native AI capabilities.
claude mcp add --transport stdio jakub-k-slys-n8n-operator docker run -i jakub-k-slys/n8n-operator:latest \ --env NAMESPACE="The Kubernetes namespace to deploy the operator into (default: all namespaces or the operator's watches)." \ --env OPERATOR_NAME="Name for the operator deployment (optional)." \ --env WATCH_NAMESPACE="Comma-separated list of namespaces the operator should watch (optional)."
How to use
The n8n-operator is a Kubernetes operator that automates the deployment and management of n8n workflow automation instances on a Kubernetes cluster. It manages the lifecycle of n8n instances, including their PostgreSQL backing store, ingress or gateway routing, and persistent storage. You manage n8n instances by applying CustomResourceDefinitions (CRDs) that describe the desired state of each n8n deployment, and the operator reconciles the actual state to match the desired state. Typical workflows include creating an N8n custom resource to provision an n8n instance with an attached PostgreSQL database, configuring ingress for access, and adjusting storage and TLS settings as needed. The operator also integrates with Prometheus for metrics collection, enabling you to monitor n8n instances from your cluster monitoring stack.
How to install
Prerequisites:
- A Kubernetes cluster (local like kind/minikube or a cloud provider cluster)
- kubectl configured to talk to the cluster
- Access to install CustomResourceDefinitions (CRDs) used by the operator
Installation steps:
-
Create or verify CRDs are available in the cluster (the exact CRD manifests may be provided by the operator's installation docs): kubectl apply -f https://path-to-crds.example.com/n8n-slys-dev-v1alpha1.yaml
-
Deploy the operator (as a container image in a Kubernetes Deployment/Deployment + RBAC, depending on the installation method used by the operator): kubectl apply -f https://path-to-deployment-manifest.example.com/n8n-operator-deploy.yaml
-
Confirm the operator is running and watching namespaces: kubectl get pods -n <operator-namespace> kubectl logs <operator-pod-name> -n <operator-namespace>
-
Create an N8n custom resource to deploy an n8n instance (example): apiVersion: n8n.slys.dev/v1alpha1 kind: N8n metadata: name: n8n-sample spec: database: postgres: host: "postgres-host" port: 5432 database: "n8n" user: "n8n-user" password: "password" ingress: enable: true ingressClassName: "nginx" kubectl apply -f your-n8n-cr.yaml
-
Monitor and manage: use kubectl to scale, update, or delete n8n resources; view logs and Prometheus metrics as needed.
Additional notes
Tips and considerations:
- Ensure CRDs for the operator are installed before deploying the operator itself.
- When enabling Ingress, verify proper DNS and TLS configuration for secure access.
- The operator typically allocates a PostgreSQL database per n8n instance; adjust storage class and size as needed.
- For production, consider configuring TLS termination and secure secret management for database credentials.
- If you upgrade the operator, review breaking changes in the CRD schema and update existing N8n resources accordingly.
- Use Kubernetes RBAC to constrain the operator's permissions to the necessary namespaces and resources.
Related MCP Servers
Scrapling
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
better-chatbot
Just a Better Chatbot. Powered by Agent & MCP & Workflows.
flow-like
Flow-Like: Strongly Typed Enterprise Scale Workflows. Built for scalability, speed, seamless AI integration and rich customization.
mesh
One secure endpoint for every MCP server. Deploy anywhere.
rulego
A lightweight dependency-free workflow automation platform. Supports iPaaS, stream computing, MCP, and AI capabilities.
zerodha
Zerodha MCP Server & Client - AI Agent (w/Agno & w/Google ADK)