Updating n8n to latest version
This commit is contained in:
parent
f1f5d78d35
commit
7a43c83b34
|
|
@ -743,20 +743,6 @@ To verify installation was correcet, use the following command:
|
||||||
helm get manifest mop-n8n -n n8n | less
|
helm get manifest mop-n8n -n n8n | less
|
||||||
```
|
```
|
||||||
|
|
||||||
Apply the garth mcp server:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
kubectl apply -f n8n/garmin-mcp.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
Generate token:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
uvx garth login
|
|
||||||
#login with user+pw+token
|
|
||||||
#take output, put in in garth_tkomen.txt
|
|
||||||
kubectl create secret generic garth-token-secret --from-file=GARTH_TOKEN=./garth_token.txt -n n8n
|
|
||||||
```
|
|
||||||
|
|
||||||
## n8n-fabi
|
## n8n-fabi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
# n8n Workload
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This directory contains the configuration and deployment manifests for **n8n**, a workflow automation tool, deployed in the `n8n` namespace.
|
||||||
|
|
||||||
|
## Workload Information
|
||||||
|
|
||||||
|
* **Namespace**: `n8n`
|
||||||
|
* **Deployment**: `mop-n8n` (Managed via Helm)
|
||||||
|
* **Database**: PostgreSQL managed by CloudNativePG operator with cluster name `db`.
|
||||||
|
* **Ingress**: `n8n.moritzgraf.de` (NGINX Ingress, Let's Encrypt certificates).
|
||||||
|
|
||||||
|
|
||||||
|
### Key Files
|
||||||
|
|
||||||
|
* `n8n.secret.yml`: The Helm values file containing configurations, secrets, DB connections, and Ingress settings. Use git-crypt to unlock before editing.
|
||||||
|
|
||||||
|
|
||||||
|
## Maintenance Instructions
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> **Update Strategy**: Never update two things at the same time! Update only one component at a time (e.g., the Helm chart OR the n8n application image). After updating one component, automatically verify its functionality and **always ask the human to verify functionality before continuing** to the next update.
|
||||||
|
|
||||||
|
### 1. How to Redeploy/Apply Changes to n8n
|
||||||
|
|
||||||
|
When making changes to `n8n.secret.yml` (e.g., updating configuration or resource limits), you need to re-apply the Helm chart from the `k8s` directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Run this from the infrapuzzle/k8s directory
|
||||||
|
cd ../k8s # if you are in n8n
|
||||||
|
helm upgrade --cleanup-on-fail --install mop-n8n \
|
||||||
|
oci://8gears.container-registry.com/library/n8n \
|
||||||
|
--namespace n8n --values n8n/n8n.secret.yml --version 2.0.1
|
||||||
|
```
|
||||||
|
*(Note: The `--version 2.0.1` flag specifies the Helm Chart version. See Section 2 for updating the chart.)*
|
||||||
|
|
||||||
|
To verify the installation:
|
||||||
|
```bash
|
||||||
|
helm get manifest mop-n8n -n n8n | less
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. How to Update the n8n Helm Chart Version
|
||||||
|
|
||||||
|
1. Check the [8gears n8n-helm-chart Releases page](https://github.com/8gears/n8n-helm-chart/releases) for the latest chart version.
|
||||||
|
2. When running the `helm upgrade` command, change the `--version` argument (e.g., `--version 2.0.1`) to the latest version.
|
||||||
|
3. Verify the deployment functionality automatically and with the human user before proceeding.
|
||||||
|
|
||||||
|
### 3. How to Update the n8n Application Version
|
||||||
|
|
||||||
|
1. Check the [n8n GitHub Releases page](https://github.com/n8n-io/n8n/releases) for the latest version tag (e.g., `2.13.4`).
|
||||||
|
2. Update the `tag:` value in `n8n/n8n.secret.yml`.
|
||||||
|
3. Re-run the `helm upgrade` command mentioned above.
|
||||||
|
4. Verify the deployment functionality automatically and with the human user before proceeding.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,90 +0,0 @@
|
||||||
# --- 1. Secret to hold your Garmin Connect token ---
|
|
||||||
# You must create this secret before applying the rest of the manifest.
|
|
||||||
# Replace 'your_base64_encoded_token_here' with your actual token encoded in Base64.
|
|
||||||
# To encode your token, run: echo -n 'your_token_from_login' | base64
|
|
||||||
# apiVersion: v1
|
|
||||||
# kind: Secret
|
|
||||||
# metadata:
|
|
||||||
# name: garth-mcp-secret
|
|
||||||
# namespace: default
|
|
||||||
# type: Opaque
|
|
||||||
# data:
|
|
||||||
# # This key MUST be GARTH_TOKEN to match the application's environment variable
|
|
||||||
# GARTH_TOKEN: your_base64_encoded_token_here
|
|
||||||
---
|
|
||||||
# deployment.yaml
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: garth-mcp-server
|
|
||||||
namespace: n8n
|
|
||||||
labels:
|
|
||||||
app: garth-mcp-server
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: garth-mcp-server
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: garth-mcp-server
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: garth-mcp-server
|
|
||||||
# Use a Python image version >= 3.13 as requested.
|
|
||||||
image: python:3.13-slim
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: "64Mi"
|
|
||||||
cpu: "100m"
|
|
||||||
limits:
|
|
||||||
memory: "256Mi"
|
|
||||||
cpu: "500m"
|
|
||||||
# This command now installs dependencies and directly executes the mounted script.
|
|
||||||
command: ["/bin/sh", "-c"]
|
|
||||||
args: [
|
|
||||||
"pip install --no-cache-dir --upgrade pip && \
|
|
||||||
pip install --no-cache-dir uv mcp-proxy && \
|
|
||||||
echo '--- Setup complete, starting server ---' && \
|
|
||||||
mcp-proxy --host=0.0.0.0 --port=8080 --pass-environment uvx garth-mcp-server"
|
|
||||||
]
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
name: http
|
|
||||||
# Inject the Garmin token securely from the Kubernetes Secret.
|
|
||||||
envFrom:
|
|
||||||
- secretRef:
|
|
||||||
name: garth-token-secret
|
|
||||||
# # Health probes for Kubernetes to manage the pod's lifecycle.
|
|
||||||
# livenessProbe:
|
|
||||||
# tcpSocket:
|
|
||||||
# port: 8080
|
|
||||||
# initialDelaySeconds: 15
|
|
||||||
# periodSeconds: 20
|
|
||||||
# readinessProbe:
|
|
||||||
# tcpSocket:
|
|
||||||
# port: 8080
|
|
||||||
# initialDelaySeconds: 60
|
|
||||||
# periodSeconds: 10
|
|
||||||
---
|
|
||||||
# --- 3. Service to expose the Deployment ---
|
|
||||||
# This creates a stable internal endpoint for the server.
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: garth-mcp-service
|
|
||||||
namespace: n8n
|
|
||||||
spec:
|
|
||||||
selector:
|
|
||||||
app: garth-mcp-server
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
protocol: TCP
|
|
||||||
# The port the service will be available on within the cluster
|
|
||||||
port: 80
|
|
||||||
# The port on the container that the service will forward traffic to
|
|
||||||
targetPort: 8080
|
|
||||||
# ClusterIP is the default, but we're explicit here.
|
|
||||||
# This service is only reachable from within the Kubernetes cluster.
|
|
||||||
type: ClusterIP
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#small deployment with nodeport for local testing or small deployments
|
#small deployment with nodeport for local testing or small deployments
|
||||||
image:
|
image:
|
||||||
repository: n8nio/n8n
|
repository: n8nio/n8n
|
||||||
tag: 2.9.1
|
tag: 2.13.4
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
# Overrides the image tag whose default is the chart appVersion.
|
||||||
#tag: "stable"
|
#tag: "stable"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue