Files
kdrive-n8n/HELM_INSTRUCTIONS.md
Rene Luria 6dccaba278 fix: add credentials export and fix logo display
- 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
2025-12-23 10:13:13 +01:00

303 lines
7.2 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```bash
# Depuis le répertoire du projet
npm install
npm run build
```
### 2⃣ Créer un ConfigMap Kubernetes
Créez un fichier `kdrive-configmap.yaml`:
```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:
```bash
# 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
```bash
kubectl apply -f kdrive-configmap.yaml
```
### 4⃣ Mettre à jour la configuration Helm
Créez ou modifiez votre fichier `values.yaml`:
```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
```bash
# 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
```yaml
# pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: n8n-custom-nodes-pvc
namespace: votre-namespace
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
```
```bash
kubectl apply -f pvc.yaml
```
### 2⃣ Modifier la configuration Helm
```yaml
# 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
```bash
# 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
# 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
```bash
docker build -t votre-registry/n8n-kdrive:latest .
docker push votre-registry/n8n-kdrive:latest
```
### 3⃣ Mettre à jour les valeurs Helm
```yaml
# values.yaml
image:
repository: votre-registry/n8n-kdrive
tag: latest
pullPolicy: Always
```
### 4⃣ Mettre à jour le déploiement
```bash
helm upgrade votre-release n8n/n8n -f values.yaml
```
## 🔄 Méthode 4: InitContainer
Pour une approche plus robuste:
```yaml
# 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
```bash
kubectl exec -it votre-pod-n8n -n votre-namespace -- ls -la /home/node/.n8n/custom/
```
### 2⃣ Vérifier les logs
```bash
kubectl logs votre-pod-n8n -n votre-namespace | grep -i "custom\|kdrive"
```
### 3⃣ Redémarrer si nécessaire
```bash
kubectl rollout restart deployment votre-deployment-n8n -n votre-namespace
```
## 🔧 Configuration des Credentials
Une fois le node installé:
1. **Accéder à l'interface n8n**
2. **Aller dans Credentials**
3. **Ajouter un nouveau credential** de type "kDrive API"
4. **Entrer votre clé API kDrive**
5. **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
1. **Choisir une méthode** de déploiement adaptée à votre environnement
2. **Déployer le node** en suivant les instructions
3. **Configurer les credentials** kDrive dans n8n
4. **Tester le node** avec un workflow simple
5. **Automatiser vos processus** kDrive avec n8n
Pour plus d'informations:
- `BUILD_INSTRUCTIONS.md` - Instructions de build
- `README.md` - Guide utilisateur
- `QUICK_START.md` - Guide de démarrage rapide