Appel au Squash Orchestrator depuis un pipeline Jenkins


Configuration d’un Squash orchestrator dans Jenkins

Pour accéder à l’espace de configuration du Squash Orchestrator, il faut tout d’abord se rendre dans l’espace Configurer le système du System Configuration, accessible par l’onglet Administrer Jenkins :

../_images/jenkins-system-configuration.png

Un panel nommé Squash Orchestrator servers sera ensuite disponible :

../_images/jenkins-squash-orchestrator-server.png
  • Server id : Cet ID est généré automatiquement et ne peut être modifié. Il n’est pas utilisé par l’utilisateur.

  • Server name : Ce nom est défini par l’utilisateur. C’est celui qui sera mentionné dans le script du pipeline lors d’une exécution de workflow.

  • Receptionist endpoint URL : L’adresse du micro-service receptionist de l’orchestrateur, avec son port tel que défini au lancement de l’orchestrateur. Reportez-vous à la documentation de Squash Orchestrator pour plus de détails.

  • Workflow Status endpoint URL : L’adresse du micro-service observer de l’orchestrateur, avec son port tel que défini au lancement de l’orchestrateur. Reportez-vous à la documentation de Squash Orchestrator pour plus de détails.

  • Credential : Credential jenkins de type Secret text contenant un JWT Token permettant de s’authentifier auprès de l’orchestrateur. Reportez-vous à la documentation de Squash Orchestrator pour plus de détails sur l’accès sécurisé à l’orchestrateur.

  • Workflow Status poll interval : Ce paramètre correspond au temps de mise à jour du statut du workflow.

  • Workflow creation timeout : Timeout sur la réception du PEAC par le receptionist côté orchestrateur.


Appel au Squash Orchestrator depuis un pipeline Jenkins

Une fois qu’il y a au moins un Squash Orchestrator configuré dans Jenkins, il est possible de faire à l’orchestrateur depuis un job Jenkins de type pipeline grâce à une méthode de pipeline dédiée.

Ci-dessous, un exemple de pipeline simple utilisant la méthode d’appel à l’orchestrateur :

node {
   stage 'Stage 1 : sanity check'
   echo 'OK pipelines work in the test instance'
   stage 'Stage 2 : steps check'
   configFileProvider([configFile(
fileId: '600492a8-8312-44dc-ac18-b5d6d30857b4',
targetLocation: 'testWorkflow.json'
)]) {
        def workflow_id = runSquashTFWorkflow(
        workflowPathName:'testWorkflow.json',
        workflowTimeout: '20S',
        serverName:'defaultServer'
        )
        echo "We just ran The Squash Orchestrator workflow $workflow_id"
   }
}

La méthode runSquashTFWorkflow permet de transmettre un PEAC à l’orchestrateur pour exécution.

Elle dispose de 3 paramètres :

  • workflowPathName : Le chemin vers le fichier contenant le PEAC. Dans le cas présent, le fichier est injecté via le plugin Config File Provider, mais il est également possible de l’obtenir par d’autres moyens (récupération depuis un SCM, génération à la volée dans un fichier, …).

  • workflowTimeout : Timeout sur l’exécution des actions. Ce paramètre intervient par exemple si un environnement n’est pas joignable (ou n’existe pas), ou si une action n’est pas trouvée par un actionProvider. Il est à adapter en fonction de la durée d’exécution attendue des différents tests du PEAC.

  • serverName : Nom du serveur Squash Orchestrator à utiliser. Ce nom est celui défini dans l’espace de configuration Squash Orchestrator servers de Jenkins.