Pour exécuter des tâches d'intégration continue et des tâches personnalisées, vous devez configurer un espace de travail pour votre pipeline Code Stream. L'espace de travail prend en charge les points de terminaison Docker et Kubernetes. Lorsque vous configurez l'espace de travail de pipeline, vous devez inclure une image de générateur.

Dans l'espace de travail du pipeline, sélectionnez Docker ou Kubernetes, et incluez le point de terminaison de l'hôte Docker ou le point de terminaison de l'hôte Kubernetes. Les plates-formes Docker et Kubernetes gèrent l'intégralité du cycle de vie du conteneur que Code Stream déploie pour exécuter la tâche d'intégration continue (CI) ou la tâche personnalisée.

  • L'espace de travail Docker requiert le point de terminaison de l'hôte Docker, l'URL de l'image du générateur, le registre d'image, le répertoire de travail, le cache, les variables d'environnement, la limite de CPU et la limite de mémoire. Vous pouvez également créer un clone du référentiel Git.
  • L'espace de travail Kubernetes requiert le point de terminaison de l'hôte Kubernetes, l'URL de l'image du générateur, le registre d'image, l'espace de noms, le port de nœud, la réclamation de volume persistant (PVC), le répertoire de travail, les variables d'environnement, la limite de CPU et la limite de mémoire. Vous pouvez également créer un clone du référentiel Git.

La configuration de l'espace de travail de pipeline comporte de nombreux paramètres communs et d'autres paramètres spécifiques du type d'espace de travail, comme décrit dans le tableau suivant.

Tableau 1. Zones, détails et disponibilité de l'espace de travail
Sélection Description Détails et disponibilité
Type Type d'espace de travail. Disponible avec Docker ou Kubernetes.
Point de terminaison d'hôte Point de terminaison d'hôte sur lequel l'intégration continue (CI) et les tâches personnalisées s'exécutent.

Disponible avec l'espace de travail Docker lorsque vous sélectionnez le point de terminaison de l'hôte Docker.

Disponible avec l'espace de travail Kubernetes lorsque vous sélectionnez le point de terminaison de l'hôte Kubernetes.

URL de l'image du générateur Nom et emplacement de l'image du générateur. Un conteneur est créé à l'aide de cette image sur l'hôte Docker et le cluster Kubernetes. Les tâches d'intégration continue (CI) et les tâches personnalisées s'exécutent à l'intérieur de ce conteneur.

Exemple : fedora:latest

L'image de générateur doit inclure curl ou wget.

Registre d'image Si l'image du générateur est disponible dans un registre et si le registre nécessite des informations d'identification, vous devez d'abord créer un point de terminaison de registre d'image, puis le sélectionner ici afin que l'image puisse être extraite du registre. Disponible avec les espaces de travail Docker et Kubernetes.
Répertoire de travail Le répertoire de travail est l'emplacement à l'intérieur du conteneur où les étapes de la tâche d'intégration continue (CI) s'exécutent, et l'emplacement où le code est cloné lorsqu'un Webhook Git déclenche une exécution de pipeline. Disponible avec Docker ou Kubernetes.
Espace de noms Si vous n'entrez pas d'espace de noms, Code Stream crée un nom unique dans le cluster Kubernetes que vous avez fourni. Spécifique à l'espace de travail Kubernetes.
Port de nœud

Code Stream utilise le port de nœud pour communiquer avec le conteneur s'exécutant à l'intérieur du cluster Kubernetes.

Si vous ne sélectionnez pas de port, Code Stream utilise un port éphémère attribué par Kubernetes. Vous devez vous assurer que les règles de pare-feu sont configurées pour autoriser l'entrée dans la plage de ports éphémères (30000-32767).

Si vous entrez un port, vous devez vous assurer qu'aucun autre service du cluster ne l'utilise déjà et que le port est autorisé dans les règles de pare-feu.

Spécifique à l'espace de travail Kubernetes.
Réclamation de volume persistant

