Automatisation du pipeline CI/CD

Dans la dernière étape du pipeline CI/CD, vous regroupez et déployez vos personnalisations à l'aide d'un outil d'automatisation de script. Un certain nombre d'outils sont disponibles à cet effet. Dans cet exemple, nous utilisons Jenkins.

Génération d'un fichier Jenkins pour automatiser vos processus

Le Jenkinsfile définit la séquence d'exécution de votre processus de génération. Il inclut les phases et étapes suivantes :
Note: Vous pouvez ignorer une phase si vous ne disposez pas de personnalisations pour elle.
Etape 1 : Intégrer et déployer des processeurs NiFi personnalisés
Cette phase se compose des étapes suivantes :
  1. Extrayez le code de votre référentiel de fichiers.
  2. Créez le code source des processeurs de Java personnalisés.
  3. Intégrez le code du processeur Java personnalisé dans un fichier .nar. A l'aide de votre utilitaire d'automatisation de génération préféré, comme le plug-in Jenkins+Maven, créez un script qui appelle les cibles pom.xml qui générera et intégrera le code dans un fichier .NAR.
  4. Créez un conteneur NiFi personnalisé avec une copie du fichier .NAR.
  5. Créez une image personnalisée du fichier .nar qui doit être copié dans le conteneur Docker NiFi, à l'aide d'un Dockerfile,
    COPY commerce-custom-search-bundles.nar /opt/nifi/nifi-current/extensions/commerce-custom-search-bundles.nar
  6. Poussez l'image personnalisée dans le registre Docker.
  7. Déployez et exécutez la nouvelle image NiFi personnalisée pour voir le processeur disponible à partir de l'interface utilisateur NiFi.
Etape 2 : Intégrer et déployer des groupes de processus NiFi personnalisés
Cette phase se compose des étapes suivantes :
  1. Extrayez le code de votre référentiel de fichiers.
  2. A l'aide d'un Dockerfile, générez une image personnalisée du conteneur de registre NiFi contenant les fichiers JSON.
  3. Déployez l'image du registre NiFi personnalisée.
  4. Démarrez l'image du registre NiFi personnalisée.
    Note: La création d'un registre NiFi n'est pas une exigence. Vous pouvez également implémenter un registre NiFi distinct personnalisé qui contient le groupe de processus personnalisé.
  5. Dans le même Dockerfile utilisé à l'étape 2, incluez l'utilitaire import_flow.sh pour importer les groupes de processus. Voir Importer les connecteurs dans le registre d'exécution
Etape 3 : Intégrer et déployer des connecteurs Ingest
  1. Extrayez le code de votre référentiel de fichiers.
  2. A l'aide de la commande Curl suivante, chargez la définition de connecteur modifiée du fichier JSON dans le conteneur Ingest pour faire persister le descripteur dans ZooKeeper.
    post /connector/<*CONNECTOR_NAME*>/upgrade/

    Exemple : voici un exemple de mise à niveau de connexion à l'aide de la commande Curl :

    curl -X POST "http://v91tk.hclcdev.com:30800/connectors/someid.sample/upgrade" -H "accept: */*" -H "Content-Type: application/json" -d "{\"id\":\"string\",\"name\":\"string\",\"description\":\"string\",\"environment\":[\"string\"],\"created\":\"string\",\"modified\":\"string\",\"schedule\":{\"enabled\":true,\"startDate\":\"string\",\"endDate\":\"string\",\"startTime\":\"string\",\"everyInterval\":\"string\"},\"pipes\":[{\"name\":\"string\",\"label\":\"string\",\"version\":0,\"properties\":[{\"name\":\"string\",\"value\":\"string\",\"scope\":{\"name\":\"string\",\"sourceName\":\"string\",\"destinationName\":\"string\",\"type\":\"CONTROLLER_SERVICE\"}}]}],\"schemas\":[{\"name\":\"string\",\"schema\":{}}]}"
Personnalisez les propriétés et la configuration des composants par défaut/existants (mise à jour).
Modifiez la propriété et la configuration des groupes de processus, des processeurs, des connexions et des services de contrôleur. Pour effectuer ces modifications, placez le fichier JSON de descripteur de mise à jour dans le dossier de montage de volume spécifié (/profile/apps/search-ingest.ear/search-ingest.war/WEB-INF/classes/deployments/customization). Sur cette base, l'API de services Ingest de recherche exécute automatiquement la mise à jour de l'API avec ce JSON de descripteur de mise à jour fourni pour personnaliser la propriété et la configuration des connecteurs Ingest par défaut.