- Add KDriveCredentials to n8n.credentials in package.json to make credentials discoverable - Update build script to copy kdrive.svg to dist directory for proper logo display - Update SVG logo with improved design - Fix TypeScript types and error handling in GenericFunctions and KDrive node - Add default values to node properties for better UX
7.2 KiB
7.2 KiB
Instructions d'Installation avec Helm pour n8n
🎯 Installation du Node kDrive dans n8n avec Helm
Ce guide explique comment déployer le node kDrive personnalisé dans une instance n8n déployée avec Helm sur Kubernetes.
📋 Prérequis
- Kubernetes cluster opérationnel
- Helm installé et configuré
- Instance n8n déjà déployée avec Helm ou prête à être déployée
- Accès au registry Docker si vous utilisez des images personnalisées
🚀 Méthode 1: Utilisation d'un ConfigMap
1️⃣ Builder le node
# Depuis le répertoire du projet
npm install
npm run build
2️⃣ Créer un ConfigMap Kubernetes
Créez un fichier kdrive-configmap.yaml:
apiVersion: v1
kind: ConfigMap
metadata:
name: n8n-kdrive-node
namespace: votre-namespace # Remplacez par votre namespace
data:
index.js: |
{{ INCLURE_CONTENU_DU_FICHIER_dist_index_js }}
KDrive.node.js: |
{{ INCLURE_CONTENU_DU_FICHIER_dist_nodes_KDrive_KDrive.node.js }}
GenericFunctions.js: |
{{ INCLURE_CONTENU_DU_FICHIER_dist_nodes_KDrive_GenericFunctions.js }}
KDriveCredentials.api.js: |
{{ INCLURE_CONTENU_DU_FICHIER_dist_nodes_KDrive_KDriveCredentials.api.js }}
kdrive.svg: |
{{ INCLURE_CONTENU_DU_FICHIER_src_nodes_KDrive_kdrive.svg }}
Pour extraire le contenu des fichiers:
# Créer un fichier temporaire avec le contenu
cat > kdrive-configmap.yaml << 'EOF'
apiVersion: v1
kind: ConfigMap
metadata:
name: n8n-kdrive-node
namespace: votre-namespace
data:
index.js: |
EOF
# Ajouter le contenu du fichier index.js
cat dist/index.js | sed 's/^/ /' >> kdrive-configmap.yaml
# Ajouter les autres fichiers
cat >> kdrive-configmap.yaml << 'EOF'
KDrive.node.js: |
EOF
cat dist/nodes/KDrive/KDrive.node.js | sed 's/^/ /' >> kdrive-configmap.yaml
# Continuer pour les autres fichiers...
3️⃣ Appliquer le ConfigMap
kubectl apply -f kdrive-configmap.yaml
4️⃣ Mettre à jour la configuration Helm
Créez ou modifiez votre fichier values.yaml:
# values.yaml
extraVolumes:
- name: custom-nodes
configMap:
name: n8n-kdrive-node
extraVolumeMounts:
- name: custom-nodes
mountPath: /home/node/.n8n/custom/index.js
subPath: index.js
- name: custom-nodes
mountPath: /home/node/.n8n/custom/nodes/KDrive/KDrive.node.js
subPath: KDrive.node.js
- name: custom-nodes
mountPath: /home/node/.n8n/custom/nodes/KDrive/GenericFunctions.js
subPath: GenericFunctions.js
- name: custom-nodes
mountPath: /home/node/.n8n/custom/nodes/KDrive/KDriveCredentials.api.js
subPath: KDriveCredentials.api.js
- name: custom-nodes
mountPath: /home/node/.n8n/custom/nodes/KDrive/kdrive.svg
subPath: kdrive.svg
env:
- name: N8N_CUSTOM_EXTENSIONS
value: "/home/node/.n8n/custom"
5️⃣ Mettre à jour le déploiement
# Si n8n est déjà installé
helm upgrade votre-release n8n/n8n -f values.yaml
# Si c'est une nouvelle installation
helm install votre-release n8n/n8n -f values.yaml
🗃️ Méthode 2: Utilisation d'un Volume Persistant
1️⃣ Créer un PersistentVolumeClaim
# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: n8n-custom-nodes-pvc
namespace: votre-namespace
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
kubectl apply -f pvc.yaml
2️⃣ Modifier la configuration Helm
# values.yaml
extraVolumes:
- name: custom-nodes
persistentVolumeClaim:
claimName: n8n-custom-nodes-pvc
extraVolumeMounts:
- name: custom-nodes
mountPath: /home/node/.n8n/custom
env:
- name: N8N_CUSTOM_EXTENSIONS
value: "/home/node/.n8n/custom"
3️⃣ Copier les fichiers dans le volume
# Trouver le pod n8n
kubectl get pods -n votre-namespace
# Copier les fichiers
kubectl cp dist/index.js votre-pod-n8n:/home/node/.n8n/custom/index.js -n votre-namespace
kubectl cp -r dist/nodes votre-pod-n8n:/home/node/.n8n/custom/ -n votre-namespace
kubectl cp src/nodes/KDrive/kdrive.svg votre-pod-n8n:/home/node/.n8n/custom/nodes/KDrive/kdrive.svg -n votre-namespace
🐳 Méthode 3: Image Docker Personnalisée
1️⃣ Créer un Dockerfile
# Dockerfile
FROM n8nio/n8n:latest
# Copier les fichiers du node personnalisé
COPY dist/index.js /home/node/.n8n/custom/index.js
COPY dist/nodes /home/node/.n8n/custom/nodes
COPY src/nodes/KDrive/kdrive.svg /home/node/.n8n/custom/nodes/KDrive/kdrive.svg
# Configurer les extensions personnalisées
ENV N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
2️⃣ Builder et pousser l'image
docker build -t votre-registry/n8n-kdrive:latest .
docker push votre-registry/n8n-kdrive:latest
3️⃣ Mettre à jour les valeurs Helm
# values.yaml
image:
repository: votre-registry/n8n-kdrive
tag: latest
pullPolicy: Always
4️⃣ Mettre à jour le déploiement
helm upgrade votre-release n8n/n8n -f values.yaml
🔄 Méthode 4: InitContainer
Pour une approche plus robuste:
# values.yaml
extraInitContainers:
- name: copy-custom-nodes
image: busybox
command: ['sh', '-c', 'cp -r /config/* /custom/']
volumeMounts:
- name: custom-nodes-config
mountPath: /config
- name: custom-nodes
mountPath: /custom
extraVolumes:
- name: custom-nodes-config
configMap:
name: n8n-kdrive-node
- name: custom-nodes
emptyDir: {}
extraVolumeMounts:
- name: custom-nodes
mountPath: /home/node/.n8n/custom
env:
- name: N8N_CUSTOM_EXTENSIONS
value: "/home/node/.n8n/custom"
🧪 Vérification de l'Installation
1️⃣ Vérifier que les fichiers sont présents
kubectl exec -it votre-pod-n8n -n votre-namespace -- ls -la /home/node/.n8n/custom/
2️⃣ Vérifier les logs
kubectl logs votre-pod-n8n -n votre-namespace | grep -i "custom\|kdrive"
3️⃣ Redémarrer si nécessaire
kubectl rollout restart deployment votre-deployment-n8n -n votre-namespace
🔧 Configuration des Credentials
Une fois le node installé:
- Accéder à l'interface n8n
- Aller dans Credentials
- Ajouter un nouveau credential de type "kDrive API"
- Entrer votre clé API kDrive
- Sauvegarder
📝 Notes Importantes
Persistance des Données
- Les ConfigMaps ne sont pas conçus pour les gros fichiers
- Pour les productions, préférez les volumes persistants ou images Docker
- Les modifications nécessitent un redémarrage du pod
Mises à Jour
- Pour mettre à jour le node, répétez le processus avec les nouveaux fichiers
- Utilisez des versions pour vos ConfigMaps/images pour faciliter les rollbacks
Sécurité
- Les credentials sont stockés de manière sécurisée dans n8n
- Ne stockez jamais les credentials dans les ConfigMaps
🎯 Prochaines Étapes
- Choisir une méthode de déploiement adaptée à votre environnement
- Déployer le node en suivant les instructions
- Configurer les credentials kDrive dans n8n
- Tester le node avec un workflow simple
- Automatiser vos processus kDrive avec n8n
Pour plus d'informations:
BUILD_INSTRUCTIONS.md- Instructions de buildREADME.md- Guide utilisateurQUICK_START.md- Guide de démarrage rapide