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

7.2 KiB
Raw Permalink Blame History

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é:

  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