Fournit un moyen pour l'espace de travail Kubernetes de conserver les fichiers dans les exécutions de pipeline. Lorsque vous fournissez un nom de réclamation de volume persistant, il peut stocker les journaux, les artefacts et le cache.

Pour plus d'informations sur la création d'une réclamation de volume persistant, consultez la documentation Kubernetes à l'adresse https://kubernetes.io/docs/concepts/storage/persistent-volumes/.

Spécifique à l'espace de travail Kubernetes.
Variables d'environnement Les paires clé-valeur qui sont transmises ici seront disponibles pour toutes les tâches d'intégration continue (CI) et les tâches personnalisées d'un pipeline lors de son exécution.

Disponible avec Docker ou Kubernetes.

Les références aux variables peuvent être transmises ici.

Les variables d'environnement fournies dans l'espace de travail sont transmises à toutes les tâches d'intégration continue (CI) et aux tâches personnalisées dans le pipeline.

Si les variables d'environnement ne sont pas transmises ici, elles doivent être explicitement transmises à chaque tâche d'intégration continue (CI) et tâche personnalisée dans le pipeline.

Limites de CPU Limites des ressources de CPU pour le conteneur d'intégration continue (CI) ou le conteneur de tâches personnalisées. La valeur par défaut est 1.
Limites de mémoire Limites de mémoire pour le conteneur d'intégration continue (CI) ou le conteneur de tâches personnalisées. L'unité est Mo.
Clone Git Lorsque vous sélectionnez Clone Git et qu'un Webhook Git appelle le pipeline, le code est cloné dans l'espace de travail (conteneur). Si l'option Clone Git n'est pas activée, vous devez configurer une tâche d'intégration continue (CI) explicite supplémentaire dans le pipeline pour d'abord cloner le code, puis effectuer d'autres étapes, telles que la génération et le test.
Cache

L'espace de travail Code Stream vous permet de mettre en cache un ensemble de répertoires ou de fichiers pour accélérer les exécutions de pipeline suivantes. Les exemples de ces répertoires incluent .m2 et npm_modules. Si vous n'avez pas besoin de la mise en cache des données entre les exécutions de pipeline, vous n'avez pas besoin de fournir une réclamation de volume persistant.

Les artefacts, tels que les fichiers ou les répertoires du conteneur, sont mis en cache pour une réutilisation avec les exécutions de pipeline. Par exemple, les dossiers node_modules ou .m2 peuvent être mis en cache. Cache accepte une liste de chemins d'accès.

Par exemple :

workspace:
  type: K8S
  endpoint: K8S-Micro
  image: fedora:latest
  registry: Docker Registry
  path: ''
  cache:
    - /path/to/m2
    - /path/to/node_modules

Spécifique du type d'espace de travail.

Dans l'espace de travail Docker, Cache est obtenu en utilisant un chemin partagé dans l'hôte Docker pour conserver les données, les artefacts et les journaux mis en cache.

Dans l'espace de travail Kubernetes, vous ne pouvez utiliser le Cache que lorsque vous fournissez une réclamation de volume persistant. Si vous ne fournissez pas de réclamation de volume persistant, le Cache n'est pas activé.

Lors de l'utilisation d'un point de terminaison Kubernetes dans l'espace de travail de pipeline, Code Stream crée les ressources Kubernetes nécessaires, telles que ConfigMap, Secret et Pod, pour exécuter la tâche d'intégration continue (CI) ou la tâche personnalisée. Code Stream communique avec le conteneur à l'aide du port de nœud.

Pour partager des données entre des exécutions de pipeline, vous devez fournir une réclamation de volume persistant, et Code Stream montera la réclamation de volume persistant sur le conteneur pour stocker les données et l'utilisera pour les exécutions de pipeline suivantes.

Dans l'espace de travail Kubernetes, lorsque vous utilisez un point de terminaison d'hôte Kubernetes sur site avec une authentification basée sur un certificat, vous devez vous assurer que le proxy cloud est à jour avec la dernière version. Sinon, l'authentification peut échouer.