Chapitre 3. Pipelines


3.1. Notes de mise à jour de Red Hat OpenShift Pipelines

Red Hat OpenShift Pipelines est une expérience CI/CD cloud-native basée sur le projet Tekton qui fournit :

  • Définitions standard de pipeline natif Kubernetes (CRDs).
  • Pipelines sans serveur, sans frais de gestion des serveurs de CI.
  • Extensibilité pour construire des images en utilisant n'importe quel outil Kubernetes, comme S2I, Buildah, JIB et Kaniko.
  • Portabilité sur n'importe quelle distribution Kubernetes.
  • CLI puissant pour interagir avec les pipelines.
  • Expérience utilisateur intégrée avec la perspective Developer de la console web OpenShift Container Platform.

Pour une vue d'ensemble de Red Hat OpenShift Pipelines, voir Comprendre OpenShift Pipelines.

3.1.1. Matrice de compatibilité et de soutien

Certaines fonctionnalités de cette version sont actuellement en avant-première technologique. Ces fonctionnalités expérimentales ne sont pas destinées à être utilisées en production.

Dans le tableau, les caractéristiques sont marquées par les statuts suivants :

TP

Avant-première technologique

GA

Disponibilité générale

Expand
Tableau 3.1. Matrice de compatibilité et de soutien
Version de Red Hat OpenShift PipelinesVersion du composantVersion d'OpenShiftStatut de soutien

Opérateur

Pipelines

Déclencheurs

CLI

Catalogue

Chaînes

Hub

Les pipelines en tant que code

  

1.10

0.44.x

0.23.x

0.30.x

NA

0.15.x (TP)

1.12.x (TP)

0.17.x (GA)

4.11, 4.12, 4.13 (prévus)

GA

1.9

0.41.x

0.22.x

0.28.x

NA

0.13.x (TP)

1.11.x (TP)

0.15.x (GA)

4.11, 4.12, 4.13 (prévus)

GA

1.8

0.37.x

0.20.x

0.24.x

NA

0.9.0 (TP)

1.8.x (TP)

0.10.x (TP)

4.10, 4.11, 4.12

GA

1.7

0.33.x

0.19.x

0.23.x

0.33

0.8.0 (TP)

1.7.0 (TP)

0.5.x (TP)

4.9, 4.10, 4.11

GA

1.6

0.28.x

0.16.x

0.21.x

0.28

N/A

N/A

N/A

4.9

GA

1.5

0.24.x

0.14.x (TP)

0.19.x

0.24

N/A

N/A

N/A

4.8

GA

1.4

0.22.x

0.12.x (TP)

0.17.x

0.22

N/A

N/A

N/A

4.7

GA

En outre, la prise en charge de l'exécution de Red Hat OpenShift Pipelines sur du matériel ARM est dans l'aperçu technologique.

Pour toute question ou commentaire, vous pouvez envoyer un courriel à l'équipe produit à l'adresse pipelines-interest@redhat.com.

3.1.2. Rendre l'open source plus inclusif

Red Hat s'engage à remplacer les termes problématiques dans son code, sa documentation et ses propriétés Web. Nous commençons par ces quatre termes : master, slave, blacklist et whitelist. En raison de l'ampleur de cette entreprise, ces changements seront mis en œuvre progressivement au cours de plusieurs versions à venir. Pour plus de détails, voir le message de notre directeur technique Chris Wright.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.10 est disponible sur OpenShift Container Platform 4.11 et les versions ultérieures.

3.1.3.1. Nouvelles fonctionnalités

En plus des corrections et des améliorations de stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.10.

3.1.3.1.1. Pipelines
  • Avec cette mise à jour, vous pouvez spécifier des variables d'environnement dans un modèle de pod PipelineRun ou TaskRun pour remplacer ou ajouter les variables configurées dans une tâche ou une étape. Vous pouvez également spécifier des variables d'environnement dans un modèle de module par défaut afin d'utiliser ces variables globalement pour tous les modules PipelineRuns et TaskRuns. Cette mise à jour ajoute également une nouvelle configuration par défaut nommée forbidden-envs pour filtrer les variables d'environnement lors de la propagation à partir des modèles de pods.
  • Avec cette mise à jour, les tâches personnalisées dans les pipelines sont activées par défaut.

    Note

    Pour désactiver cette mise à jour, définissez l'indicateur enable-custom-tasks sur false dans la ressource personnalisée feature-flags config.

  • Cette mise à jour prend en charge la version de l'API v1beta1.CustomRun pour les tâches personnalisées.
  • Cette mise à jour ajoute la prise en charge du rapprochement PipelineRun pour la création d'une exécution personnalisée. Par exemple, la version personnalisée de TaskRuns créée à partir de PipelineRuns peut désormais utiliser la version de l'API v1beta1.CustomRun au lieu de v1alpha1.Run, si l'indicateur de fonctionnalité custom-task-version est défini sur v1beta1, au lieu de la valeur par défaut v1alpha1.

    Note

    Vous devez mettre à jour le contrôleur de tâches personnalisé pour qu'il écoute la version de l'API *v1beta1.CustomRun au lieu de *v1alpha1.Run afin de répondre aux demandes v1beta1.CustomRun.

  • Cette mise à jour ajoute un nouveau champ retries aux spécifications v1beta1.TaskRun et v1.TaskRun.
3.1.3.1.2. Déclencheurs
  • Avec cette mise à jour, les déclencheurs prennent en charge la création des objets Pipelines, Tasks, PipelineRuns, et TaskRuns de la version v1 de l'API ainsi que des objets CustomRun de la version v1beta1 de l'API.
  • Avec cette mise à jour, GitHub Interceptor bloque l'exécution d'un déclencheur de demande d'extraction à moins qu'il ne soit invoqué par un propriétaire ou accompagné d'un commentaire configurable de la part d'un propriétaire.

    Note

    Pour activer ou désactiver cette mise à jour, définissez la valeur du paramètre githubOwners sur true ou false dans le fichier de configuration de GitHub Interceptor.

  • Avec cette mise à jour, GitHub Interceptor a la possibilité d'ajouter une liste délimitée par des virgules de tous les fichiers qui ont été modifiés pour les événements push et pull request. La liste des fichiers modifiés est ajoutée à la propriété changed_files de la charge utile de l'événement dans le champ des extensions de premier niveau.
  • Cette mise à jour modifie le site MinVersion de TLS en tls.VersionTLS12 afin que les déclencheurs s'exécutent sur OpenShift Container Platform lorsque le mode Federal Information Processing Standards (FIPS) est activé.
3.1.3.1.3. CLI
  • Cette mise à jour ajoute la possibilité de transmettre un fichier CSI (Container Storage Interface) en tant qu'espace de travail au moment du démarrage d'une application Task, ClusterTask ou Pipeline.
  • Cette mise à jour ajoute la prise en charge de l'API v1 à toutes les commandes CLI associées aux ressources task, pipeline, pipeline run et task run. Tekton CLI fonctionne avec les API v1beta1 et v1 pour ces ressources.
  • Cette mise à jour ajoute la prise en charge d'un paramètre de type d'objet dans les commandes start et describe.
3.1.3.1.4. Opérateur
  • Cette mise à jour ajoute un paramètre default-forbidden-env dans les propriétés optionnelles du pipeline. Ce paramètre inclut des variables d'environnement interdites qui ne doivent pas être propagées si elles sont fournies par des modèles de pods.
  • Cette mise à jour ajoute la prise en charge des logos personnalisés dans l'interface utilisateur du Tekton Hub. Pour ajouter un logo personnalisé, définissez la valeur du paramètre customLogo à l'URI codée en base64 du logo dans le Tekton Hub CR.
  • Cette mise à jour augmente le numéro de version de la tâche git-clone à 0.9.
3.1.3.1.5. Chaînes Tekton
  • Cette mise à jour ajoute des annotations et des étiquettes aux attestations PipelineRun et TaskRun.
  • Cette mise à jour ajoute un nouveau format appelé slsa/v1, qui génère la même provenance que celle générée lors d'une demande au format in-toto.
  • Avec cette mise à jour, les fonctionnalités de Sigstore sont retirées des fonctionnalités expérimentales.
  • Avec cette mise à jour, la fonction predicate.materials inclut l'URI de l'image et les informations de résumé de toutes les étapes et barres latérales d'un objet TaskRun.
3.1.3.1.6. Hub Tekton
  • Cette mise à jour prend en charge l'installation, la mise à niveau ou la rétrogradation des ressources Tekton de la version de l'API v1 sur le cluster.
  • Cette mise à jour permet d'ajouter un logo personnalisé à la place du logo du Tekton Hub dans l'interface utilisateur.
  • Cette mise à jour étend les fonctionnalités de la commande tkn hub install en ajoutant un drapeau --type artifact, qui récupère les ressources de l'Artifact Hub et les installe sur votre cluster.
  • Cette mise à jour ajoute des informations sur le niveau de support, le catalogue et l'organisation en tant qu'étiquettes pour les ressources installées depuis Artifact Hub sur votre cluster.
3.1.3.1.7. Les pipelines en tant que code
  • Cette mise à jour améliore la prise en charge des webhooks entrants. Pour une application GitHub installée sur le cluster OpenShift Container Platform, vous n'avez pas besoin de fournir la spécification git_provider pour un webhook entrant. Au lieu de cela, Pipelines as Code détecte le secret et l'utilise pour le webhook entrant.
  • Avec cette mise à jour, vous pouvez utiliser le même jeton pour récupérer des tâches distantes du même hôte sur GitHub avec une branche autre que celle par défaut.
  • Avec cette mise à jour, Pipelines as Code supporte les modèles Tekton v1. Vous pouvez avoir des modèles v1 et v1beta1, que Pipelines as Code lit pour la génération de PR. Le PR est créé en tant que v1 sur le cluster.
  • Avant cette mise à jour, l'interface utilisateur de la console OpenShift utilisait un modèle d'exécution de pipeline codé en dur comme modèle de secours lorsqu'un modèle d'exécution n'était pas trouvé dans l'espace de noms OpenShift. Cette mise à jour de la carte de configuration pipelines-as-code fournit un nouveau modèle d'exécution de pipeline par défaut nommé pipelines-as-code-template-default pour la console à utiliser.
  • Avec cette mise à jour, Pipelines as Code supporte le statut minimal de Tekton Pipelines 0.44.0.
  • Avec cette mise à jour, Pipelines as Code supporte l'API Tekton v1, ce qui signifie que Pipelines as Code est maintenant compatible avec Tekton v0.44 et plus.
  • Avec cette mise à jour, vous pouvez configurer des tableaux de bord de console personnalisés en plus de la configuration d'une console pour OpenShift et des tableaux de bord Tekton pour k8s.
  • Avec cette mise à jour, Pipelines as Code détecte l'installation d'une application GitHub initiée à l'aide de la commande tkn pac create repo et ne nécessite pas de webhook GitHub si elle a été installée globalement.
  • Avant cette mise à jour, s'il y avait une erreur sur une exécution de PipelineRun et non sur les tâches attachées à PipelineRun, Pipelines as Code ne signalait pas correctement l'échec. Avec cette mise à jour, Pipelines as Code signale correctement l'erreur sur les contrôles GitHub lorsqu'un PipelineRun n'a pas pu être créé.
  • Avec cette mise à jour, Pipelines as Code inclut une variable target_namespace, qui s'étend à l'espace de noms en cours d'exécution où PipelineRun est exécuté.
  • Avec cette mise à jour, Pipelines as Code vous permet de contourner les questions d'entreprise de GitHub dans l'application CLI bootstrap GitHub.
  • Avec cette mise à jour, Pipelines as Code ne signale pas d'erreurs lorsque le référentiel CR n'a pas été trouvé.
  • Avec cette mise à jour, Pipelines as Code signale une erreur si plusieurs exécutions de pipeline portant le même nom ont été trouvées.

3.1.3.2. Changements en cours

  • Avec cette mise à jour, la version précédente de la commande tkn n'est pas compatible avec Red Hat OpenShift Pipelines 1.10.
  • Cette mise à jour supprime la prise en charge des ressources de pipeline Cluster et CloudEvent dans Tekton CLI. Vous ne pouvez pas créer de ressources de pipeline en utilisant la commande tkn pipelineresource create. De plus, les ressources de pipeline ne sont plus prises en charge dans la commande start d'une tâche, d'une tâche de cluster ou d'un pipeline.
  • Cette mise à jour supprime tekton en tant que format de provenance des chaînes Tekton.

3.1.3.3. Fonctionnalités obsolètes et supprimées

  • Dans Red Hat OpenShift Pipelines 1.10, les commandes ClusterTask sont désormais obsolètes et devraient être supprimées dans une prochaine version. La commande tkn task create est également obsolète avec cette mise à jour.
  • Dans Red Hat OpenShift Pipelines 1.10, les drapeaux -i et -o qui étaient utilisés avec la commande tkn task start sont désormais obsolètes car l'API v1 ne prend pas en charge les ressources de pipeline.
  • Dans Red Hat OpenShift Pipelines 1.10, l'indicateur -r qui était utilisé avec la commande tkn pipeline start est obsolète car l'API v1 ne prend pas en charge les ressources de pipeline.
  • La mise à jour Red Hat OpenShift Pipelines 1.10 définit le paramètre openshiftDefaultEmbeddedStatus à both avec full et minimal statut intégré. Le drapeau permettant de modifier le statut intégré par défaut est également obsolète et sera supprimé. De plus, le statut intégré par défaut du pipeline sera modifié en minimal dans une prochaine version.

3.1.3.4. Problèmes connus

  • Cette mise à jour inclut les changements suivants, incompatibles avec le passé :

    • Suppression de la grappe PipelineResources
    • Suppression du nuage PipelineResources
  • Si la fonctionnalité de mesure des pipelines ne fonctionne pas après une mise à niveau du cluster, exécutez la commande suivante en guise de solution de contournement :

    $ oc get tektoninstallersets.operator.tekton.dev | awk '/pipeline-main-static/ {print $1}' | xargs oc delete tektoninstallersets
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, l'utilisation de bases de données externes, telles que Crunchy PostgreSQL, n'est pas prise en charge sur IBM Power, IBM zSystems et IBM® LinuxONE. Utilisez plutôt la base de données par défaut du Tekton Hub.

3.1.3.5. Problèmes corrigés

  • Avant cette mise à jour, la commande opc pac générait une erreur d'exécution au lieu d'afficher un message d'aide. Cette mise à jour corrige la commande opc pac pour qu'elle affiche le message d'aide.
  • Avant cette mise à jour, l'exécution de la commande tkn pac create repo nécessitait les détails du webhook pour créer un dépôt. Avec cette mise à jour, la commande tkn-pac create repo ne configure pas de webhook lorsque votre application GitHub est installée.
  • Avant cette mise à jour, Pipelines as Code ne signalait pas d'erreur de création d'une exécution de pipeline lorsque Tekton Pipelines rencontrait des problèmes lors de la création de la ressource PipelineRun. Par exemple, une tâche inexistante dans un pipeline n'affichait aucun statut. Avec cette mise à jour, Pipelines as Code affiche le message d'erreur approprié provenant de Tekton Pipelines ainsi que la tâche manquante.
  • Cette mise à jour corrige la redirection de la page de l'interface utilisateur après une authentification réussie. Désormais, vous êtes redirigé vers la même page que celle où vous avez tenté de vous connecter au Tekton Hub.
  • Cette mise à jour corrige la commande list avec ces drapeaux, --all-namespaces et --output=yaml, pour une tâche en grappe, une tâche individuelle et un pipeline.
  • Cette mise à jour supprime la barre oblique à la fin de l'URL de repo.spec.url afin qu'elle corresponde à l'URL provenant de GitHub.
  • Avant cette mise à jour, la fonction marshalJSON n'affichait pas de liste d'objets. Avec cette mise à jour, la fonction marshalJSON gère la liste d'objets.
  • Avec cette mise à jour, Pipelines as Code vous permet de contourner les questions d'entreprise de GitHub dans l'application CLI bootstrap GitHub.
  • Cette mise à jour corrige la vérification des collaborateurs GitHub lorsque votre dépôt a plus de 100 utilisateurs.
  • Avec cette mise à jour, les commandes sign et verify pour une tâche ou un pipeline fonctionnent désormais sans fichier de configuration kubernetes.
  • Avec cette mise à jour, Tekton Operator nettoie les tâches cron d'élagage restantes si l'élagage a été ignoré sur un espace de noms.
  • Avant cette mise à jour, l'objet API ConfigMap n'était pas mis à jour avec une valeur configurée par l'utilisateur pour l'intervalle de rafraîchissement du catalogue. Cette mise à jour corrige l'API CATALOG_REFRESH_INTERVAL dans le Tekon Hub CR.
  • Cette mise à jour corrige la réconciliation de PipelineRunStatus lors de la modification de l'indicateur de fonctionnalité EmbeddedStatus. Cette mise à jour réinitialise les paramètres suivants :

    • Les paramètres status.runs et status.taskruns à nil avec minimal EmbeddedStatus
    • Le paramètre status.childReferences à nil avec full EmbeddedStatus
  • Cette mise à jour ajoute une configuration de conversion au CRD ResolutionRequest. Cette mise à jour configure correctement la conversion de la requête v1alpha1.ResolutionRequest vers la requête v1beta1.ResolutionRequest.
  • Cette mise à jour vérifie la présence d'espaces de travail en double associés à une tâche de pipeline.
  • Cette mise à jour corrige la valeur par défaut de l'activation des résolveurs dans le code.
  • Cette mise à jour corrige la conversion des noms TaskRef et PipelineRef à l'aide d'un résolveur.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.9 est disponible sur OpenShift Container Platform 4.11 et les versions ultérieures.

3.1.4.1. Nouvelles fonctionnalités

En plus des corrections et des améliorations de stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.9.

3.1.4.1.1. Pipelines
  • Avec cette mise à jour, vous pouvez spécifier les paramètres du pipeline et les résultats sous forme de tableaux et de dictionnaires d'objets.
  • Cette mise à jour prend en charge l'interface de stockage de conteneurs (CSI) et les volumes projetés pour votre espace de travail.
  • Avec cette mise à jour, vous pouvez spécifier les paramètres stdoutConfig et stderrConfig lors de la définition des étapes du pipeline. La définition de ces paramètres permet de capturer la sortie standard et l'erreur standard, associées aux étapes, dans des fichiers locaux.
  • Avec cette mise à jour, vous pouvez ajouter des variables dans le gestionnaire d'événements steps[].onError, par exemple, $(params.CONTINUE).
  • Avec cette mise à jour, vous pouvez utiliser le résultat de la tâche finally dans la définition PipelineResults. Par exemple, $(finally.<pipelinetask-name>.result.<result-name>), où <pipelinetask-name> désigne le nom de la tâche du pipeline et <result-name> le nom du résultat.
  • Cette mise à jour prend en charge les besoins en ressources au niveau des tâches pour l'exécution d'une tâche.
  • Avec cette mise à jour, vous n'avez pas besoin de recréer les paramètres qui sont partagés, sur la base de leurs noms, entre un pipeline et les tâches définies. Cette mise à jour fait partie d'une fonctionnalité de l'avant-première pour les développeurs.
  • Cette mise à jour ajoute la prise en charge de la résolution à distance, comme les résolveurs intégrés de git, cluster, bundle et hub.
3.1.4.1.2. Déclencheurs
  • Cette mise à jour ajoute le CRD Interceptor pour définir NamespacedInterceptor. Vous pouvez utiliser NamespacedInterceptor dans la section kind de la référence aux intercepteurs dans les déclencheurs ou dans la spécification EventListener.
  • Cette mise à jour permet à CloudEvents.
  • Avec cette mise à jour, vous pouvez configurer le numéro de port du webhook lors de la définition d'un déclencheur.
  • Cette mise à jour permet d'utiliser le déclencheur eventID comme entrée dans TriggerBinding.
  • Cette mise à jour prend en charge la validation et la rotation des certificats pour le serveur ClusterInterceptor.

    • Les déclencheurs effectuent la validation des certificats pour les intercepteurs principaux et transmettent un nouveau certificat à ClusterInterceptor lorsque son certificat expire.
3.1.4.1.3. CLI
  • Cette mise à jour permet d'afficher les annotations dans la commande describe.
  • Cette mise à jour permet d'afficher le pipeline, les tâches et le délai d'attente dans la commande pr describe.
  • Cette mise à jour ajoute des drapeaux permettant d'indiquer le pipeline, les tâches et le délai d'attente dans la commande pipeline start.
  • Cette mise à jour permet d'indiquer la présence d'un espace de travail, optionnel ou obligatoire, dans la commande describe d'une tâche et d'un pipeline.
  • Cette mise à jour ajoute le drapeau timestamps pour afficher les journaux avec un horodatage.
  • Cette mise à jour ajoute un nouvel indicateur --ignore-running-pipelinerun, qui ignore la suppression de TaskRun associée à PipelineRun.
  • Cette mise à jour ajoute la prise en charge des commandes expérimentales. Cette mise à jour ajoute également des sous-commandes expérimentales, sign et verify à l'outil CLI tkn.
  • Cette mise à jour permet d'utiliser la fonction d'achèvement de l'interpréteur de commandes Z (Zsh) sans générer de fichiers.
  • Cette mise à jour introduit un nouvel outil CLI appelé opc. Il est prévu qu'une prochaine version remplace l'outil CLI tkn par opc.

    Important
    • Le nouvel outil CLI opc est une fonctionnalité de l'aperçu technologique.
    • opc remplacera tkn avec des fonctionnalités supplémentaires spécifiques à Red Hat OpenShift Pipelines, qui ne s'intègrent pas nécessairement dans tkn.
3.1.4.1.4. Opérateur
  • Avec cette mise à jour, Pipelines as Code est installé par défaut. Vous pouvez désactiver Pipelines as Code en utilisant le drapeau -p:

    $ oc patch tektonconfig config --type="merge" -p '{"spec": {"platforms": {"openshift":{"pipelinesAsCode": {"enable": false}}}}}'
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, vous pouvez également modifier les configurations de Pipelines as Code dans le CRD TektonConfig.
  • Avec cette mise à jour, si vous désactivez la perspective développeur, l'opérateur n'installe pas les ressources personnalisées liées à la console développeur.
  • Cette mise à jour inclut le support de ClusterTriggerBinding pour Bitbucket Server et Bitbucket Cloud et vous aide à réutiliser un TriggerBinding sur l'ensemble de votre cluster.
3.1.4.1.5. Résolveurs
Important

Resolvers est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

  • Avec cette mise à jour, vous pouvez configurer les résolveurs de pipeline dans le CRD TektonConfig. Vous pouvez activer ou désactiver ces résolveurs de pipeline : enable-bundles-resolver, enable-cluster-resolver, enable-git-resolver, et enable-hub-resolver.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        enable-bundles-resolver: true
        enable-cluster-resolver: true
        enable-git-resolver: true
        enable-hub-resolver: true
    ...
    Copy to Clipboard Toggle word wrap

    Vous pouvez également fournir des configurations spécifiques au résolveur dans TektonConfig. Par exemple, vous pouvez définir les champs suivants dans le format map[string]string pour définir des configurations pour des résolveurs individuels :

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      pipeline:
        bundles-resolver-config:
          default-service-account: pipelines
        cluster-resolver-config:
          default-namespace: test
        git-resolver-config:
          server-url: localhost.com
        hub-resolver-config:
          default-tekton-hub-catalog: tekton
    ...
    Copy to Clipboard Toggle word wrap
3.1.4.1.6. Chaînes Tekton
Important

Tekton Chains est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

  • Avant cette mise à jour, seules les images de l'Open Container Initiative (OCI) étaient prises en charge en tant que sorties de TaskRun dans l'agent de provenance in-toto. Cette mise à jour ajoute les métadonnées de provenance in-toto en tant que sorties avec ces suffixes, ARTIFACT_URI et ARTIFACT_DIGEST.
  • Avant cette mise à jour, seules les attestations TaskRun étaient prises en charge. Cette mise à jour ajoute la prise en charge des attestations PipelineRun.
  • Cette mise à jour ajoute la prise en charge des chaînes Tekton pour obtenir le paramètre imgPullSecret à partir du modèle de pod. Cette mise à jour vous aide à configurer l'authentification du référentiel en fonction de chaque exécution de pipeline ou de tâche sans modifier le compte de service.
3.1.4.1.7. Hub Tekton
Important

Tekton Hub est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

  • Avec cette mise à jour, en tant qu'administrateur, vous pouvez utiliser une base de données externe, telle que Crunchy PostgreSQL avec Tekton Hub, au lieu d'utiliser la base de données par défaut de Tekton Hub. Cette mise à jour vous permet d'effectuer les actions suivantes :

    • Spécifier les coordonnées d'une base de données externe à utiliser avec Tekton Hub
    • Désactiver la base de données Tekton Hub par défaut déployée par l'Opérateur
  • Cette mise à jour supprime la dépendance de config.yaml à l'égard des dépôts Git externes et déplace les données de configuration complètes dans l'API ConfigMap. Cette mise à jour permet à l'administrateur d'effectuer les actions suivantes :

    • Ajoutez les données de configuration, telles que les catégories, les catalogues, les scopes et les defaultScopes dans la ressource personnalisée Tekton Hub.
    • Modifier les données de configuration du Tekton Hub sur le cluster. Toutes les modifications sont conservées lors des mises à jour de l'opérateur.
    • Mettre à jour la liste des catalogues pour Tekton Hub
    • Modifier les catégories pour Tekton Hub

      Note

      Si vous n'ajoutez pas de données de configuration, vous pouvez utiliser les données par défaut de l'API ConfigMap pour les configurations du Tekton Hub.

3.1.4.1.8. Les pipelines en tant que code
  • Cette mise à jour ajoute la prise en charge de la limite de concurrence dans le CRD Repository pour définir le nombre maximum de PipelineRuns en cours d'exécution pour un référentiel à la fois. Les PipelineRuns provenant d'une requête pull ou d'un événement push sont mis en file d'attente dans l'ordre alphabétique.
  • Cette mise à jour ajoute une nouvelle commande tkn pac logs pour afficher les journaux du dernier pipeline exécuté pour un dépôt.
  • Cette mise à jour prend en charge la correspondance d'événement avancée sur le chemin de fichier pour les requêtes push et pull vers GitHub et GitLab. Par exemple, vous pouvez utiliser le langage d'expression commun (CEL) pour lancer un pipeline uniquement si le chemin d'accès d'un fichier markdown dans le répertoire docs a changé.

      ...
      annotations:
         pipelinesascode.tekton.dev/on-cel-expression: |
          event == "pull_request" && "docs/*.md".pathChanged()
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, vous pouvez référencer un pipeline distant dans l'objet pipelineRef: à l'aide d'annotations.
  • Avec cette mise à jour, vous pouvez configurer automatiquement de nouveaux dépôts GitHub avec Pipelines as Code, qui met en place un espace de noms et crée un CRD Repository pour votre dépôt GitHub.
  • Avec cette mise à jour, Pipelines as Code génère des métriques pour PipelineRuns avec des informations sur les fournisseurs.
  • Cette mise à jour apporte les améliorations suivantes au plugin tkn-pac:

    • Détecte correctement les pipelines en cours d'exécution
    • Correction de l'affichage de la durée lorsqu'il n'y a pas d'heure d'achèvement de l'échec
    • Affiche un extrait d'erreur et met en évidence le modèle d'expression régulière de l'erreur dans la commande tkn-pac describe
    • Ajoute le commutateur use-real-time aux commandes tkn-pac ls et tkn-pac describe
    • Importe la documentation des journaux de tkn-pac
    • Affiche pipelineruntimeout comme un échec dans les commandes tkn-pac ls et tkn-pac describe.
    • Afficher un échec spécifique de l'exécution d'un pipeline avec l'option --target-pipelinerun.
  • Avec cette mise à jour, vous pouvez voir les erreurs de votre pipeline sous la forme d'un commentaire du système de contrôle de version (VCS) ou d'un petit extrait dans les contrôles GitHub.
  • Avec cette mise à jour, Pipelines as Code peut optionnellement détecter les erreurs dans les tâches si elles sont d'un format simple et ajouter ces tâches en tant qu'annotations dans GitHub. Cette mise à jour fait partie d'un aperçu pour les développeurs.
  • Cette mise à jour ajoute les nouvelles commandes suivantes :

    • tkn-pac webhook add: Ajoute un webhook aux paramètres du référentiel du projet et met à jour la clé webhook.secret dans l'objet k8s Secret existant sans mettre à jour le référentiel.
    • tkn-pac webhook update-token: Met à jour le jeton de fournisseur pour un objet k8s Secret existant sans mettre à jour le référentiel.
  • Cette mise à jour améliore les fonctionnalités de la commande tkn-pac create repo, qui crée et configure des webhooks pour GitHub, GitLab et BitbucketCloud, ainsi que la création de dépôts.
  • Avec cette mise à jour, la commande tkn-pac describe affiche les cinquante derniers événements dans un ordre trié.
  • Cette mise à jour ajoute l'option --last à la commande tkn-pac logs.
  • Avec cette mise à jour, la commande tkn-pac resolve demande un jeton lors de la détection d'un git_auth_secret dans le modèle de fichier.
  • Avec cette mise à jour, Pipelines as Code cache les secrets dans les extraits de journaux pour éviter d'exposer des secrets dans l'interface GitHub.
  • Avec cette mise à jour, les secrets générés automatiquement pour git_auth_secret sont une référence propriétaire avec PipelineRun. Les secrets sont nettoyés en même temps que PipelineRun, et non après l'exécution du pipeline.
  • Cette mise à jour ajoute la possibilité d'annuler l'exécution d'un pipeline à l'aide du commentaire /cancel.
  • Avant cette mise à jour, le champ d'application du jeton GitHub apps n'était pas défini et les jetons étaient utilisés pour chaque installation de référentiel. Avec cette mise à jour, vous pouvez définir la portée du jeton GitHub apps sur le référentiel cible en utilisant les paramètres suivants :

    • secret-github-app-token-scoped: Le jeton d'application est limité au référentiel cible, et non à tous les référentiels auxquels l'installation de l'application a accès.
    • secret-github-app-scope-extra-repos: Personnalise le champ d'application du jeton d'application avec un propriétaire ou un dépôt supplémentaire.
  • Avec cette mise à jour, vous pouvez utiliser Pipelines as Code avec vos propres dépôts Git hébergés sur GitLab.
  • Avec cette mise à jour, vous pouvez accéder aux détails de l'exécution du pipeline sous la forme d'événements kubernetes dans votre espace de noms. Ces détails vous aident à résoudre les erreurs de pipeline sans avoir besoin d'accéder aux espaces de noms des administrateurs.
  • Cette mise à jour supporte l'authentification des URLs dans les Pipelines en tant que résolveur de code avec le fournisseur Git.
  • Avec cette mise à jour, vous pouvez définir le nom du catalogue du concentrateur en utilisant un paramètre dans la carte de configuration pipelines-as-code.
  • Cette mise à jour permet de définir les limites maximales et par défaut du paramètre max-keep-run.
  • Cette mise à jour ajoute des documents sur la façon d'injecter des certificats SSL (Secure Sockets Layer) personnalisés dans Pipelines as Code pour vous permettre de vous connecter à l'instance du fournisseur avec des certificats personnalisés.
  • Avec cette mise à jour, la définition de la ressource PipelineRun comporte l'URL du journal en tant qu'annotation. Par exemple, la commande tkn-pac describe affiche le lien du journal lors de la description d'une ressource PipelineRun.
  • Avec cette mise à jour, les journaux de tkn-pac affichent le nom du dépôt, au lieu du nom de PipelineRun.

3.1.4.2. Changements en cours

  • Avec cette mise à jour, le type de définition de ressource personnalisée (CRD) Conditions a été supprimé. Il est possible d'utiliser le type WhenExpressions à la place.
  • Avec cette mise à jour, la prise en charge des ressources de pipeline de l'API tekton.dev/v1alpha1, telles que Pipeline, PipelineRun, Task, Clustertask et TaskRun, a été supprimée.
  • Avec cette mise à jour, la commande tkn-pac setup a été supprimée. A la place, utilisez la commande tkn-pac webhook add pour ajouter un webhook à un référentiel Git existant. Et utilisez la commande tkn-pac webhook update-token pour mettre à jour le jeton d'accès du fournisseur personnel pour un objet Secret existant dans le référentiel Git.
  • Avec cette mise à jour, un espace de noms qui exécute un pipeline avec les paramètres par défaut n'applique pas le label pod-security.kubernetes.io/enforce:privileged à une charge de travail.

3.1.4.3. Fonctionnalités obsolètes et supprimées

  • Dans la version 1.9.0 de Red Hat OpenShift Pipelines, ClusterTasks est déprécié et il est prévu de le supprimer dans une prochaine version. Comme alternative, vous pouvez utiliser Cluster Resolver.
  • Dans la version 1.9.0 de Red Hat OpenShift Pipelines, l'utilisation des champs triggers et namespaceSelector dans une seule spécification EventListener est dépréciée et il est prévu de la supprimer dans une prochaine version. Vous pouvez utiliser ces champs dans différentes spécifications EventListener avec succès.
  • Dans la version 1.9.0 de Red Hat OpenShift Pipelines, la commande tkn pipelinerun describe n'affiche pas les délais d'attente pour la ressource PipelineRun.
  • Dans la version 1.9.0 de Red Hat OpenShift Pipelines, la ressource personnalisée (CR) PipelineResource` est obsolète. La CR PipelineResource était une fonctionnalité Tech Preview et faisait partie de l'API tekton.dev/v1alpha1.
  • Dans la version 1.9.0 de Red Hat OpenShift Pipelines, les paramètres d'image personnalisée des tâches de cluster sont obsolètes. Comme alternative, vous pouvez copier une tâche de cluster et utiliser votre image personnalisée dans celle-ci.

3.1.4.4. Problèmes connus

  • Les cartes de configuration chains-secret et chains-config sont supprimées après la désinstallation de Red Hat OpenShift Pipelines Operator. Comme elles contiennent des données d'utilisateur, elles doivent être conservées et non supprimées.
  • Lorsque vous exécutez le jeu de commandes tkn pac sous Windows, vous pouvez recevoir le message d'erreur suivant : Command finished with error: not supported by Windows.

    Solution de contournement : Définissez la variable d'environnement NO_COLOR sur true.

  • L'exécution de la commande tkn pac resolve -f <filename> | oc create -f peut ne pas donner les résultats escomptés si la commande tkn pac resolve utilise une valeur de paramètre modélisée pour fonctionner.

    Solution : Pour atténuer ce problème, enregistrez la sortie de tkn pac resolve dans un fichier temporaire en exécutant la commande tkn pac resolve -f <filename> -o tempfile.yaml, puis la commande oc create -f tempfile.yaml. Par exemple, tkn pac resolve -f <filename> -o /tmp/pull-request-resolved.yaml && oc create -f /tmp/pull-request-resolved.yaml.

3.1.4.5. Problèmes corrigés

  • Avant cette mise à jour, après avoir remplacé un tableau vide, le tableau original renvoyait une chaîne vide, ce qui rendait les paramètres qu'il contenait invalides. Avec cette mise à jour, ce problème est résolu et le tableau original retourne une chaîne vide.
  • Avant cette mise à jour, si des secrets en double étaient présents dans un compte de service pour une exécution de pipeline, cela entraînait un échec dans la création du module de tâches. Avec cette mise à jour, ce problème est résolu et le module de tâches est créé avec succès même si des secrets en double sont présents dans un compte de service.
  • Avant cette mise à jour, en consultant le champ spec.StatusMessage du TaskRun, les utilisateurs ne pouvaient pas savoir si le TaskRun avait été annulé par l'utilisateur ou par un PipelineRun qui en faisait partie. Avec cette mise à jour, ce problème est résolu et les utilisateurs peuvent distinguer le statut de TaskRun en regardant le champ spec.StatusMessage de la TaskRun.
  • Avant cette mise à jour, la validation du webhook était supprimée lors de la suppression d'anciennes versions d'objets invalides. Avec cette mise à jour, ce problème est résolu.
  • Avant cette mise à jour, si vous définissiez le paramètre timeouts.pipeline sur 0, vous ne pouviez pas définir les paramètres timeouts.tasks ou timeouts.finally. Cette mise à jour résout le problème. Désormais, lorsque vous définissez la valeur du paramètre timeouts.pipeline, vous pouvez définir la valeur du paramètre "timeouts.tasks" ou du paramètre timeouts.finally. Par exemple :

    yaml
    kind: PipelineRun
    spec:
      timeouts:
        pipeline: "0"  # No timeout
        tasks: "0h3m0s"
    Copy to Clipboard Toggle word wrap
  • Avant cette mise à jour, une condition de course pouvait se produire si un autre outil mettait à jour des étiquettes ou des annotations sur un PipelineRun ou un TaskRun. Avec cette mise à jour, ce problème est résolu et vous pouvez fusionner les étiquettes ou les annotations.
  • Avant cette mise à jour, les clés de journal n'avaient pas les mêmes clés que dans les contrôleurs de pipeline. Avec cette mise à jour, ce problème a été résolu et les clés des journaux ont été mises à jour pour correspondre au flux de journaux des contrôleurs de pipeline. Les clés des journaux sont passées de "ts" à "timestamp", de "level" à "severity" et de "message" à "msg".
  • Avant cette mise à jour, si un PipelineRun était supprimé avec un statut inconnu, un message d'erreur n'était pas généré. Avec cette mise à jour, ce problème est résolu et un message d'erreur est généré.
  • Avant cette mise à jour, il était nécessaire d'utiliser le fichier kubeconfig pour accéder aux commandes de l'offre groupée telles que list et push. Avec cette mise à jour, ce problème a été résolu et le fichier kubeconfig n'est plus nécessaire pour accéder aux commandes de l'offre groupée.
  • Avant cette mise à jour, si le PipelineRun parent était en cours d'exécution pendant la suppression des TaskRuns, les TaskRuns étaient supprimées. Avec cette mise à jour, ce problème est résolu et les TaskRuns ne sont pas supprimées si le PipelineRun parent est en cours d'exécution.
  • Avant cette mise à jour, si l'utilisateur tentait de construire une grappe avec plus d'objets que le contrôleur de pipeline ne le permettait, l'interface de programmation Tekton n'affichait pas de message d'erreur. Avec cette mise à jour, ce problème est résolu et la CLI Tekton affiche un message d'erreur si l'utilisateur tente de construire une grappe avec plus d'objets que la limite autorisée dans le contrôleur de pipeline.
  • Avant cette mise à jour, si des espaces de noms étaient supprimés du cluster, l'opérateur ne supprimait pas les espaces de noms des sujets ClusterInterceptor ClusterRoleBinding. Avec cette mise à jour, ce problème a été résolu et l'opérateur supprime les espaces de noms des sujets ClusterInterceptor ClusterRoleBinding.
  • Avant cette mise à jour, l'installation par défaut de Red Hat OpenShift Pipelines Operator avait pour résultat que la ressource de liaison de rôle pipelines-scc-rolebinding security context constraint (SCC) restait dans le cluster. Avec cette mise à jour, l'installation par défaut de Red Hat OpenShift Pipelines Operator entraîne la suppression de la ressource de liaison de rôle pipelines-scc-rolebinding security context constraint (SCC) du cluster.
  • Avant cette mise à jour, Pipelines as Code ne recevait pas les valeurs mises à jour de l'objet Pipelines as Code ConfigMap. Avec cette mise à jour, ce problème est résolu et l'objet Pipelines as Code ConfigMap recherche toute nouvelle modification.
  • Avant cette mise à jour, le contrôleur de Pipelines as Code n'attendait pas que l'étiquette tekton.dev/pipeline soit mise à jour et ajoutait l'étiquette checkrun id, ce qui provoquait des conditions de concurrence. Avec cette mise à jour, le contrôleur de Pipelines as Code attend que l'étiquette tekton.dev/pipeline soit mise à jour et ajoute ensuite l'étiquette checkrun id, ce qui permet d'éviter les problèmes de concurrence.
  • Avant cette mise à jour, la commande tkn-pac create repo ne remplaçait pas une commande PipelineRun si elle existait déjà dans le dépôt git. Avec cette mise à jour, la commande tkn-pac create est corrigée pour remplacer une commande PipelineRun si elle existe dans le dépôt git, ce qui résout le problème avec succès.
  • Avant cette mise à jour, la commande tkn pac describe n'affichait pas les raisons de chaque message. Avec cette mise à jour, ce problème est corrigé et la commande tkn pac describe affiche les motifs pour chaque message.
  • Avant cette mise à jour, une demande d'extraction échouait si l'utilisateur dans l'annotation fournissait des valeurs en utilisant une forme de regex, par exemple, refs/head/rel-*. La demande d'extraction échouait parce qu'il manquait refs/heads dans sa branche de base. Avec cette mise à jour, le préfixe est ajouté et on vérifie qu'il correspond. Cela résout le problème et la demande d'extraction est acceptée.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.9.1 est disponible sur OpenShift Container Platform 4.11 et les versions ultérieures.

3.1.4.7. Problèmes corrigés

  • Avant cette mise à jour, la commande tkn pac repo list ne fonctionnait pas sous Microsoft Windows. Cette mise à jour corrige le problème et vous pouvez désormais exécuter la commande tkn pac repo list sous Microsoft Windows.
  • Avant cette mise à jour, l'observateur de Pipelines as Code ne recevait pas tous les événements de changement de configuration. Avec cette mise à jour, l'observateur de Pipelines as Code a été mis à jour, et maintenant l'observateur de Pipelines as Code ne manque pas les événements de changement de configuration.
  • Avant cette mise à jour, les pods créés par Pipelines as Code, tels que TaskRuns ou PipelineRuns ne pouvaient pas accéder aux certificats personnalisés exposés par l'utilisateur dans le cluster. Cette mise à jour corrige le problème et vous pouvez maintenant accéder aux certificats personnalisés à partir des pods TaskRuns ou PipelineRuns dans le cluster.
  • Avant cette mise à jour, sur un cluster activé avec FIPS, l'intercepteur tekton-triggers-core-interceptors core utilisé dans la ressource Trigger ne fonctionnait pas après que l'opérateur Pipelines ait été mis à niveau vers la version 1.9. Cette mise à jour résout le problème. Désormais, OpenShift utilise MInTLS 1.2 pour tous ses composants. Par conséquent, l'intercepteur central tekton-triggers-core-interceptors est mis à jour vers la version 1.2 de TLS et sa fonctionnalité fonctionne correctement.
  • Avant cette mise à jour, lors de l'utilisation d'un pipeline avec un registre d'images interne à OpenShift, l'URL de l'image devait être codée en dur dans la définition du pipeline. Par exemple, l'URL de l'image devait être codée en dur dans la définition de l'exécution du pipeline :

    ...
      - name: IMAGE_NAME
        value: 'image-registry.openshift-image-registry.svc:5000/<test_namespace>/<test_pipelinerun>'
    ...
    Copy to Clipboard Toggle word wrap

    Lors de l'utilisation d'une exécution de pipeline dans le contexte de Pipelines as Code, ces valeurs codées en dur empêchaient les définitions d'exécution de pipeline d'être utilisées dans différents clusters et espaces de noms.

    Avec cette mise à jour, vous pouvez utiliser les variables de modèle dynamiques au lieu de coder en dur les valeurs des espaces de noms et des noms d'exécutions de pipeline pour généraliser les définitions d'exécutions de pipeline. Par exemple :

    ...
      - name: IMAGE_NAME
        value: 'image-registry.openshift-image-registry.svc:5000/{{ target_namespace }}/$(context.pipelineRun.name)'
    ...
    Copy to Clipboard Toggle word wrap
  • Avant cette mise à jour, Pipelines as Code utilisait le même jeton GitHub pour récupérer une tâche distante disponible dans le même hôte uniquement sur la branche GitHub par défaut. Cette mise à jour résout le problème. Désormais, Pipelines as Code utilise le même jeton GitHub pour récupérer une tâche distante à partir de n'importe quelle branche GitHub.

3.1.4.8. Problèmes connus

  • La valeur de CATALOG_REFRESH_INTERVAL, un champ de l'objet Hub API ConfigMap utilisé dans le Tekton Hub CR, n'est pas mise à jour avec une valeur personnalisée fournie par l'utilisateur.

    Solution de contournement : Aucune. Vous pouvez suivre le problème SRVKP-2854.

3.1.4.9. Changements en cours

  • Avec cette mise à jour, un problème de mauvaise configuration de l'OLM a été introduit, ce qui empêche la mise à niveau de la plateforme OpenShift Container. Ce problème sera corrigé dans une prochaine version.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.9.2 est disponible sur OpenShift Container Platform 4.11 et les versions ultérieures.

3.1.4.11. Problèmes corrigés

  • Avant cette mise à jour, un problème de mauvaise configuration OLM avait été introduit dans la version précédente, ce qui empêchait la mise à niveau d'OpenShift Container Platform. Avec cette mise à jour, ce problème de mauvaise configuration a été corrigé.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.8 est disponible sur OpenShift Container Platform 4.10, 4.11 et 4.12.

3.1.5.1. Nouvelles fonctionnalités

En plus des corrections et des améliorations de stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.8.

3.1.5.1.1. Pipelines
  • Avec cette mise à jour, vous pouvez exécuter Red Hat OpenShift Pipelines GA 1.8 et plus sur un cluster OpenShift Container Platform qui fonctionne sur du matériel ARM. Cela inclut la prise en charge des ressources ClusterTask et de l'outil CLI tkn.
Important

L'exécution de Red Hat OpenShift Pipelines sur du matériel ARM est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

  • Cette mise à jour met en œuvre les dérogations Step et Sidecar pour les ressources TaskRun.
  • Cette mise à jour ajoute les statuts minimaux TaskRun et Run dans les statuts PipelineRun.

    Pour activer cette fonctionnalité, dans la définition de la ressource personnalisée TektonConfig, dans la section pipeline, vous devez définir le champ enable-api-fields sur alpha.

  • Avec cette mise à jour, la fonctionnalité d'arrêt gracieux des exécutions de pipeline passe d'une fonctionnalité alpha à une fonctionnalité stable. Par conséquent, le statut PipelineRunCancelled, précédemment déprécié, reste déprécié et devrait être supprimé dans une prochaine version.

    Cette fonctionnalité étant disponible par défaut, il n'est plus nécessaire de donner au champ pipeline.enable-api-fields la valeur alpha dans la définition de la ressource personnalisée TektonConfig.

  • Avec cette mise à jour, vous pouvez spécifier l'espace de travail pour une tâche de pipeline en utilisant le nom de l'espace de travail. Cette modification facilite la spécification d'un espace de travail partagé pour une paire de ressources Pipeline et PipelineTask. Vous pouvez également continuer à mapper les espaces de travail de manière explicite.

    Pour activer cette fonctionnalité, dans la définition de la ressource personnalisée TektonConfig, dans la section pipeline, vous devez définir le champ enable-api-fields sur alpha.

  • Avec cette mise à jour, les paramètres des spécifications intégrées sont propagés sans mutations.
  • Avec cette mise à jour, vous pouvez spécifier les métadonnées requises d'une ressource Task référencée par une ressource PipelineRun en utilisant des annotations et des étiquettes. Ainsi, les métadonnées de Task qui dépendent du contexte d'exécution sont disponibles pendant l'exécution du pipeline.
  • Cette mise à jour ajoute la prise en charge des types d'objets ou de dictionnaires dans les valeurs params et results. Cette modification affecte la compatibilité ascendante et rompt parfois la compatibilité descendante, comme l'utilisation d'un client antérieur avec une version plus récente de Red Hat OpenShift Pipelines. Cette mise à jour modifie la structure de ArrayOrStruct, ce qui affecte les projets qui utilisent l'API du langage Go en tant que bibliothèque.
  • Cette mise à jour ajoute une valeur SkippingReason au champ SkippedTasks des champs de statut PipelineRun afin que les utilisateurs sachent pourquoi une tâche de pipeline donnée a été ignorée.
  • Cette mise à jour prend en charge une fonctionnalité alpha qui permet d'utiliser un type array pour émettre des résultats à partir d'un objet Task. Le type de résultat passe de string à ArrayOrString. Par exemple, une tâche peut spécifier un type pour produire un résultat sous forme de tableau :

    kind: Task
    apiVersion: tekton.dev/v1beta1
    metadata:
      name: write-array
      annotations:
        description: |
          A simple task that writes array
    spec:
      results:
        - name: array-results
          type: array
          description: The array results
    ...
    Copy to Clipboard Toggle word wrap

    En outre, vous pouvez exécuter un script de tâche pour remplir les résultats avec un tableau :

    $ echo -n "[\"hello\",\"world\"]" | tee $(results.array-results.path)
    Copy to Clipboard Toggle word wrap

    Pour activer cette fonctionnalité, dans la définition de la ressource personnalisée TektonConfig, dans la section pipeline, vous devez définir le champ enable-api-fields sur alpha.

    Cette fonctionnalité est en cours de réalisation et fait partie du TEP-0076.

3.1.5.1.2. Déclencheurs
  • Cette mise à jour fait passer le champ TriggerGroups de la spécification EventListener d'une fonctionnalité alpha à une fonctionnalité stable. Ce champ permet de spécifier un ensemble d'intercepteurs avant de sélectionner et d'exécuter un groupe de déclencheurs.

    Cette fonctionnalité étant disponible par défaut, il n'est plus nécessaire de donner au champ pipeline.enable-api-fields la valeur alpha dans la définition de la ressource personnalisée TektonConfig.

  • Avec cette mise à jour, la ressource Trigger prend en charge les connexions sécurisées de bout en bout en exécutant le serveur ClusterInterceptor à l'aide de HTTPS.
3.1.5.1.3. CLI
  • Avec cette mise à jour, vous pouvez utiliser la commande tkn taskrun export pour exporter une exécution de tâche en direct d'un cluster vers un fichier YAML, que vous pouvez utiliser pour importer l'exécution de tâche vers un autre cluster.
  • Avec cette mise à jour, vous pouvez ajouter l'option -o name à la commande tkn pipeline start afin d'afficher le nom de l'exécution du pipeline dès son démarrage.
  • Cette mise à jour ajoute une liste des plugins disponibles à la sortie de la commande tkn --help.
  • Avec cette mise à jour, lors de la suppression d'un pipeline ou d'une tâche, vous pouvez utiliser à la fois les drapeaux --keep et --keep-since.
  • Avec cette mise à jour, vous pouvez utiliser Cancelled comme valeur du champ spec.status plutôt que la valeur obsolète PipelineRunCancelled.
3.1.5.1.4. Opérateur
  • Avec cette mise à jour, en tant qu'administrateur, vous pouvez configurer votre instance locale de Tekton Hub pour qu'elle utilise une base de données personnalisée plutôt que la base de données par défaut.
  • Avec cette mise à jour, en tant qu'administrateur de cluster, si vous activez votre instance locale de Tekton Hub, celle-ci rafraîchit périodiquement la base de données afin que les changements dans le catalogue apparaissent dans la console web de Tekton Hub. Vous pouvez ajuster la période entre les rafraîchissements.

    Auparavant, pour ajouter les tâches et les pipelines du catalogue à la base de données, vous deviez effectuer cette tâche manuellement ou configurer un travail cron pour le faire à votre place.

  • Avec cette mise à jour, vous pouvez installer et faire fonctionner une instance de Tekton Hub avec une configuration minimale. De cette façon, vous pouvez commencer à travailler avec vos équipes pour décider des personnalisations supplémentaires qu'elles pourraient souhaiter.
  • Cette mise à jour ajoute GIT_SSL_CAINFO à la tâche git-clone afin que vous puissiez cloner des dépôts sécurisés.
3.1.5.1.5. Chaînes Tekton
Important

Tekton Chains est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

  • Avec cette mise à jour, vous pouvez vous connecter à un coffre-fort en utilisant OIDC plutôt qu'un jeton statique. Cette modification signifie que Spire peut générer l'identifiant OIDC afin que seules les charges de travail de confiance soient autorisées à se connecter à l'espace de stockage. En outre, vous pouvez transmettre l'adresse de l'espace de stockage en tant que valeur de configuration plutôt que de l'injecter en tant que variable d'environnement.
  • La carte de configuration chains-config pour Tekton Chains dans l'espace de noms openshift-pipelines est automatiquement réinitialisée par défaut après la mise à jour de Red Hat OpenShift Pipelines Operator car la mise à jour directe de la carte de configuration n'est pas prise en charge lors de l'installation à l'aide de Red Hat OpenShift Pipelines Operator. Cependant, avec cette mise à jour, vous pouvez configurer les chaînes Tekton en utilisant la ressource personnalisée TektonChain. Cette fonctionnalité permet à votre configuration de persister après la mise à jour, contrairement à la carte de configuration chains-config, qui est écrasée lors des mises à jour.
3.1.5.1.6. Hub Tekton
Important

Tekton Hub est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

  • Avec cette mise à jour, si vous installez une nouvelle instance de Tekton Hub en utilisant l'Opérateur, le login Tekton Hub est désactivé par défaut. Pour activer les fonctions de connexion et de notation, vous devez créer le secret API Hub lors de l'installation de Tekton Hub.

    Note

    Étant donné que la connexion Tekton Hub était activée par défaut dans Red Hat OpenShift Pipelines 1.7, si vous mettez à niveau l'opérateur, la connexion est activée par défaut dans Red Hat OpenShift Pipelines 1.8. Pour désactiver cette connexion, voir Désactivation de la connexion Tekton Hub après la mise à niveau d'OpenShift Pipelines 1.7.x -→ 1.8.x

  • Avec cette mise à jour, en tant qu'administrateur, vous pouvez configurer votre instance locale de Tekton Hub pour utiliser une base de données PostgreSQL 13 personnalisée plutôt que la base de données par défaut. Pour ce faire, créez une ressource Secret nommée tekton-hub-db. Par exemple :

    apiVersion: v1
    kind: Secret
    metadata:
      name: tekton-hub-db
      labels:
        app: tekton-hub-db
    type: Opaque
    stringData:
      POSTGRES_HOST: <hostname>
      POSTGRES_DB: <database_name>
      POSTGRES_USER: <user_name>
      POSTGRES_PASSWORD: <user_password>
      POSTGRES_PORT: <listening_port_number>
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, vous n'avez plus besoin de vous connecter à la console web Tekton Hub pour ajouter des ressources du catalogue à la base de données. Désormais, ces ressources sont automatiquement ajoutées lorsque l'API Tekton Hub est lancée pour la première fois.
  • Cette mise à jour actualise automatiquement le catalogue toutes les 30 minutes en appelant le job API d'actualisation du catalogue. Cet intervalle est configurable par l'utilisateur.
3.1.5.1.7. Les pipelines en tant que code
Important

Pipelines as Code (PAC) est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas de les utiliser en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.

Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.

  • Avec cette mise à jour, en tant que développeur, vous recevez une notification de l'outil CLI tkn-pac si vous essayez d'ajouter un référentiel dupliqué à une exécution de Pipelines as Code. Lorsque vous entrez tkn pac create repository, chaque référentiel doit avoir une URL unique. Cette notification permet également d'éviter les exploits de détournement.
  • Avec cette mise à jour, en tant que développeur, vous pouvez utiliser la nouvelle commande tkn-pac setup cli pour ajouter un dépôt Git à Pipelines as Code en utilisant le mécanisme de webhook. Ainsi, vous pouvez utiliser Pipelines as Code même lorsque l'utilisation de GitHub Apps n'est pas possible. Cette fonctionnalité inclut la prise en charge des dépôts sur GitHub, GitLab et BitBucket.
  • Avec cette mise à jour, Pipelines as Code prend en charge l'intégration de GitLab avec des fonctionnalités telles que les suivantes :

    • ACL (Access Control List) sur le projet ou le groupe
    • /ok-to-test le soutien des utilisateurs autorisés
    • /retest le soutien.
  • Avec cette mise à jour, vous pouvez effectuer un filtrage avancé des pipelines avec le langage d'expression commun (CEL). Avec CEL, vous pouvez faire correspondre des exécutions de pipeline avec différents événements du fournisseur Git en utilisant des annotations dans la ressource PipelineRun. Par exemple :

      ...
      annotations:
         pipelinesascode.tekton.dev/on-cel-expression: |
          event == "pull_request" && target_branch == "main" && source_branch == "wip"
    Copy to Clipboard Toggle word wrap
  • Auparavant, en tant que développeur, vous ne pouviez avoir qu'une seule exécution de pipeline dans votre répertoire .tekton pour chaque événement Git, tel qu'une pull request. Avec cette mise à jour, vous pouvez avoir plusieurs exécutions de pipeline dans votre répertoire .tekton. La console web affiche l'état et les rapports des exécutions. Les exécutions de pipeline fonctionnent en parallèle et renvoient des rapports à l'interface du fournisseur Git.
  • Avec cette mise à jour, vous pouvez tester ou retester un pipeline en commentant /test ou /retest sur une pull request. Vous pouvez également spécifier le pipeline par son nom. Par exemple, vous pouvez saisir /test <pipelinerun_name> ou /retest <pipelinerun-name>.
  • Avec cette mise à jour, vous pouvez supprimer une ressource personnalisée du référentiel et ses secrets associés en utilisant la nouvelle commande tkn-pac delete repository.

3.1.5.2. Changements en cours

  • Cette mise à jour modifie le niveau de métrique par défaut des ressources TaskRun et PipelineRun pour les valeurs suivantes :

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-observability
      namespace: tekton-pipelines
      labels:
        app.kubernetes.io/instance: default
        app.kubernetes.io/part-of: tekton-pipelines
    data:
      _example: |
      ...
        metrics.taskrun.level: "task"
        metrics.taskrun.duration-type: "histogram"
        metrics.pipelinerun.level: "pipeline"
        metrics.pipelinerun.duration-type: "histogram"
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, si une annotation ou un label est présent à la fois dans les ressources Pipeline et PipelineRun, la valeur du type Run est prioritaire. Il en va de même si une annotation ou un label est présent dans les ressources Task et TaskRun.
  • Dans Red Hat OpenShift Pipelines 1.8, le champ PipelineRun.Spec.ServiceAccountNames, précédemment déprécié, a été supprimé. Utilisez le champ PipelineRun.Spec.TaskRunSpecs à la place.
  • Dans Red Hat OpenShift Pipelines 1.8, le champ TaskRun.Status.ResourceResults.ResourceRef, précédemment déprécié, a été supprimé. Utilisez le champ TaskRun.Status.ResourceResults.ResourceName à la place.
  • Dans Red Hat OpenShift Pipelines 1.8, le type de ressource Conditions, précédemment déprécié, a été supprimé. Supprimez la ressource Conditions des définitions de ressources Pipeline qui l'incluent. Utilisez les expressions when dans les définitions PipelineRun à la place.
  • Pour les chaînes Tekton, le format tekton-provenance a été supprimé dans cette version. Utilisez plutôt le format in-toto en définissant "artifacts.taskrun.format": "in-toto" dans la ressource personnalisée TektonChain.
  • Red Hat OpenShift Pipelines 1.7.x était livré avec Pipelines as Code 0.5.x. La mise à jour actuelle est livrée avec Pipelines as Code 0.10.x. Ce changement crée une nouvelle route dans l'espace de noms openshift-pipelines pour le nouveau contrôleur. Vous devez mettre à jour cette route dans les applications GitHub ou les webhooks qui utilisent Pipelines as Code. Pour récupérer la route, utilisez la commande suivante :

    $ oc get route -n openshift-pipelines pipelines-as-code-controller \
      --template='https://{{ .spec.host }}'
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, Pipelines as Code renomme les clés secrètes par défaut pour la définition de ressource personnalisée (CRD) Repository. Dans votre CRD, remplacez token par provider.token, et remplacez secret par webhook.secret.
  • Avec cette mise à jour, Pipelines as Code remplace une variable de modèle spéciale par une variable qui prend en charge des exécutions de pipeline multiples pour des dépôts privés. Dans vos exécutions du pipeline, remplacez secret: pac-git-basic-auth-{{repo_owner}}-{{repo_name}} par secret: {{ git_auth_secret }}.
  • Avec cette mise à jour, Pipelines as Code met à jour les commandes suivantes dans l'outil CLI tkn-pac:

    • Remplacer tkn pac repository create par tkn pac create repository.
    • Remplacer tkn pac repository delete par tkn pac delete repository.
    • Remplacer tkn pac repository list par tkn pac list.

3.1.5.3. Fonctionnalités obsolètes et supprimées

  • À partir d'OpenShift Container Platform 4.11, les canaux preview et stable pour l'installation et la mise à jour de Red Hat OpenShift Pipelines Operator sont supprimés. Pour installer et mettre à niveau l'opérateur, utilisez le canal pipelines-<version> approprié ou le canal latest pour la version stable la plus récente. Par exemple, pour installer la version 1.8.x d'OpenShift Pipelines Operator, utilisez le canal pipelines-1.8.

    Note

    Dans OpenShift Container Platform 4.10 et les versions antérieures, vous pouvez utiliser les canaux preview et stable pour installer et mettre à niveau l'opérateur.

  • La prise en charge de la version de l'API tekton.dev/v1alpha1, qui était obsolète dans Red Hat OpenShift Pipelines GA 1.6, devrait être supprimée dans la prochaine version Red Hat OpenShift Pipelines GA 1.9.

    Ce changement affecte le composant pipeline, qui comprend les ressources TaskRun, PipelineRun, Task, Pipeline, et les ressources similaires tekton.dev/v1alpha1. Comme alternative, mettez à jour les ressources existantes pour utiliser apiVersion: tekton.dev/v1beta1 comme décrit dans Migrating From Tekton v1alpha1 to Tekton v1beta1.

    Les corrections de bogues et l'assistance pour la version de l'API tekton.dev/v1alpha1 ne sont fournies que jusqu'à la fin du cycle de vie actuel de l'AG 1.8.

    Important

    Pour Tekton Operator, la version de l'API operator.tekton.dev/v1alpha1 est not deprecated. Il n'est pas nécessaire de modifier cette valeur.

  • Dans Red Hat OpenShift Pipelines 1.8, la ressource personnalisée (CR) PipelineResource est disponible mais n'est plus prise en charge. La CR PipelineResource était une fonctionnalité Tech Preview et faisait partie de l'API tekton.dev/v1alpha1, qui a été dépréciée et qu'il est prévu de supprimer dans la prochaine version Red Hat OpenShift Pipelines GA 1.9.
  • Dans Red Hat OpenShift Pipelines 1.8, la ressource personnalisée (CR) Condition est supprimée. La CR Condition faisait partie de l'API tekton.dev/v1alpha1, qui a été dépréciée et devrait être supprimée dans la prochaine version de Red Hat OpenShift Pipelines GA 1.9.
  • Dans Red Hat OpenShift Pipelines 1.8, l'image gcr.io pour gsutil a été supprimée. Cette suppression pourrait interrompre les clusters avec les ressources Pipeline qui dépendent de cette image. Les corrections de bugs et l'assistance sont fournies uniquement jusqu'à la fin du cycle de vie de Red Hat OpenShift Pipelines 1.7.
  • Dans Red Hat OpenShift Pipelines 1.8, les champs PipelineRun.Status.TaskRuns et PipelineRun.Status.Runs sont dépréciés et devraient être supprimés dans une prochaine version. Voir TEP-0100 : Embedded TaskRuns and Runs Status in PipelineRuns.
  • Dans Red Hat OpenShift Pipelines 1.8, l'état pipelineRunCancelled est déprécié et il est prévu de le supprimer dans une prochaine version. La terminaison gracieuse des objets PipelineRun est maintenant promue d'une fonctionnalité alpha à une fonctionnalité stable (voir TEP-0058 : Terminaison gracieuse de l'exécution du pipeline). (Voir TEP-0058 : Graceful Pipeline Run Termination.) Comme alternative, vous pouvez utiliser l'état Cancelled, qui remplace l'état pipelineRunCancelled.

    Vous n'avez pas besoin de modifier vos ressources Pipeline et Task. Si vous avez des outils qui annulent les exécutions de pipeline, vous devez les mettre à jour dans la prochaine version. Ce changement affecte également les outils tels que le CLI, les extensions de l'IDE, etc., afin qu'ils prennent en charge les nouveaux statuts PipelineRun.

    Cette fonctionnalité étant disponible par défaut, il n'est plus nécessaire de donner au champ pipeline.enable-api-fields la valeur alpha dans la définition de la ressource personnalisée TektonConfig.

  • Dans Red Hat OpenShift Pipelines 1.8, le champ timeout dans PipelineRun a été déprécié. À la place, utilisez le champ PipelineRun.Timeouts, qui est maintenant passé d'une fonctionnalité alpha à une fonctionnalité stable.

    Cette fonctionnalité étant disponible par défaut, il n'est plus nécessaire de donner au champ pipeline.enable-api-fields la valeur alpha dans la définition de la ressource personnalisée TektonConfig.

  • Dans Red Hat OpenShift Pipelines 1.8, les conteneurs init sont omis des calculs de demande par défaut de l'objet LimitRange.

3.1.5.4. Problèmes connus

  • Le pipeline s2i-nodejs ne peut pas utiliser le flux d'images nodejs:14-ubi8-minimal pour effectuer des constructions source-image (S2I). L'utilisation de ce flux d'images produit un message error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127.

    Solution de contournement : Utilisez nodejs:14-ubi8 plutôt que le flux d'images nodejs:14-ubi8-minimal.

  • Lorsque vous exécutez des tâches de cluster Maven et Jib-Maven, l'image de conteneur par défaut n'est prise en charge que sur l'architecture Intel (x86). Par conséquent, les tâches échoueront sur les clusters ARM, IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x).

    Solution de contournement : Spécifiez une image personnalisée en définissant la valeur du paramètre MAVEN_IMAGE sur maven:3.6.3-adoptopenjdk-11.

    Astuce

    Avant d'installer des tâches basées sur le catalogue Tekton sur ARM, IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x) en utilisant tkn hub, vérifiez si la tâche peut être exécutée sur ces plates-formes. Pour vérifier si ppc64le et s390x sont répertoriés dans la section "Platforms" des informations sur la tâche, vous pouvez exécuter la commande suivante : tkn hub info task <name>

  • Sur ARM, IBM Power Systems, IBM Z et LinuxONE, la tâche s2i-dotnet cluster n'est pas prise en charge.
  • Le mappage implicite des paramètres transmet incorrectement les paramètres des définitions de premier niveau Pipeline ou PipelineRun aux tâches taskRef. Le mappage ne doit se faire qu'à partir d'une ressource de premier niveau vers des tâches avec des spécifications en ligne taskSpec. Ce problème n'affecte que les clusters où cette fonctionnalité a été activée en définissant le champ enable-api-fields sur alpha dans la section pipeline de la définition de la ressource personnalisée TektonConfig.

3.1.5.5. Problèmes corrigés

  • Avant cette mise à jour, les métriques pour les exécutions de pipeline dans la vue Développeur de la console web étaient incomplètes et obsolètes. Avec cette mise à jour, le problème a été corrigé de sorte que les métriques sont correctes.
  • Avant cette mise à jour, si un pipeline avait deux tâches parallèles qui échouaient et que l'une d'entre elles avait retries=2, les tâches finales ne s'exécutaient jamais, et le pipeline s'arrêtait et ne s'exécutait pas. Par exemple, la tâche pipelines-operator-subscription échouait par intermittence avec le message d'erreur suivant : Unable to connect to the server: EOF. Avec cette mise à jour, le problème a été corrigé de sorte que les tâches finales s'exécutent toujours.
  • Avant cette mise à jour, si l'exécution d'un pipeline s'arrêtait en raison de l'échec d'une tâche, les autres tâches risquaient de ne pas être relancées. Par conséquent, aucune tâche finally n'était programmée, ce qui entraînait un blocage du pipeline. Cette mise à jour résout le problème. Les objets TaskRuns et Run peuvent réessayer lorsqu'une exécution du pipeline s'est arrêtée, même par arrêt gracieux, afin que les exécutions du pipeline puissent se terminer.
  • Cette mise à jour modifie la façon dont les besoins en ressources sont calculés lorsqu'un ou plusieurs objets LimitRange sont présents dans l'espace de noms où un objet TaskRun existe. Le planificateur prend désormais en compte les conteneurs step et exclut tous les autres conteneurs d'applications, tels que les conteneurs sidecar, lors de la prise en compte des demandes provenant d'objets LimitRange.
  • Avant cette mise à jour, dans certaines conditions, le paquetage flag pouvait analyser incorrectement une sous-commande suivant immédiatement un double tiret de terminaison de drapeau, --. Dans ce cas, il exécutait la sous-commande du point d'entrée plutôt que la commande réelle. Cette mise à jour corrige ce problème d'analyse des drapeaux afin que le point d'entrée exécute la commande correcte.
  • Avant cette mise à jour, le contrôleur pouvait générer plusieurs paniques si l'extraction d'une image échouait ou si son statut d'extraction était incomplet. Cette mise à jour corrige le problème en vérifiant la valeur step.ImageID plutôt que la valeur status.TaskSpec.
  • Avant cette mise à jour, l'annulation d'une exécution de pipeline contenant une tâche personnalisée non planifiée produisait une erreur PipelineRunCouldntCancel. Cette mise à jour corrige ce problème. Vous pouvez annuler une exécution de pipeline contenant une tâche personnalisée non planifiée sans produire cette erreur.
  • Avant cette mise à jour, si le <NAME> dans $params["<NAME>"] ou $params['<NAME>'] contenait un point (.), toute partie du nom à droite du point n'était pas extraite. Par exemple, à partir de $params["org.ipsum.lorem"], seul org était extrait.

    Cette mise à jour corrige le problème de sorte que $params récupère la valeur complète. Par exemple, $params["org.ipsum.lorem"] et $params['org.ipsum.lorem'] sont valides et la valeur complète de <NAME>, org.ipsum.lorem, est extraite.

    Il génère également une erreur si <NAME> n'est pas entouré de guillemets simples ou doubles. Par exemple, $params.org.ipsum.lorem n'est pas valide et génère une erreur de validation.

  • Avec cette mise à jour, les ressources Trigger prennent en charge les intercepteurs personnalisés et garantissent que le port du service d'interception personnalisé est le même que celui du fichier de définition ClusterInterceptor.
  • Avant cette mise à jour, la commande tkn version pour les chaînes Tekton et les composants Operator ne fonctionnait pas correctement. Cette mise à jour corrige le problème de sorte que la commande fonctionne correctement et renvoie des informations sur la version de ces composants.
  • Avant cette mise à jour, si vous exécutiez une commande tkn pr delete --ignore-running et qu'un pipeline n'avait pas de valeur status.condition, l'outil CLI tkn générait une erreur de pointeur nul (NPE). Cette mise à jour corrige le problème de sorte que l'outil CLI génère désormais une erreur et ignore correctement les exécutions de pipeline qui sont toujours en cours.
  • Avant cette mise à jour, si vous utilisiez les commandes tkn pr delete --keep <value> ou tkn tr delete --keep <value> et que le nombre d'exécutions de pipeline ou de tâches était inférieur à la valeur, la commande ne renvoyait pas d'erreur comme prévu. Cette mise à jour corrige le problème de sorte que la commande renvoie correctement une erreur dans ces conditions.
  • Avant cette mise à jour, si vous utilisiez les commandes tkn pr delete ou tkn tr delete avec les drapeaux -p ou -t et le drapeau --ignore-running, les commandes supprimaient incorrectement les ressources en cours d'exécution ou en attente. Cette mise à jour corrige le problème de sorte que ces commandes ignorent correctement les ressources en cours d'exécution ou en attente.
  • Avec cette mise à jour, vous pouvez configurer les chaînes Tekton en utilisant la ressource personnalisée TektonChain. Cette fonctionnalité permet à votre configuration de persister après la mise à jour, contrairement à la carte de configuration chains-config, qui est écrasée lors des mises à jour.
  • Avec cette mise à jour, les ressources ClusterTask ne s'exécutent plus en tant que root par défaut, à l'exception des tâches de cluster buildah et s2i.
  • Avant cette mise à jour, les tâches sur Red Hat OpenShift Pipelines 1.7.1 échouaient lors de l'utilisation de init comme premier argument suivi de deux arguments ou plus. Avec cette mise à jour, les drapeaux sont analysés correctement, et les exécutions de tâches sont réussies.
  • Avant cette mise à jour, l'installation de Red Hat OpenShift Pipelines Operator sur OpenShift Container Platform 4.9 et 4.10 échouait en raison d'une liaison de rôle non valide, avec le message d'erreur suivant :

    error updating rolebinding openshift-operators-prometheus-k8s-read-binding: RoleBinding.rbac.authorization.k8s.io
    "openshift-operators-prometheus-k8s-read-binding" is invalid:
    roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"Role", Name:"openshift-operator-read"}: cannot change roleRef
    Copy to Clipboard Toggle word wrap

    Cette mise à jour corrige le problème de sorte que l'échec ne se produise plus.

  • Auparavant, la mise à niveau de Red Hat OpenShift Pipelines Operator entraînait la recréation du compte de service pipeline, ce qui signifiait que les secrets liés au compte de service étaient perdus. Cette mise à jour corrige ce problème. Lors des mises à niveau, l'Opérateur ne recrée plus le compte de service pipeline. Par conséquent, les secrets liés au compte de service pipeline persistent après les mises à niveau, et les ressources (tâches et pipelines) continuent de fonctionner correctement.
  • Avec cette mise à jour, les pods Pipelines as Code s'exécutent sur les nœuds d'infrastructure si les paramètres du nœud d'infrastructure sont configurés dans la ressource personnalisée (CR) TektonConfig.
  • Auparavant, avec l'élagueur de ressources, chaque opérateur d'espace de noms créait une commande qui s'exécutait dans un conteneur distinct. Cette conception consommait trop de ressources dans les grappes comportant un grand nombre d'espaces de noms. Par exemple, pour exécuter une seule commande, une grappe de 1000 espaces de noms produisait 1000 conteneurs dans un pod.

    Cette mise à jour corrige le problème. Elle transmet la configuration basée sur l'espace de noms à la tâche afin que toutes les commandes s'exécutent en boucle dans un conteneur.

  • Dans Tekton Chains, vous devez définir un secret appelé signing-secrets pour contenir la clé utilisée pour signer les tâches et les images. Cependant, avant cette mise à jour, la mise à jour de Red Hat OpenShift Pipelines Operator réinitialisait ou écrasait ce secret, et la clé était perdue. Cette mise à jour corrige ce problème. Désormais, si le secret est configuré après l'installation de Tekton Chains via l'Opérateur, le secret persiste et n'est pas écrasé par les mises à jour.
  • Avant cette mise à jour, toutes les tâches de construction de S2I échouaient avec une erreur similaire au message suivant :

    Error: error writing "0 0 4294967295\n" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted
    time="2022-03-04T09:47:57Z" level=error msg="error writing \"0 0 4294967295\\n\" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted"
    time="2022-03-04T09:47:57Z" level=error msg="(unable to determine exit status)"
    Copy to Clipboard Toggle word wrap

    Avec cette mise à jour, la contrainte de contexte de sécurité (SCC) de pipelines-scc est compatible avec la capacité de SETFCAP nécessaire pour les tâches de cluster de Buildah et S2I. Par conséquent, les tâches de construction Buildah et S2I peuvent être exécutées avec succès.

    Pour exécuter avec succès la tâche de cluster Buildah et les tâches de construction S2I pour les applications écrites dans différents langages et frameworks, ajoutez l'extrait suivant pour les objets steps appropriés tels que build et push:

    securityContext:
      capabilities:
        add: ["SETFCAP"]
    Copy to Clipboard Toggle word wrap
  • Avant cette mise à jour, l'installation de Red Hat OpenShift Pipelines Operator prenait plus de temps que prévu. Cette mise à jour optimise certains paramètres afin d'accélérer le processus d'installation.
  • Avec cette mise à jour, les tâches des clusters Buildah et S2I comportent moins d'étapes que dans les versions précédentes. Certaines étapes ont été regroupées en une seule afin de mieux fonctionner avec les objets ResourceQuota et LimitRange et de ne pas nécessiter plus de ressources que nécessaire.
  • Cette mise à jour met à jour les versions de Buildah, de l'outil CLI tkn et de l'outil CLI skopeo dans les tâches en grappe.
  • Avant cette mise à jour, l'opérateur échouait lors de la création de ressources RBAC si un espace de noms était dans l'état Terminating. Avec cette mise à jour, l'opérateur ignore les espaces de noms dans l'état Terminating et crée les ressources RBAC.
  • Avant cette mise à jour, les pods pour les cronjobs prune n'étaient pas planifiés sur les nœuds d'infrastructure, comme prévu. Au lieu de cela, ils étaient planifiés sur les nœuds de travail ou n'étaient pas planifiés du tout. Avec cette mise à jour, ces types de pods peuvent désormais être planifiés sur les nœuds d'infrastructure s'ils sont configurés dans la ressource personnalisée (CR) TektonConfig.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.8.1 est disponible sur OpenShift Container Platform 4.10, 4.11 et 4.12.

3.1.5.6.1. Problèmes connus
  • Par défaut, les conteneurs ont des permissions restreintes pour une sécurité accrue. Les permissions restreintes s'appliquent à tous les pods contrôleurs dans l'Opérateur Red Hat OpenShift Pipelines, ainsi qu'à certaines tâches de cluster. En raison des permissions restreintes, la tâche de cluster git-clone échoue dans certaines configurations.

    Solution de contournement : Aucune. Vous pouvez suivre le problème SRVKP-2634.

  • Lorsque les ensembles d'installation sont dans un état d'échec, l'état de la ressource personnalisée TektonConfig est incorrectement affiché comme True au lieu de False.

    Exemple : Échec de l'installation des jeux

    $ oc get tektoninstallerset
    NAME                                     READY   REASON
    addon-clustertasks-nx5xz                 False   Error
    addon-communityclustertasks-cfb2p        True
    addon-consolecli-ftrb8                   True
    addon-openshift-67dj2                    True
    addon-pac-cf7pz                          True
    addon-pipelines-fvllm                    True
    addon-triggers-b2wtt                     True
    addon-versioned-clustertasks-1-8-hqhnw   False   Error
    pipeline-w75ww                           True
    postpipeline-lrs22                       True
    prepipeline-ldlhw                        True
    rhosp-rbac-4dmgb                         True
    trigger-hfg64                            True
    validating-mutating-webhoook-28rf7       True
    Copy to Clipboard Toggle word wrap

    Exemple : Statut incorrect TektonConfig

    $ oc get tektonconfig config
    NAME     VERSION   READY   REASON
    config   1.8.1     True
    Copy to Clipboard Toggle word wrap

3.1.5.6.2. Problèmes corrigés
  • Avant cette mise à jour, l'élagueur supprimait les tâches des pipelines en cours d'exécution et affichait l'avertissement suivant : some tasks were indicated completed without ancestors being done. Avec cette mise à jour, l'élagueur conserve les tâches qui font partie des pipelines en cours d'exécution.
  • Avant cette mise à jour, pipeline-1.8 était le canal par défaut pour l'installation de Red Hat OpenShift Pipelines Operator 1.8.x. Avec cette mise à jour, latest est le canal par défaut.
  • Avant cette mise à jour, les pods contrôleurs de Pipelines as Code n'avaient pas accès aux certificats exposés par l'utilisateur. Avec cette mise à jour, Pipelines as Code peut désormais accéder aux routes et aux dépôts Git protégés par un certificat auto-signé ou personnalisé.
  • Avant cette mise à jour, la tâche échouait avec des erreurs RBAC après la mise à niveau de Red Hat OpenShift Pipelines 1.7.2 à 1.8.0. Avec cette mise à jour, les tâches s'exécutent avec succès sans aucune erreur RBAC.
  • Avant cette mise à jour, à l'aide de l'outil CLI tkn, vous ne pouviez pas supprimer les exécutions de tâches et les exécutions de pipeline qui contenaient un objet result dont le type était array. Avec cette mise à jour, vous pouvez utiliser l'outil CLI tkn pour supprimer les exécutions de tâches et les exécutions de pipeline qui contiennent un objet result dont le type est array.
  • Avant cette mise à jour, si une spécification de pipeline contenait une tâche avec un paramètre ENV_VARS de type array, l'exécution du pipeline échouait avec l'erreur suivante : invalid input params for task func-buildpacks: param types don’t match the user-specified type: [ENV_VARS]. Avec cette mise à jour, les exécutions de pipeline avec de telles spécifications de pipeline et de tâche n'échouent pas.
  • Avant cette mise à jour, les administrateurs de grappes ne pouvaient pas fournir de fichier config.json à la tâche de grappe Buildah pour accéder à un registre de conteneurs. Avec cette mise à jour, les administrateurs de clusters peuvent fournir un fichier config.json à la tâche de cluster Buildah en utilisant l'espace de travail dockerconfig.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.8.2 est disponible sur OpenShift Container Platform 4.10, 4.11 et 4.12.

3.1.5.7.1. Problèmes corrigés
  • Avant cette mise à jour, la tâche git-clone échouait lors du clonage d'un référentiel à l'aide de clés SSH. Avec cette mise à jour, le rôle de l'utilisateur non root dans la tâche git-init est supprimé, et le programme SSH recherche les clés correctes dans le répertoire $HOME/.ssh/.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.7 est disponible sur OpenShift Container Platform 4.9, 4.10 et 4.11.

3.1.6.1. Nouvelles fonctionnalités

En plus des corrections et des améliorations de stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.7.

3.1.6.1.1. Pipelines
  • Avec cette mise à jour, pipelines-<version> est le canal par défaut pour installer Red Hat OpenShift Pipelines Operator. Par exemple, le canal par défaut pour installer la version 1.7 d'OpenShift Pipelines Operator est pipelines-1.7. Les administrateurs de cluster peuvent également utiliser le canal latest pour installer la version stable la plus récente de l'Opérateur.

    Note

    Les canaux preview et stable seront dépréciés et supprimés dans une prochaine version.

  • Lorsque vous exécutez une commande dans un espace de noms utilisateur, votre conteneur s'exécute en tant que root (user id 0) mais dispose de privilèges d'utilisateur sur l'hôte. Avec cette mise à jour, pour exécuter des pods dans l'espace de noms utilisateur, vous devez passer les annotations attendues par CRI-O.

    • Pour ajouter ces annotations pour tous les utilisateurs, exécutez la commande oc edit clustertask buildah et modifiez la tâche de cluster buildah.
    • Pour ajouter les annotations à un espace de noms spécifique, exportez la tâche de cluster en tant que tâche vers cet espace de noms.
  • Avant cette mise à jour, si certaines conditions n'étaient pas remplies, l'expression when sautait un objet Task et ses tâches dépendantes. Avec cette mise à jour, vous pouvez étendre l'expression when pour garder l'objet Task uniquement, et non ses tâches dépendantes. Pour activer cette mise à jour, définissez l'indicateur scope-when-expressions-to-task sur true dans le CRD TektonConfig.

    Note

    L'indicateur scope-when-expressions-to-task est obsolète et sera supprimé dans une prochaine version. En tant que meilleure pratique pour OpenShift Pipelines, utilisez les expressions when limitées à l'élément gardé Task uniquement.

  • Avec cette mise à jour, vous pouvez utiliser la substitution de variables dans le champ subPath d'un espace de travail au sein d'une tâche.
  • Avec cette mise à jour, vous pouvez référencer les paramètres et les résultats en utilisant une notation entre crochets avec des guillemets simples ou doubles. Avant cette mise à jour, vous ne pouviez utiliser que la notation par points. Par exemple, les éléments suivants sont désormais équivalents :

    • $(param.myparam), $(param['myparam']), et $(param["myparam"]).

      Vous pouvez utiliser des guillemets simples ou doubles pour entourer les noms de paramètres qui contiennent des caractères problématiques, tels que ".". Par exemple, $(param['my.param']) et $(param["my.param"]).

  • Avec cette mise à jour, vous pouvez inclure le paramètre onError d'une étape dans la définition de la tâche sans activer l'indicateur enable-api-fields.
3.1.6.1.2. Déclencheurs
  • Avec cette mise à jour, la carte de configuration feature-flag-triggers dispose d'un nouveau champ labels-exclusion-pattern. Vous pouvez définir la valeur de ce champ par une expression régulière (regex). Le contrôleur filtre les étiquettes qui correspondent au motif de l'expression régulière et les empêche de se propager de l'auditeur d'événements vers les ressources créées pour l'auditeur d'événements.
  • Avec cette mise à jour, le champ TriggerGroups est ajouté à la spécification EventListener. Ce champ permet de spécifier un ensemble d'intercepteurs à exécuter avant de sélectionner et d'exécuter un groupe de déclencheurs. Pour activer cette fonctionnalité, dans la définition de la ressource personnalisée TektonConfig, dans la section pipeline, vous devez définir le champ enable-api-fields sur alpha.
  • Avec cette mise à jour, les ressources Trigger prennent en charge les exécutions personnalisées définies par un modèle TriggerTemplate.
  • Avec cette mise à jour, les déclencheurs prennent en charge l'émission d'événements Kubernetes à partir d'un pod EventListener.
  • Avec cette mise à jour, les mesures de comptage sont disponibles pour les objets suivants : ClusterInteceptor, EventListener, TriggerTemplate, ClusterTriggerBinding, et TriggerBinding.
  • Cette mise à jour ajoute la spécification ServicePort à la ressource Kubernetes. Vous pouvez utiliser cette spécification pour modifier le port qui expose le service d'écoute d'événements. Le port par défaut est 8080.
  • Avec cette mise à jour, vous pouvez utiliser le champ targetURI dans la spécification EventListener pour envoyer des événements cloud pendant le traitement des déclencheurs. Pour activer cette fonctionnalité, dans la définition de la ressource personnalisée TektonConfig, dans la section pipeline, vous devez définir le champ enable-api-fields sur alpha.
  • Avec cette mise à jour, l'objet tekton-triggers-eventlistener-roles a maintenant un verbe patch, en plus du verbe create qui existe déjà.
  • Avec cette mise à jour, le paramètre securityContext.runAsUser est supprimé du déploiement de l'écouteur d'événements.
3.1.6.1.3. CLI
  • Avec cette mise à jour, la commande tkn [pipeline | pipelinerun] export exporte un pipeline ou une exécution de pipeline sous la forme d'un fichier YAML. Par exemple, il est possible d'exporter un pipeline ou une exécution de pipeline sous forme de fichier YAML :

    • Exporter un pipeline nommé test_pipeline dans l'espace de noms openshift-pipelines:

      $ tkn pipeline export test_pipeline -n openshift-pipelines
      Copy to Clipboard Toggle word wrap
    • Exporter un pipeline nommé test_pipeline_run dans l'espace de noms openshift-pipelines:

      $ tkn pipelinerun export test_pipeline_run -n openshift-pipelines
      Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, l'option --grace est ajoutée à l'option tkn pipelinerun cancel. Utilisez l'option --grace pour mettre fin à l'exécution d'un pipeline de manière gracieuse au lieu de forcer la fin. Pour activer cette fonctionnalité, dans la définition de la ressource personnalisée TektonConfig, dans la section pipeline, vous devez définir le champ enable-api-fields à alpha.
  • Cette mise à jour ajoute les versions Operator et Chains à la sortie de la commande tkn version.

    Important

    Tekton Chains est une fonctionnalité de l'aperçu technologique.

  • Avec cette mise à jour, la commande tkn pipelinerun describe affiche toutes les exécutions de tâches annulées, lorsque vous annulez une exécution de pipeline. Avant cette correction, une seule tâche était affichée.
  • Avec cette mise à jour, vous pouvez ne pas fournir les spécifications de l'espace de travail optionnel lorsque vous exécutez la commande tkn [t | p | ct] start skips avec l'option --skip-optional-workspace. Vous pouvez également ne pas le faire en mode interactif.
  • Avec cette mise à jour, vous pouvez utiliser la commande tkn chains pour gérer les chaînes Tekton. Vous pouvez également utiliser l'option --chains-namespace pour spécifier l'espace de noms dans lequel vous souhaitez installer les chaînes Tekton.

    Important

    Tekton Chains est une fonctionnalité de l'aperçu technologique.

3.1.6.1.4. Opérateur
  • Avec cette mise à jour, vous pouvez utiliser l'opérateur Red Hat OpenShift Pipelines pour installer et déployer Tekton Hub et Tekton Chains.

    Important

    Les chaînes Tekton et le déploiement de Tekton Hub sur un cluster sont des fonctionnalités de l'aperçu technologique.

  • Avec cette mise à jour, vous pouvez trouver et utiliser Pipelines as Code (PAC) en tant qu'option supplémentaire.

    Important

    Pipelines as Code est une fonctionnalité de l'aperçu technologique.

  • Avec cette mise à jour, vous pouvez désormais désactiver l'installation des tâches de cluster communautaire en définissant le paramètre communityClusterTasks sur false. Par exemple :

    ...
    spec:
      profile: all
      targetNamespace: openshift-pipelines
      addon:
        params:
        - name: clusterTasks
          value: "true"
        - name: pipelineTemplates
          value: "true"
        - name: communityClusterTasks
          value: "false"
    ...
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, vous pouvez désactiver l'intégration de Tekton Hub avec la perspective Developer en définissant l'indicateur enable-devconsole-integration dans la ressource personnalisée TektonConfig sur false. Par exemple :

    ...
    hub:
      params:
        - name: enable-devconsole-integration
          value: "true"
    ...
    Copy to Clipboard Toggle word wrap
  • Avec cette mise à jour, la carte de configuration operator-config.yaml permet à la sortie de la commande tkn version d'afficher la version de l'opérateur.
  • Avec cette mise à jour, la version des tâches argocd-task-sync-and-wait est modifiée en v0.2.
  • Avec cette mise à jour du CRD TektonConfig, la commande oc get tektonconfig affiche la version de l'OPerator.
  • Avec cette mise à jour, le moniteur de service est ajouté aux mesures des déclencheurs.
3.1.6.1.5. Hub
Important

Le déploiement de Tekton Hub sur un cluster est une fonctionnalité de l'aperçu technologique.

Tekton Hub vous aide à découvrir, rechercher et partager des tâches et des pipelines réutilisables pour vos flux de travail CI/CD. Une instance publique de Tekton Hub est disponible sur hub.tekton.dev.

Depuis Red Hat OpenShift Pipelines 1.7, les administrateurs de clusters peuvent également installer et déployer une instance personnalisée de Tekton Hub sur les clusters d'entreprise. Vous pouvez créer un catalogue avec des tâches réutilisables et des pipelines spécifiques à votre organisation.

3.1.6.1.6. Chaînes
Important

Tekton Chains est une fonctionnalité de l'aperçu technologique.

Tekton Chains est un contrôleur de définition de ressources personnalisées (CRD) de Kubernetes. Vous pouvez l'utiliser pour gérer la sécurité de la chaîne logistique des tâches et des pipelines créés à l'aide de Red Hat OpenShift Pipelines.

Par défaut, Tekton Chains surveille les exécutions de tâches dans votre cluster OpenShift Container Platform. Chains prend des instantanés des exécutions de tâches terminées, les convertit en un ou plusieurs formats de charge utile standard, et signe et stocke tous les artefacts.

Tekton Chains prend en charge les fonctionnalités suivantes :

  • Vous pouvez signer les exécutions de tâches, les résultats des exécutions de tâches et les images de registre OCI avec des types de clés cryptographiques et des services tels que cosign.
  • Vous pouvez utiliser des formats d'attestation tels que in-toto.
  • Vous pouvez stocker en toute sécurité des signatures et des artefacts signés en utilisant le référentiel OCI comme backend de stockage.
3.1.6.1.7. Les pipelines en tant que code (PAC)
Important

Pipelines as Code est une fonctionnalité de l'aperçu technologique.

Avec Pipelines as Code, les administrateurs de clusters et les utilisateurs disposant des privilèges requis peuvent définir des modèles de pipelines dans le cadre de dépôts Git de code source. Lorsqu'elle est déclenchée par un push de code source ou une pull request pour le dépôt Git configuré, la fonctionnalité exécute le pipeline et signale son état.

Pipelines as Code prend en charge les fonctionnalités suivantes :

  • Statut de la demande d'extraction. Lors de l'itération sur une demande d'extraction, le statut et le contrôle de la demande d'extraction sont exercés sur la plateforme hébergeant le dépôt Git.
  • GitHub vérifie l'API pour définir le statut d'une exécution de pipeline, y compris les recontrôles.
  • Événements GitHub relatifs aux demandes d'extraction et aux livraisons.
  • Actions de demande d'extraction dans les commentaires, telles que /retest.
  • Filtrage des événements Git et pipeline séparé pour chaque événement.
  • Résolution automatique des tâches dans OpenShift Pipelines pour les tâches locales, Tekton Hub, et les URLs distantes.
  • Utilisation des blobs et des objets de l'API GitHub pour récupérer les configurations.
  • Liste de contrôle d'accès (ACL) sur une organisation GitHub, ou en utilisant un fichier de type Prow OWNER.
  • Le plugin tkn pac pour l'outil CLI tkn, que vous pouvez utiliser pour gérer les dépôts de Pipelines as Code et le bootstrapping.
  • Prise en charge de l'application GitHub, de GitHub Webhook, du serveur Bitbucket et de Bitbucket Cloud.

3.1.6.2. Fonctionnalités obsolètes

  • Changement radical : Cette mise à jour supprime les champs disable-working-directory-overwrite et disable-home-env-overwrite de la ressource personnalisée (CR) TektonConfig. Par conséquent, la CR TektonConfig ne définit plus automatiquement la variable d'environnement $HOME et le paramètre workingDir. Vous pouvez toujours définir la variable d'environnement $HOME et le paramètre workingDir en utilisant les champs env et workingDir dans la définition de ressource personnalisée (CRD) Task.
  • Le type de définition de ressource personnalisée (CRD) Conditions est obsolète et devrait être supprimé dans une prochaine version. Utilisez plutôt l'expression recommandée When.
  • Changement radical : La ressource Triggers valide les modèles et génère une erreur si vous ne spécifiez pas les valeurs EventListener et TriggerBinding.

3.1.6.3. Problèmes connus

  • Lorsque vous exécutez des tâches de cluster Maven et Jib-Maven, l'image de conteneur par défaut n'est prise en charge que sur l'architecture Intel (x86). Par conséquent, les tâches échoueront sur les clusters ARM, IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x). Pour contourner le problème, vous pouvez spécifier une image personnalisée en définissant la valeur du paramètre MAVEN_IMAGE sur maven:3.6.3-adoptopenjdk-11.

    Astuce

    Avant d'installer des tâches basées sur le catalogue Tekton sur ARM, IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x) en utilisant tkn hub, vérifiez si la tâche peut être exécutée sur ces plates-formes. Pour vérifier si ppc64le et s390x sont répertoriés dans la section "Platforms" des informations sur la tâche, vous pouvez exécuter la commande suivante : tkn hub info task <name>

  • Sur IBM Power Systems, IBM Z et LinuxONE, la tâche s2i-dotnet cluster n'est pas prise en charge.
  • Vous ne pouvez pas utiliser le flux d'images nodejs:14-ubi8-minimal car cela génère les erreurs suivantes :

    STEP 7: RUN /usr/libexec/s2i/assemble
    /bin/sh: /usr/libexec/s2i/assemble: No such file or directory
    subprocess exited with status 127
    subprocess exited with status 127
    error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127
    time="2021-11-04T13:05:26Z" level=error msg="exit status 127"
    Copy to Clipboard Toggle word wrap
  • Le mappage implicite des paramètres transmet incorrectement les paramètres des définitions de premier niveau Pipeline ou PipelineRun aux tâches taskRef. Le mappage ne doit se faire qu'à partir d'une ressource de premier niveau vers des tâches avec des spécifications en ligne taskSpec. Ce problème n'affecte que les clusters où cette fonctionnalité a été activée en définissant le champ enable-api-fields sur alpha dans la section pipeline de la définition de la ressource personnalisée TektonConfig.

3.1.6.4. Problèmes corrigés

  • Avec cette mise à jour, si des métadonnées telles que labels et annotations sont présentes dans les définitions des objets Pipeline et PipelineRun, les valeurs du type PipelineRun sont prioritaires. Vous pouvez observer un comportement similaire pour les objets Task et TaskRun.
  • Avec cette mise à jour, si le champ timeouts.tasks ou le champ timeouts.finally est défini sur 0, le champ timeouts.pipeline est également défini sur 0.
  • Avec cette mise à jour, l'indicateur -x set est supprimé des scripts qui n'utilisent pas de shebang. Cette correction réduit les risques de fuite de données lors de l'exécution des scripts.
  • Avec cette mise à jour, tout caractère backslash présent dans les noms d'utilisateur des identifiants Git est échappé par un backslash supplémentaire dans le fichier .gitconfig.
  • Avec cette mise à jour, la propriété finalizer de l'objet EventListener n'est pas nécessaire pour nettoyer les logs et les cartes de configuration.
  • Avec cette mise à jour, le client HTTP par défaut associé au serveur d'écoute des événements est supprimé et un client HTTP personnalisé est ajouté. En conséquence, les délais d'attente ont été améliorés.
  • Avec cette mise à jour, le rôle de cluster Déclencheurs fonctionne désormais avec les références de propriétaires.
  • Avec cette mise à jour, la condition de course dans l'écouteur d'événements ne se produit pas lorsque plusieurs intercepteurs renvoient des extensions.
  • Avec cette mise à jour, la commande tkn pr delete n'efface pas les pipelines exécutés avec l'indicateur ignore-running.
  • Avec cette mise à jour, les pods de l'opérateur ne continuent pas à redémarrer lorsque vous modifiez les paramètres d'un add-on.
  • Avec cette mise à jour, le pod tkn serve CLI est planifié sur les nœuds infra, s'il n'est pas configuré dans les ressources personnalisées d'abonnement et de configuration.
  • Avec cette mise à jour, les tâches de cluster avec les versions spécifiées ne sont pas supprimées lors de la mise à niveau.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.7.1 est disponible sur OpenShift Container Platform 4.9, 4.10 et 4.11.

3.1.6.5.1. Problèmes corrigés
  • Avant cette mise à jour, la mise à niveau de Red Hat OpenShift Pipelines Operator supprimait les données de la base de données associée à Tekton Hub et installait une nouvelle base de données. Avec cette mise à jour, une mise à niveau de l'Opérateur préserve les données.
  • Avant cette mise à jour, seuls les administrateurs de cluster pouvaient accéder aux métriques de pipeline dans la console OpenShift Container Platform. Avec cette mise à jour, les utilisateurs ayant d'autres rôles dans le cluster peuvent également accéder aux métriques du pipeline.
  • Avant cette mise à jour, les exécutions de pipeline échouaient pour les pipelines contenant des tâches qui émettent des messages de fin volumineux. Les exécutions de pipeline échouaient parce que la taille totale des messages de fin de tous les conteneurs dans un pod ne peut pas dépasser 12 KB. Avec cette mise à jour, les conteneurs d'initialisation place-tools et step-init qui utilisent la même image sont fusionnés pour réduire le nombre de conteneurs en cours d'exécution dans le pod de chaque tâche. La solution réduit le risque d'échec des exécutions du pipeline en minimisant le nombre de conteneurs en cours d'exécution dans le pod d'une tâche. Cependant, elle ne supprime pas la limitation de la taille maximale autorisée d'un message de fin.
  • Avant cette mise à jour, les tentatives d'accès aux URL de ressources directement depuis la console web Tekton Hub entraînaient une erreur Nginx 404. Avec cette mise à jour, l'image de la console web Tekton Hub est corrigée pour permettre l'accès aux URLs des ressources directement depuis la console web Tekton Hub.
  • Avant cette mise à jour, la tâche d'élagage des ressources créait un conteneur distinct pour chaque espace de noms afin d'élaguer les ressources. Avec cette mise à jour, la tâche d'élagage des ressources exécute les commandes pour tous les espaces de noms en boucle dans un seul conteneur.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.7.2 est disponible sur OpenShift Container Platform 4.9, 4.10, et la version à venir.

3.1.6.6.1. Problèmes connus
  • La carte de configuration chains-config pour les chaînes Tekton dans l'espace de noms openshift-pipelines est automatiquement réinitialisée par défaut après la mise à niveau de Red Hat OpenShift Pipelines Operator. Actuellement, il n'y a pas de solution de contournement pour ce problème.
3.1.6.6.2. Problèmes corrigés
  • Avant cette mise à jour, les tâches sur OpenShift Pipelines 1.7.1 échouaient lors de l'utilisation de init comme premier argument, suivi de deux arguments ou plus. Avec cette mise à jour, les drapeaux sont analysés correctement et les tâches sont exécutées avec succès.
  • Avant cette mise à jour, l'installation de Red Hat OpenShift Pipelines Operator sur OpenShift Container Platform 4.9 et 4.10 échouait en raison d'une liaison de rôle non valide, avec le message d'erreur suivant :

    error updating rolebinding openshift-operators-prometheus-k8s-read-binding: RoleBinding.rbac.authorization.k8s.io "openshift-operators-prometheus-k8s-read-binding" is invalid: roleRef: Invalid value: rbac.RoleRef{APIGroup:"rbac.authorization.k8s.io", Kind:"Role", Name:"openshift-operator-read"}: cannot change roleRef
    Copy to Clipboard Toggle word wrap

    Avec cette mise à jour, l'opérateur Red Hat OpenShift Pipelines s'installe avec des espaces de noms de liaison de rôle distincts pour éviter les conflits avec l'installation d'autres opérateurs.

  • Avant cette mise à jour, la mise à niveau de l'opérateur entraînait la réinitialisation de la clé secrète signing-secrets pour les chaînes Tekton à sa valeur par défaut. Avec cette mise à jour, la clé secrète personnalisée persiste après la mise à niveau de l'opérateur.

    Note

    La mise à niveau vers Red Hat OpenShift Pipelines 1.7.2 réinitialise la clé. Cependant, lorsque vous mettez à niveau vers des versions ultérieures, la clé est censée persister.

  • Avant cette mise à jour, toutes les tâches de construction de S2I échouaient avec une erreur similaire au message suivant :

    Error: error writing "0 0 4294967295\n" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted
    time="2022-03-04T09:47:57Z" level=error msg="error writing \"0 0 4294967295\\n\" to /proc/22/uid_map: write /proc/22/uid_map: operation not permitted"
    time="2022-03-04T09:47:57Z" level=error msg="(unable to determine exit status)"
    Copy to Clipboard Toggle word wrap

    Avec cette mise à jour, la contrainte de contexte de sécurité (SCC) de pipelines-scc est compatible avec la capacité de SETFCAP nécessaire pour les tâches de cluster de Buildah et S2I. Par conséquent, les tâches de construction Buildah et S2I peuvent être exécutées avec succès.

    Pour exécuter avec succès la tâche de cluster Buildah et les tâches de construction S2I pour les applications écrites dans différents langages et frameworks, ajoutez l'extrait suivant pour les objets steps appropriés tels que build et push:

    securityContext:
      capabilities:
        add: ["SETFCAP"]
    Copy to Clipboard Toggle word wrap

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.7.3 est disponible sur OpenShift Container Platform 4.9, 4.10 et 4.11.

3.1.6.7.1. Problèmes corrigés
  • Avant cette mise à jour, l'opérateur échouait lors de la création de ressources RBAC si un espace de noms était dans l'état Terminating. Avec cette mise à jour, l'opérateur ignore les espaces de noms dans l'état Terminating et crée les ressources RBAC.
  • Auparavant, la mise à niveau de Red Hat OpenShift Pipelines Operator entraînait la recréation du compte de service pipeline, ce qui signifiait que les secrets liés au compte de service étaient perdus. Cette mise à jour corrige ce problème. Lors des mises à niveau, l'Opérateur ne recrée plus le compte de service pipeline. Par conséquent, les secrets liés au compte de service pipeline persistent après les mises à niveau, et les ressources (tâches et pipelines) continuent de fonctionner correctement.

Avec cette mise à jour, Red Hat OpenShift Pipelines General Availability (GA) 1.6 est disponible sur OpenShift Container Platform 4.9.

3.1.7.1. Nouvelles fonctionnalités

En plus des corrections et des améliorations de la stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.6.

  • Avec cette mise à jour, vous pouvez configurer la commande start d'un pipeline ou d'une tâche pour qu'elle renvoie une chaîne formatée YAML ou JSON en utilisant l'option --output <string>, où <string> est yaml ou json. Sinon, sans l'option --output, la commande start renvoie un message convivial difficile à analyser par d'autres programmes. Le renvoi d'une chaîne au format YAML ou JSON est utile pour les environnements d'intégration continue (CI). Par exemple, après la création d'une ressource, vous pouvez utiliser yq ou jq pour analyser le message au format YAML ou JSON concernant la ressource et attendre que cette ressource soit terminée sans utiliser l'option showlog.
  • Avec cette mise à jour, vous pouvez vous authentifier auprès d'un registre en utilisant le fichier d'authentification auth.json de Podman. Par exemple, vous pouvez utiliser tkn bundle push pour pousser vers un registre distant en utilisant Podman au lieu de Docker CLI.
  • Avec cette mise à jour, si vous utilisez la commande tkn [taskrun | pipelinerun] delete --all, vous pouvez conserver les exécutions datant de moins d'un certain nombre de minutes en utilisant la nouvelle option --keep-since <minutes>. Par exemple, pour conserver les exécutions datant de moins de cinq minutes, vous devez saisir tkn [taskrun | pipelinerun] delete -all --keep-since 5.
  • Avec cette mise à jour, lorsque vous supprimez des exécutions de tâches ou des exécutions de pipeline, vous pouvez utiliser les options --parent-resource et --keep-since en même temps. Par exemple, la commande tkn pipelinerun delete --pipeline pipelinename --keep-since 5 préserve les exécutions de pipeline dont la ressource parente est nommée pipelinename et dont l'ancienneté est inférieure ou égale à cinq minutes. Les commandes tkn tr delete -t <taskname> --keep-since 5 et tkn tr delete --clustertask <taskname> --keep-since 5 fonctionnent de la même manière pour les exécutions de tâches.
  • Cette mise à jour ajoute la prise en charge des ressources de déclenchement pour qu'elles fonctionnent avec les ressources v1beta1.
  • Cette mise à jour ajoute une option ignore-running aux commandes tkn pipelinerun delete et tkn taskrun delete.
  • Cette mise à jour ajoute une sous-commande create aux commandes tkn task et tkn clustertask.
  • Avec cette mise à jour, lorsque vous utilisez la commande tkn pipelinerun delete --all, vous pouvez utiliser la nouvelle option --label <string> pour filtrer les parcours du pipeline par étiquette. Vous pouvez également utiliser l'option --label avec = et == comme opérateurs d'égalité, ou != comme opérateur d'inégalité. Par exemple, les commandes tkn pipelinerun delete --all --label asdf et tkn pipelinerun delete --all --label==asdf suppriment toutes deux toutes les séries de pipelines portant le label asdf.
  • Avec cette mise à jour, vous pouvez récupérer la version des composants Tekton installés à partir de la carte de configuration ou, si la carte de configuration n'est pas présente, à partir du contrôleur de déploiement.
  • Avec cette mise à jour, les déclencheurs prennent en charge les cartes de configuration feature-flags et config-defaults pour configurer les drapeaux des fonctionnalités et définir les valeurs par défaut, respectivement.
  • Cette mise à jour ajoute une nouvelle métrique, eventlistener_event_count, que vous pouvez utiliser pour compter les événements reçus par la ressource EventListener.
  • Cette mise à jour ajoute les types d'API v1beta1 Go. Avec cette mise à jour, les déclencheurs prennent désormais en charge la version de l'API v1beta1.

    Avec la version actuelle, les fonctionnalités de v1alpha1 sont désormais obsolètes et seront supprimées dans une prochaine version. Commencez à utiliser les fonctionnalités de v1beta1 à la place.

  • Dans la version actuelle, l'exécution automatique des ressources est activée par défaut. En outre, vous pouvez configurer l'exécution automatique des tâches et des pipelines pour chaque espace de noms séparément, en utilisant les nouvelles annotations suivantes :

    • operator.tekton.dev/prune.schedule: Si la valeur de cette annotation est différente de la valeur spécifiée dans la définition de la ressource personnalisée TektonConfig, un nouveau travail cron est créé dans cet espace de noms.
    • operator.tekton.dev/prune.skip: Lorsqu'il est défini sur true, l'espace de noms pour lequel il est configuré ne sera pas élagué.
    • operator.tekton.dev/prune.resources: Cette annotation accepte une liste de ressources séparées par des virgules. Pour élaguer une seule ressource, telle qu'une exécution de pipeline, définissez cette annotation à "pipelinerun". Pour élaguer plusieurs ressources, telles qu'une exécution de tâche et une exécution de pipeline, définissez cette annotation à "taskrun, pipelinerun".
    • operator.tekton.dev/prune.keep: Utilisez cette annotation pour conserver une ressource sans l'élaguer.
    • operator.tekton.dev/prune.keep-since: Cette annotation permet de conserver les ressources en fonction de leur âge. La valeur de cette annotation doit être égale à l'âge de la ressource en minutes. Par exemple, pour conserver les ressources qui ont été créées il y a cinq jours au maximum, définissez keep-since sur 7200.

      Note

      Les annotations keep et keep-since s'excluent mutuellement. Pour toute ressource, vous ne devez configurer qu'une seule d'entre elles.

    • operator.tekton.dev/prune.strategy: Fixer la valeur de cette annotation à keep ou keep-since.
  • Les administrateurs peuvent désactiver la création du compte de service pipeline pour l'ensemble du cluster, et empêcher l'escalade des privilèges par une mauvaise utilisation du SCC associé, qui est très similaire à anyuid.
  • Vous pouvez désormais configurer les drapeaux de fonctionnalité et les composants en utilisant la ressource personnalisée (CR) TektonConfig et les CR pour les composants individuels, tels que TektonPipeline et TektonTriggers. Ce niveau de granularité permet de personnaliser et de tester des fonctionnalités alpha telles que le Tekton OCI bundle pour des composants individuels.
  • Vous pouvez désormais configurer le champ optionnel Timeouts pour la ressource PipelineRun. Par exemple, vous pouvez configurer des délais séparément pour l'exécution d'un pipeline, l'exécution de chaque tâche et les tâches finally.
  • Les pods générés par la ressource TaskRun définissent désormais le champ activeDeadlineSeconds des pods. Cela permet à OpenShift de les considérer comme terminés, et vous permet d'utiliser l'objet spécifiquement scoped ResourceQuota pour les pods.
  • Vous pouvez utiliser les cartes de configuration pour éliminer les balises de métriques ou les types d'étiquettes sur une exécution de tâche, une exécution de pipeline, une tâche et un pipeline. En outre, vous pouvez configurer différents types de métriques pour mesurer la durée, tels qu'un histogramme, une jauge ou la dernière valeur.
  • Vous pouvez définir les demandes et les limites d'un pod de manière cohérente, car Tekton prend désormais entièrement en charge l'objet LimitRange en tenant compte des champs Min, Max, Default et DefaultRequest.
  • Les fonctionnalités alpha suivantes sont introduites :

    • L'exécution d'un pipeline peut maintenant s'arrêter après l'exécution des tâches finally, plutôt que d'arrêter directement l'exécution de toutes les tâches comme c'était le cas auparavant. Cette mise à jour ajoute les valeurs spec.status suivantes :

      • StoppedRunFinally arrêtera les tâches en cours d'exécution une fois qu'elles seront terminées, puis exécutera les tâches finally.
      • CancelledRunFinally annulera immédiatement les tâches en cours, puis exécutera les tâches finally.
      • Cancelled conservera le comportement antérieur fourni par le statut PipelineRunCancelled.

        Note

        Le statut Cancelled remplace le statut PipelineRunCancelled, qui est obsolète et qui sera supprimé dans la version v1.

    • Vous pouvez désormais utiliser la commande oc debug pour mettre une tâche en mode débogage, ce qui met l'exécution en pause et vous permet d'inspecter des étapes spécifiques d'un module.
    • Lorsque vous attribuez la valeur continue au champ onError d'une étape, le code de sortie de l'étape est enregistré et transmis aux étapes suivantes. Toutefois, l'exécution de la tâche n'échoue pas et l'exécution des autres étapes de la tâche se poursuit. Pour conserver le comportement existant, vous pouvez attribuer au champ onError la valeur stopAndFail.
    • Les tâches peuvent désormais accepter plus de paramètres qu'elles n'en utilisent réellement. Lorsque l'option alpha est activée, les paramètres peuvent se propager implicitement aux spécifications intégrées. Par exemple, une tâche intégrée peut accéder aux paramètres de son pipeline parent, sans définir explicitement chaque paramètre pour la tâche.
    • Si vous activez l'indicateur pour les caractéristiques alpha, les conditions des expressions When ne s'appliqueront qu'à la tâche à laquelle elle est directement associée, et non aux dépendances de la tâche. Pour appliquer les expressions When à la tâche associée et à ses dépendances, vous devez associer l'expression à chaque tâche dépendante séparément. Notez qu'à l'avenir, ce sera le comportement par défaut des expressions When dans toutes les nouvelles versions API de Tekton. Le comportement par défaut existant sera supprimé en faveur de cette mise à jour.
  • La version actuelle vous permet de configurer la sélection des nœuds en spécifiant les valeurs nodeSelector et tolerations dans la ressource personnalisée (CR) TektonConfig. L'opérateur ajoute ces valeurs à tous les déploiements qu'il crée.

    • Pour configurer la sélection des nœuds pour le contrôleur de l'opérateur et le déploiement des webhooks, vous devez modifier les champs config.nodeSelector et config.tolerations dans la spécification de Subscription CR, après avoir installé l'opérateur.
    • Pour déployer le reste des pods du plan de contrôle d'OpenShift Pipelines sur un nœud d'infrastructure, mettez à jour le CR TektonConfig avec les champs nodeSelector et tolerations. Les modifications sont ensuite appliquées à tous les pods créés par Operator.

3.1.7.2. Fonctionnalités obsolètes

  • Dans le CLI 0.21.0, la prise en charge de toutes les ressources v1alpha1 pour les commandes clustertask, task, taskrun, pipeline, et pipelinerun est obsolète. Ces ressources sont désormais obsolètes et seront supprimées dans une prochaine version.
  • Dans la version 0.16.0 de Tekton Triggers, l'étiquette redondante status est supprimée des métriques de la ressource EventListener.

    Important

    Changement radical : Le label status a été supprimé de la métrique eventlistener_http_duration_seconds_*. Supprimez les requêtes basées sur le label status.

  • Avec la version actuelle, les fonctionnalités de v1alpha1 sont désormais obsolètes et seront supprimées dans une prochaine version. Avec cette mise à jour, vous pouvez commencer à utiliser les types d'API v1beta1 Go à la place. Les déclencheurs prennent désormais en charge la version de l'API v1beta1.
  • Avec la version actuelle, la ressource EventListener envoie une réponse avant que les déclencheurs ne terminent leur traitement.

    Important

    Changement de rupture : Avec cette modification, la ressource EventListener ne répond plus avec un code d'état 201 Created lorsqu'elle crée des ressources. Au lieu de cela, elle répond avec un code de réponse 202 Accepted.

  • La version actuelle supprime le champ podTemplate de la ressource EventListener.

    Important

    Changement radical : Le champ podTemplate, qui a été supprimé dans le cadre de #1100, a été supprimé.

  • La version actuelle supprime le champ replicas, obsolète, de la spécification de la ressource EventListener.

    Important

    Changement radical : Le champ replicas, obsolète, a été supprimé.

  • Dans Red Hat OpenShift Pipelines 1.6, les valeurs de HOME="/tekton/home" et workingDir="/workspace" sont supprimées de la spécification des objets Step.

    Au lieu de cela, Red Hat OpenShift Pipelines définit HOME et workingDir aux valeurs définies par les conteneurs exécutant les objets Step. Vous pouvez remplacer ces valeurs dans la spécification de vos objets Step.

    Pour utiliser l'ancien comportement, vous pouvez remplacer les champs disable-working-directory-overwrite et disable-home-env-overwrite de la CR TektonConfig par false:

    apiVersion: operator.tekton.dev/v1alpha1
      kind: TektonConfig
      metadata:
        name: config
      spec:
        pipeline:
          disable-working-directory-overwrite: false
          disable-home-env-overwrite: false
      ...
    Copy to Clipboard Toggle word wrap
    Important

    Les champs disable-working-directory-overwrite et disable-home-env-overwrite de la CR TektonConfig sont désormais obsolètes et seront supprimés dans une prochaine version.

3.1.7.3. Problèmes connus

  • Lorsque vous exécutez des tâches de cluster Maven et Jib-Maven, l'image de conteneur par défaut n'est prise en charge que sur l'architecture Intel (x86). Par conséquent, les tâches échoueront sur les clusters IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x). Pour contourner ce problème, vous pouvez spécifier une image personnalisée en définissant la valeur du paramètre MAVEN_IMAGE sur maven:3.6.3-adoptopenjdk-11.
  • Sur IBM Power Systems, IBM Z et LinuxONE, la tâche s2i-dotnet cluster n'est pas prise en charge.
  • Avant d'installer des tâches basées sur le catalogue Tekton sur IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x) à l'aide de tkn hub, vérifiez si la tâche peut être exécutée sur ces plates-formes. Pour vérifier si ppc64le et s390x sont listés dans la section "Platforms" des informations sur la tâche, vous pouvez exécuter la commande suivante : tkn hub info task <name>
  • Vous ne pouvez pas utiliser le flux d'images nodejs:14-ubi8-minimal car cela génère les erreurs suivantes :

    STEP 7: RUN /usr/libexec/s2i/assemble
    /bin/sh: /usr/libexec/s2i/assemble: No such file or directory
    subprocess exited with status 127
    subprocess exited with status 127
    error building at STEP "RUN /usr/libexec/s2i/assemble": exit status 127
    time="2021-11-04T13:05:26Z" level=error msg="exit status 127"
    Copy to Clipboard Toggle word wrap

3.1.7.4. Problèmes corrigés

  • La commande tkn hub est désormais prise en charge sur les systèmes IBM Power, IBM Z et LinuxONE.
  • Avant cette mise à jour, le terminal n'était pas disponible après que l'utilisateur ait exécuté une commande tkn, et l'exécution du pipeline était terminée, même si retries était spécifié. La spécification d'un délai d'attente dans l'exécution de la tâche ou du pipeline n'avait aucun effet. Cette mise à jour corrige le problème afin que le terminal soit disponible après l'exécution de la commande.
  • Avant cette mise à jour, l'exécution de tkn pipelinerun delete --all supprimait toutes les ressources. Cette mise à jour empêche la suppression des ressources en cours d'exécution.
  • Avant cette mise à jour, l'utilisation de la commande tkn version --component=<component> ne renvoyait pas la version du composant. Cette mise à jour corrige le problème de sorte que cette commande renvoie la version du composant.
  • Avant cette mise à jour, lorsque vous utilisiez la commande tkn pr logs, elle affichait les journaux de sortie des pipelines dans le mauvais ordre des tâches. Cette mise à jour résout le problème de sorte que les journaux de PipelineRuns sont répertoriés dans l'ordre d'exécution approprié de TaskRun.
  • Avant cette mise à jour, la modification de la spécification d'un pipeline en cours d'exécution pouvait empêcher l'exécution du pipeline de s'arrêter lorsqu'elle était terminée. Cette mise à jour corrige le problème en ne récupérant la définition qu'une seule fois et en utilisant ensuite la spécification stockée dans l'état pour la vérification. Cette modification réduit la probabilité d'une condition de course lorsqu'un PipelineRun ou un TaskRun fait référence à un Pipeline ou un Task qui change pendant l'exécution.
  • When les valeurs d'expression peuvent désormais contenir des références à des paramètres de type tableau, comme par exemple : values: [$(params.arrayParam[*])].
3.1.7.5.1. Problèmes connus
  • Après la mise à niveau vers Red Hat OpenShift Pipelines 1.6.1 à partir d'une version plus ancienne, OpenShift Pipelines peut entrer dans un état incohérent dans lequel vous ne pouvez pas effectuer d'opérations (créer/supprimer/appliquer) sur les ressources Tekton (tâches et pipelines). Par exemple, lors de la suppression d'une ressource, vous pouvez rencontrer l'erreur suivante :

    Error from server (InternalError): Internal error occurred: failed calling webhook "validation.webhook.pipeline.tekton.dev": Post "https://tekton-pipelines-webhook.openshift-pipelines.svc:443/resource-validation?timeout=10s": service "tekton-pipelines-webhook" not found.
    Copy to Clipboard Toggle word wrap
3.1.7.5.2. Problèmes corrigés
  • La variable d'environnement SSL_CERT_DIR (/tekton-custom-certs) définie par Red Hat OpenShift Pipelines ne remplacera pas les répertoires système par défaut suivants par des fichiers de certificats :

    • /etc/pki/tls/certs
    • /etc/ssl/certs
    • /system/etc/security/cacerts
  • L'Horizontal Pod Autoscaler peut gérer le nombre de répliques des déploiements contrôlés par Red Hat OpenShift Pipelines Operator. À partir de cette version, si le compte est modifié par un utilisateur final ou un agent sur le cluster, Red Hat OpenShift Pipelines Operator ne réinitialisera pas le compte de répliques des déploiements qu'il gère. Cependant, les répliques seront réinitialisées lorsque vous mettrez à niveau le Red Hat OpenShift Pipelines Operator.
  • Le pod qui sert le CLI tkn sera désormais programmé sur des nœuds, en fonction du sélecteur de nœuds et des limites de tolérance spécifiées dans la ressource personnalisée TektonConfig.
3.1.7.6.1. Problèmes connus
  • Lorsque vous créez un nouveau projet, la création du compte de service pipeline est retardée, et la suppression des tâches de cluster et des modèles de pipeline existants prend plus de 10 minutes.
3.1.7.6.2. Problèmes corrigés
  • Avant cette mise à jour, plusieurs instances d'ensembles d'installation Tekton étaient créées pour un pipeline après la mise à niveau vers Red Hat OpenShift Pipelines 1.6.1 à partir d'une version plus ancienne. Avec cette mise à jour, l'opérateur s'assure qu'une seule instance de chaque type de TektonInstallerSet existe après une mise à niveau.
  • Avant cette mise à jour, tous les réconciliateurs de l'Opérateur utilisaient la version du composant pour décider de la recréation des ressources lors d'une mise à niveau vers Red Hat OpenShift Pipelines 1.6.1 à partir d'une version plus ancienne. Par conséquent, les ressources dont la version des composants n'a pas changé lors de la mise à niveau n'ont pas été recréées. Avec cette mise à jour, l'opérateur utilise la version de l'opérateur au lieu de la version du composant pour décider de la recréation des ressources lors d'une mise à niveau.
  • Avant cette mise à jour, le service pipelines webhook était absent du cluster après une mise à jour. Cela était dû à un blocage de la mise à jour sur les cartes de configuration. Avec cette mise à jour, un mécanisme est ajouté pour désactiver la validation du webhook si les cartes de configuration sont absentes dans le cluster. Par conséquent, le service pipelines webhook persiste dans le cluster après une mise à jour.
  • Avant cette mise à jour, les tâches cron pour l'élagage automatique étaient recréées après tout changement de configuration de l'espace de noms. Avec cette mise à jour, les tâches cron pour l'élagage automatique ne sont recréées que s'il y a un changement d'annotation pertinent dans l'espace de noms.
  • La version amont de Tekton Pipelines est révisée en v0.28.3, qui comporte les corrections suivantes :

    • Correction des objets PipelineRun ou TaskRun pour permettre la propagation des étiquettes ou des annotations.
    • Pour les paramètres implicites :

      • Ne pas appliquer les paramètres de PipelineSpec à l'objet TaskRefs.
      • Désactive le comportement param implicite pour les objets Pipeline.
3.1.7.7.1. Problèmes corrigés
  • Avant cette mise à jour, l'Opérateur Red Hat OpenShift Pipelines installait des politiques de sécurité de pods à partir de composants tels que Pipelines et Triggers. Cependant, les politiques de sécurité de pods livrées dans le cadre des composants ont été dépréciées dans une version antérieure. Avec cette mise à jour, l'opérateur arrête d'installer des politiques de sécurité de pods à partir de composants. Par conséquent, les chemins de mise à niveau suivants sont concernés :

    • La mise à jour d'OpenShift Pipelines 1.6.1 ou 1.6.2 vers OpenShift Pipelines 1.6.3 supprime les politiques de sécurité des pods, y compris celles des composants Pipelines et Triggers.
    • La mise à niveau d'OpenShift Pipelines 1.5.x vers 1.6.3 conserve les politiques de sécurité des pods installées à partir des composants. En tant qu'administrateur de cluster, vous pouvez les supprimer manuellement.

      Note

      Lorsque vous mettez à niveau vers des versions ultérieures, l'Opérateur Red Hat OpenShift Pipelines supprimera automatiquement toutes les politiques de sécurité de pods obsolètes.

  • Avant cette mise à jour, seuls les administrateurs de cluster pouvaient accéder aux métriques de pipeline dans la console OpenShift Container Platform. Avec cette mise à jour, les utilisateurs ayant d'autres rôles dans le cluster peuvent également accéder aux métriques du pipeline.
  • Avant cette mise à jour, des problèmes de contrôle d'accès basé sur les rôles (RBAC) avec l'opérateur OpenShift Pipelines causaient des problèmes de mise à niveau ou d'installation de composants. Cette mise à jour améliore la fiabilité et la cohérence de l'installation de divers composants Red Hat OpenShift Pipelines.
  • Avant cette mise à jour, le fait de définir les champs clusterTasks et pipelineTemplates sur false dans le CR TektonConfig ralentissait la suppression des tâches en grappe et des modèles de pipeline. Cette mise à jour améliore la vitesse de gestion du cycle de vie des ressources Tekton telles que les tâches de cluster et les modèles de pipeline.
3.1.7.8.1. Problèmes connus
  • Après la mise à niveau de Red Hat OpenShift Pipelines 1.5.2 vers 1.6.4, l'accès aux routes d'écoute d'événements renvoie une erreur 503.

    Solution : Modifiez le port cible dans le fichier YAML pour la route de l'écouteur d'événements.

    1. Extraire le nom de la route pour l'espace de noms concerné.

      $ oc get route -n <namespace>
      Copy to Clipboard Toggle word wrap
    2. Editer l'itinéraire pour modifier la valeur du champ targetPort.

      $ oc edit route -n <namespace> <el-route_name>
      Copy to Clipboard Toggle word wrap

      Exemple : Route d'écoute d'événements existante

      ...
      spec:
        host: el-event-listener-q8c3w5-test-upgrade1.apps.ve49aws.aws.ospqa.com
        port:
          targetPort: 8000
        to:
          kind: Service
          name: el-event-listener-q8c3w5
          weight: 100
        wildcardPolicy: None
      ...
      Copy to Clipboard Toggle word wrap

      Exemple : Modification de l'itinéraire de l'auditeur d'événements

      ...
      spec:
        host: el-event-listener-q8c3w5-test-upgrade1.apps.ve49aws.aws.ospqa.com
        port:
          targetPort: http-listener
        to:
          kind: Service
          name: el-event-listener-q8c3w5
          weight: 100
        wildcardPolicy: None
      ...
      Copy to Clipboard Toggle word wrap

3.1.7.8.2. Problèmes corrigés
  • Avant cette mise à jour, l'opérateur échouait lors de la création de ressources RBAC si un espace de noms était dans l'état Terminating. Avec cette mise à jour, l'opérateur ignore les espaces de noms dans l'état Terminating et crée les ressources RBAC.
  • Avant cette mise à jour, les tâches échouaient ou redémarraient en raison de l'absence d'annotation spécifiant la version du contrôleur Tekton associé. Avec cette mise à jour, l'inclusion des annotations appropriées est automatisée et les tâches s'exécutent sans échec ni redémarrage.

Red Hat OpenShift Pipelines General Availability (GA) 1.5 est désormais disponible sur OpenShift Container Platform 4.8.

3.1.8.1. Matrice de compatibilité et de soutien

Certaines fonctionnalités de cette version sont actuellement en avant-première technologique. Ces fonctionnalités expérimentales ne sont pas destinées à être utilisées en production.

Dans le tableau, les caractéristiques sont marquées par les statuts suivants :

TP

Avant-première technologique

GA

Disponibilité générale

Notez l'étendue de l'assistance suivante sur le portail client de Red Hat pour ces fonctionnalités :

Expand
Tableau 3.2. Matrice de compatibilité et de soutien
FonctionnalitéVersionStatut de soutien

Pipelines

0.24

GA

CLI

0.19

GA

Catalogue

0.24

GA

Déclencheurs

0.14

TP

Ressources en gazoducs

-

TP

Pour toute question ou commentaire, vous pouvez envoyer un courriel à l'équipe produit à l'adresse pipelines-interest@redhat.com.

3.1.8.2. Nouvelles fonctionnalités

En plus des corrections et des améliorations de la stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.5.

  • Les exécutions de pipelines et de tâches seront automatiquement élaguées par une tâche cron dans l'espace de noms cible. La tâche cron utilise la variable d'environnement IMAGE_JOB_PRUNER_TKN pour obtenir la valeur de tkn image. Avec cette amélioration, les champs suivants sont introduits dans la ressource personnalisée TektonConfig:

    ...
    pruner:
      resources:
        - pipelinerun
        - taskrun
      schedule: "*/5 * * * *" # cron schedule
      keep: 2 # delete all keeping n
    ...
    Copy to Clipboard Toggle word wrap
  • Dans OpenShift Container Platform, vous pouvez personnaliser l'installation du composant Tekton Add-ons en modifiant les valeurs des nouveaux paramètres clusterTasks et pipelinesTemplates dans la ressource personnalisée TektonConfig:

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      profile: all
      targetNamespace: openshift-pipelines
      addon:
        params:
        - name: clusterTasks
          value: "true"
        - name: pipelineTemplates
          value: "true"
    ...
    Copy to Clipboard Toggle word wrap

    La personnalisation est possible si vous créez le module complémentaire à l'aide de TektonConfig ou directement à l'aide de Tekton Add-ons. Toutefois, si les paramètres ne sont pas transmis, le contrôleur ajoute des paramètres avec des valeurs par défaut.

    Note
    • Si le module complémentaire est créé à l'aide de la ressource personnalisée TektonConfig et que vous modifiez ultérieurement les valeurs des paramètres dans la ressource personnalisée Addon, les valeurs de la ressource personnalisée TektonConfig remplacent les modifications.
    • Vous ne pouvez définir la valeur du paramètre pipelinesTemplates sur true que si la valeur du paramètre clusterTasks est true.
  • Le paramètre enableMetrics est ajouté à la ressource personnalisée TektonConfig. Vous pouvez l'utiliser pour désactiver le moniteur de service, qui fait partie de Tekton Pipelines pour OpenShift Container Platform.

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
      name: config
    spec:
      profile: all
      targetNamespace: openshift-pipelines
      pipeline:
        params:
        - name: enableMetrics
          value: "true"
    ...
    Copy to Clipboard Toggle word wrap
  • Les métriques OpenCensus d'Eventlistener, qui capturent les métriques au niveau du processus, sont ajoutées.
  • Les déclencheurs disposent désormais d'un sélecteur d'étiquettes ; vous pouvez configurer les déclencheurs d'un auditeur d'événements à l'aide d'étiquettes.
  • La définition de la ressource personnalisée ClusterInterceptor pour l'enregistrement des intercepteurs a été ajoutée, ce qui vous permet d'enregistrer de nouveaux types Interceptor que vous pouvez ajouter. En outre, les modifications suivantes ont été apportées :

    • Dans les spécifications du déclencheur, vous pouvez configurer les intercepteurs à l'aide d'une nouvelle API qui comprend un champ ref pour faire référence à un intercepteur de cluster. En outre, vous pouvez utiliser le champ params pour ajouter des paramètres qui seront transmis aux intercepteurs pour traitement.
    • Les intercepteurs intégrés CEL, GitHub, GitLab et BitBucket ont été migrés. Ils sont mis en œuvre à l'aide de la nouvelle définition de ressource personnalisée ClusterInterceptor.
    • Les intercepteurs de base sont migrés vers le nouveau format et tous les nouveaux déclencheurs créés à l'aide de l'ancienne syntaxe passent automatiquement à la nouvelle syntaxe basée sur ref ou params.
  • Pour désactiver le préfixe du nom de la tâche ou de l'étape lors de l'affichage des journaux, utilisez l'option --prefix pour les commandes log.
  • Pour afficher la version d'un composant spécifique, utilisez le nouvel indicateur --component dans la commande tkn version.
  • La commande tkn hub check-upgrade a été ajoutée et d'autres commandes ont été révisées pour être basées sur la version du pipeline. En outre, les noms des catalogues sont affichés dans la sortie de la commande search.
  • La prise en charge des espaces de travail optionnels a été ajoutée à la commande start.
  • Si les plugins ne sont pas présents dans le répertoire plugins, ils sont recherchés dans le chemin courant.
  • La commande tkn start [task | clustertask | pipeline] démarre de manière interactive et demande la valeur params, même si les paramètres par défaut sont spécifiés. Pour arrêter les invites interactives, passez le drapeau --use-param-defaults au moment de l'invocation de la commande. Par exemple :

    $ tkn pipeline start build-and-deploy \
        -w name=shared-workspace,volumeClaimTemplateFile=https://raw.githubusercontent.com/openshift/pipelines-tutorial/pipelines-1.9/01_pipeline/03_persistent_volume_claim.yaml \
        -p deployment-name=pipelines-vote-api \
        -p git-url=https://github.com/openshift/pipelines-vote-api.git \
        -p IMAGE=image-registry.openshift-image-registry.svc:5000/pipelines-tutorial/pipelines-vote-api \
        --use-param-defaults
    Copy to Clipboard Toggle word wrap
  • Le champ version est ajouté dans la commande tkn task describe.
  • L'option permettant de sélectionner automatiquement des ressources telles que TriggerTemplate, ou TriggerBinding, ou ClusterTriggerBinding, ou Eventlistener, est ajoutée dans la commande describe, si une seule est présente.
  • Dans la commande tkn pr describe, une section pour les tâches ignorées a été ajoutée.
  • La prise en charge du site tkn clustertask logs a été ajoutée.
  • La fusion YAML et la variable de config.yaml sont supprimées. En outre, le fichier release.yaml peut désormais être utilisé plus facilement par des outils tels que kustomize et ytt.
  • La prise en charge des noms de ressources contenant le caractère point (".") a été ajoutée.
  • Le tableau hostAliases de la spécification PodTemplate est ajouté à l'annulation de la résolution des noms d'hôtes au niveau du pod. Il est obtenu en modifiant le fichier /etc/hosts.
  • Une variable $(tasks.status) est introduite pour accéder à l'état d'exécution global des tâches.
  • Un point d'entrée binaire pour Windows a été ajouté.

3.1.8.3. Fonctionnalités obsolètes

  • Dans les expressions when, la prise en charge des champs écrits en PascalCase est supprimée. Les expressions when ne prennent en charge que les champs écrits en minuscules.

    Note

    Si vous avez appliqué un pipeline avec des expressions when dans Tekton Pipelines v0.16 (Operator v1.2.x), vous devez le réappliquer.

  • Lorsque vous mettez à niveau Red Hat OpenShift Pipelines Operator vers v1.5, les tâches de cluster openshift-client et openshift-client-v-1-5-0 ont le paramètre SCRIPT. Cependant, le paramètre ARGS et la ressource git sont supprimés de la spécification de la tâche de cluster openshift-client. Il s'agit d'un changement radical, et seules les tâches de cluster qui n'ont pas de version spécifique dans le champ name de la ressource ClusterTask sont mises à niveau de manière transparente.

    Pour éviter que le pipeline ne s'interrompe, utilisez le paramètre SCRIPT après la mise à niveau, car il déplace les valeurs précédemment spécifiées dans le paramètre ARGS vers le paramètre SCRIPT de la tâche de cluster. Par exemple :

    ...
    - name: deploy
      params:
      - name: SCRIPT
        value: oc rollout status <deployment-name>
      runAfter:
        - build
      taskRef:
        kind: ClusterTask
        name: openshift-client
    ...
    Copy to Clipboard Toggle word wrap
  • Lorsque vous mettez à niveau Red Hat OpenShift Pipelines Operator v1.4 vers v1.5, les noms de profil dans lesquels la ressource personnalisée TektonConfig est installée changent désormais.

    Expand
    Tableau 3.3. Profils pour TektonConfig ressource personnalisée
    Profils dans les pipelines 1.5Profil correspondant dans Pipelines 1.4Installation des composants Tekton

    Tous (default profile)

    Tous (default profile)

    Pipelines, déclencheurs, modules complémentaires

    De base

    Défaut

    Pipelines, déclencheurs

    Lite

    De base

    Pipelines

    Note

    Si vous avez utilisé profile: all dans l'instance config de la ressource personnalisée TektonConfig, aucune modification n'est nécessaire dans la spécification de la ressource.

    Toutefois, si l'opérateur installé est dans le profil Default ou Basic avant la mise à niveau, vous devez modifier l'instance config de la ressource personnalisée TektonConfig après la mise à niveau. Par exemple, si la configuration était profile: basic avant la mise à niveau, assurez-vous qu'elle est profile: lite après la mise à niveau vers Pipelines 1.5.

  • Les champs disable-home-env-overwrite et disable-working-dir-overwrite sont désormais obsolètes et seront supprimés dans une prochaine version. Pour cette version, la valeur par défaut de ces drapeaux est fixée à true pour des raisons de compatibilité ascendante.

    Note

    Dans la prochaine version (Red Hat OpenShift Pipelines 1.6), la variable d'environnement HOME ne sera pas automatiquement définie à /tekton/home, et le répertoire de travail par défaut ne sera pas défini à /workspace pour les exécutions de tâches. Ces valeurs par défaut entrent en conflit avec toute valeur définie par l'image Dockerfile de l'étape.

  • Les champs ServiceType et podTemplate sont supprimés de la spécification EventListener.
  • Le compte de service du contrôleur ne demande plus l'autorisation de lister et de surveiller les espaces de noms à l'échelle du cluster.
  • Le statut de la ressource EventListener est assorti d'une nouvelle condition appelée Ready.

    Note

    À l'avenir, les autres conditions d'état de la ressource EventListener seront supprimées au profit de la condition d'état Ready.

  • Les champs eventListener et namespace de la réponse EventListener sont obsolètes. Utilisez plutôt le champ eventListenerUID.
  • Le champ replicas est obsolète dans la spécification EventListener. Le champ spec.replicas est déplacé vers spec.resources.kubernetesResource.replicas dans la spécification KubernetesResource.

    Note

    Le champ replicas sera supprimé dans une prochaine version.

  • L'ancienne méthode de configuration des intercepteurs de base est obsolète. Cependant, elle continue de fonctionner jusqu'à ce qu'elle soit supprimée dans une prochaine version. À la place, les intercepteurs d'une ressource Trigger sont désormais configurés à l'aide d'une nouvelle syntaxe basée sur ref et params. Le webhook par défaut qui en résulte passe automatiquement de l'ancienne syntaxe à la nouvelle syntaxe pour les nouveaux déclencheurs.
  • Utilisez rbac.authorization.k8s.io/v1 au lieu de l'ancien rbac.authorization.k8s.io/v1beta1 pour la ressource ClusterRoleBinding.
  • Dans les rôles de grappe, l'accès en écriture à l'échelle de la grappe à des ressources telles que serviceaccounts, secrets, configmaps, et limitranges est supprimé. En outre, l'accès aux ressources telles que deployments, statefulsets, et deployment/finalizers est supprimé pour l'ensemble de la grappe.
  • La définition de la ressource personnalisée image dans le groupe caching.internal.knative.dev n'est plus utilisée par Tekton et est exclue de cette version.

3.1.8.4. Problèmes connus

  • La tâche cluster git-cli est construite à partir de l'image de base alpine/git, qui attend /root comme répertoire personnel de l'utilisateur. Cependant, cela n'est pas explicitement défini dans la tâche de cluster git-cli.

    Dans Tekton, le répertoire d'accueil par défaut est remplacé par /tekton/home à chaque étape d'une tâche, sauf indication contraire. Cet écrasement de la variable d'environnement $HOME de l'image de base entraîne l'échec de la tâche de cluster git-cli.

    Ce problème devrait être corrigé dans les prochaines versions. Pour Red Hat OpenShift Pipelines 1.5 et les versions antérieures, vous pouvez use any one of the following workarounds pour éviter l'échec de la tâche de cluster git-cli:

    • Définissez la variable d'environnement $HOME dans les étapes, afin qu'elle ne soit pas écrasée.

      1. [OPTIONNEL] Si vous avez installé Red Hat OpenShift Pipelines à l'aide de l'Opérateur, clonez la tâche de cluster git-cli dans une tâche séparée. Cette approche garantit que l'Opérateur n'écrase pas les modifications apportées à la tâche de cluster.
      2. Exécutez la commande oc edit clustertasks git-cli.
      3. Ajouter la variable d'environnement HOME au YAML de l'étape :

        ...
        steps:
          - name: git
            env:
            - name: HOME
              value: /root
            image: $(params.BASE_IMAGE)
            workingDir: $(workspaces.source.path)
        ...
        Copy to Clipboard Toggle word wrap
        Avertissement

        Pour Red Hat OpenShift Pipelines installé par l'Opérateur, si vous ne clonez pas la tâche de cluster git-cli dans une tâche séparée avant de modifier la variable d'environnement HOME, les modifications sont écrasées lors de la réconciliation de l'Opérateur.

    • Désactive l'écrasement de la variable d'environnement HOME dans la carte de configuration feature-flags.

      1. Exécutez la commande oc edit -n openshift-pipelines configmap feature-flags.
      2. Fixer la valeur de l'indicateur disable-home-env-overwrite à true.

        Avertissement
        • Si vous avez installé Red Hat OpenShift Pipelines à l'aide de l'Opérateur, les modifications sont écrasées lors de la réconciliation de l'Opérateur.
        • La modification de la valeur par défaut de l'indicateur disable-home-env-overwrite peut perturber d'autres tâches et des tâches en grappe, car elle modifie le comportement par défaut de toutes les tâches.
    • Utilisez un compte de service différent pour la tâche de cluster git-cli, car l'écrasement de la variable d'environnement HOME se produit lorsque le compte de service par défaut pour les pipelines est utilisé.

      1. Créer un nouveau compte de service.
      2. Liez votre secret Git au compte de service que vous venez de créer.
      3. Utiliser le compte de service lors de l'exécution d'une tâche ou d'un pipeline.
  • Sur IBM Power Systems, IBM Z et LinuxONE, la tâche s2i-dotnet cluster et la commande tkn hub ne sont pas prises en charge.
  • Lorsque vous exécutez des tâches de cluster Maven et Jib-Maven, l'image de conteneur par défaut n'est prise en charge que sur l'architecture Intel (x86). Par conséquent, les tâches échoueront sur les clusters IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x). Pour contourner ce problème, vous pouvez spécifier une image personnalisée en définissant la valeur du paramètre MAVEN_IMAGE sur maven:3.6.3-adoptopenjdk-11.

3.1.8.5. Problèmes corrigés

  • Les expressions when dans les tâches dag ne sont pas autorisées à spécifier la variable de contexte accédant à l'état d'exécution ($(tasks.<pipelineTask>.status)) d'une autre tâche.
  • Utilisez les UID des propriétaires plutôt que les noms des propriétaires, car cela permet d'éviter les conditions de course créées par la suppression d'un PVC volumeClaimTemplate, dans les situations où une ressource PipelineRun est rapidement supprimée puis recréée.
  • Un nouveau fichier Docker est ajouté pour pullrequest-init pour l'image build-base déclenchée par des utilisateurs non root.
  • Lorsqu'un pipeline ou une tâche est exécuté avec l'option -f et que le param dans sa définition n'a pas de type défini, une erreur de validation est générée au lieu de l'échec silencieux du pipeline ou de l'exécution de la tâche.
  • Pour les commandes tkn start [task | pipeline | clustertask], la description de l'indicateur --workspace est désormais cohérente.
  • Lors de l'analyse des paramètres, si un tableau vide est rencontré, l'aide interactive correspondante est affichée sous la forme d'une chaîne vide.

Red Hat OpenShift Pipelines General Availability (GA) 1.4 est désormais disponible sur OpenShift Container Platform 4.7.

Note

En plus des canaux stable et preview Operator, Red Hat OpenShift Pipelines Operator 1.4.0 est livré avec les canaux dépréciés ocp-4.6, ocp-4.5, et ocp-4.4. Ces canaux dépréciés et leur prise en charge seront supprimés dans la prochaine version de Red Hat OpenShift Pipelines.

3.1.9.1. Matrice de compatibilité et de soutien

Certaines fonctionnalités de cette version sont actuellement en avant-première technologique. Ces fonctionnalités expérimentales ne sont pas destinées à être utilisées en production.

Dans le tableau, les caractéristiques sont marquées par les statuts suivants :

TP

Avant-première technologique

GA

Disponibilité générale

Notez l'étendue de l'assistance suivante sur le portail client de Red Hat pour ces fonctionnalités :

Expand
Tableau 3.4. Matrice de compatibilité et de soutien
FonctionnalitéVersionStatut de soutien

Pipelines

0.22

GA

CLI

0.17

GA

Catalogue

0.22

GA

Déclencheurs

0.12

TP

Ressources en gazoducs

-

TP

Pour toute question ou commentaire, vous pouvez envoyer un courriel à l'équipe produit à l'adresse pipelines-interest@redhat.com.

3.1.9.2. Nouvelles fonctionnalités

En plus des corrections et des améliorations de la stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.4.

  • Les tâches personnalisées présentent les améliorations suivantes :

    • Les résultats du pipeline peuvent désormais faire référence aux résultats produits par les tâches personnalisées.
    • Les tâches personnalisées peuvent désormais utiliser des espaces de travail, des comptes de service et des modèles de pods pour créer des tâches personnalisées plus complexes.
  • La tâche finally présente les améliorations suivantes :

    • Les expressions when sont prises en charge dans les tâches finally, ce qui permet une exécution gardée efficace et une réutilisation améliorée des tâches.
    • Une tâche finally peut être configurée pour consommer les résultats de n'importe quelle tâche au sein du même pipeline.

      Note

      La prise en charge des expressions when et des tâches finally n'est pas disponible dans la console Web d'OpenShift Container Platform 4.7.

  • La prise en charge de plusieurs secrets du type dockercfg ou dockerconfigjson a été ajoutée pour l'authentification au moment de l'exécution.
  • La fonctionnalité de prise en charge de la vérification éparse avec la tâche git-clone a été ajoutée. Cela vous permet de ne cloner qu'un sous-ensemble du référentiel en tant que copie locale et de limiter la taille des référentiels clonés.
  • Vous pouvez créer des exécutions de pipeline dans un état d'attente sans les démarrer. Dans les clusters fortement sollicités, cela permet aux opérateurs de contrôler l'heure de démarrage des opérations de pipeline.
  • Veillez à définir manuellement la variable d'environnement SYSTEM_NAMESPACE pour le contrôleur ; elle était auparavant définie par défaut.
  • Un utilisateur non-root est maintenant ajouté à l'image build-base de pipelines afin que git-init puisse cloner des dépôts en tant qu'utilisateur non-root.
  • La prise en charge de la validation des dépendances entre les ressources résolues avant le début de l'exécution d'un pipeline a été ajoutée. Toutes les variables de résultat du pipeline doivent être valides, et les espaces de travail optionnels d'un pipeline ne peuvent être transmis qu'aux tâches qui s'y attendent pour que le pipeline commence à fonctionner.
  • Le contrôleur et le webhook s'exécutent en tant que groupe non root, et leurs capacités superflues ont été supprimées pour les rendre plus sûrs.
  • Vous pouvez utiliser la commande tkn pr logs pour voir les flux de journaux pour les exécutions de tâches répétées.
  • Vous pouvez utiliser l'option --clustertask de la commande tkn tr delete pour supprimer toutes les exécutions de tâches associées à une tâche de cluster particulière.
  • La possibilité d'utiliser le service Knative avec la ressource EventListener est ajoutée par l'introduction d'un nouveau champ customResource.
  • Un message d'erreur s'affiche lorsque la charge utile d'un événement n'utilise pas le format JSON.
  • Les intercepteurs de contrôle de source tels que GitLab, BitBucket et GitHub utilisent désormais la nouvelle interface de type InterceptorRequest ou InterceptorResponse.
  • Une nouvelle fonction CEL marshalJSON est implémentée pour vous permettre d'encoder un objet JSON ou un tableau en une chaîne de caractères.
  • Un gestionnaire HTTP pour servir le CEL et les intercepteurs centraux de contrôle de source a été ajouté. Il regroupe quatre intercepteurs principaux dans un seul serveur HTTP qui est déployé dans l'espace de noms tekton-pipelines. L'objet EventListener transmet les événements à l'intercepteur via le serveur HTTP. Chaque intercepteur est disponible sur un chemin différent. Par exemple, l'intercepteur CEL est disponible sur le chemin /cel.
  • La contrainte de contexte de sécurité (SCC) pipelines-scc est utilisée avec le compte de service par défaut pipeline pour les pipelines. Ce nouveau compte de service est similaire à anyuid, mais avec une différence mineure telle que définie dans le YAML pour SCC de OpenShift Container Platform 4.7 :

    fsGroup:
      type: MustRunAs
    Copy to Clipboard Toggle word wrap

3.1.9.3. Fonctionnalités obsolètes

  • Le sous-type build-gcs dans le stockage des ressources du pipeline et l'image gcs-fetcher ne sont pas pris en charge.
  • Dans le champ taskRun des tâches en grappe, l'étiquette tekton.dev/task est supprimée.
  • Pour les webhooks, la valeur v1beta1 correspondant au champ admissionReviewVersions est supprimée.
  • L'image d'aide creds-init pour la construction et le déploiement est supprimée.
  • Dans la spécification et la liaison des déclencheurs, le champ obsolète template.name est supprimé au profit de template.ref. Vous devez mettre à jour toutes les définitions de eventListener pour utiliser le champ ref.

    Note

    La mise à niveau d'OpenShift Pipelines 1.3.x et des versions antérieures vers OpenShift Pipelines 1.4.0 interrompt les auditeurs d'événements en raison de l'indisponibilité du champ template.name. Dans ce cas, utilisez OpenShift Pipelines 1.4.1 pour bénéficier du champ template.name restauré.

  • Pour les ressources/objets personnalisés EventListener, les champs PodTemplate et ServiceType sont obsolètes au profit de Resource.
  • Le style de spécification "embedded bindings", obsolète, a été supprimé.
  • Le champ spec est supprimé du champ triggerSpecBinding.
  • La représentation de l'ID de l'événement passe d'une chaîne aléatoire de cinq caractères à un UUID.

3.1.9.4. Problèmes connus

  • Sur le site Developer, les fonctionnalités de métriques et de déclencheurs de pipeline ne sont disponibles que sur OpenShift Container Platform 4.7.6 ou les versions ultérieures.
  • Sur les systèmes IBM Power, IBM Z et LinuxONE, la commande tkn hub n'est pas prise en charge.
  • Lorsque vous exécutez les tâches Maven et Jib Maven sur des clusters IBM Power Systems (ppc64le), IBM Z et LinuxONE (s390x), définissez la valeur du paramètre MAVEN_IMAGE sur maven:3.6.3-adoptopenjdk-11.
  • Les déclencheurs génèrent une erreur résultant d'une mauvaise gestion du format JSON, si vous avez la configuration suivante dans la liaison du déclencheur :

    params:
      - name: github_json
        value: $(body)
    Copy to Clipboard Toggle word wrap

    Pour résoudre le problème :

    • Si vous utilisez les déclencheurs v0.11.0 et plus, utilisez la fonction marshalJSON CEL, qui prend un objet ou un tableau JSON et renvoie l'encodage JSON de cet objet ou de ce tableau sous la forme d'une chaîne.
    • Si vous utilisez une version plus ancienne des déclencheurs, ajoutez l'annotation suivante dans le modèle de déclencheur :

      annotations:
        triggers.tekton.dev/old-escape-quotes: "true"
      Copy to Clipboard Toggle word wrap
  • Lors de la mise à jour d'OpenShift Pipelines 1.3.x vers 1.4.x, vous devez recréer les routes.

3.1.9.5. Problèmes corrigés

  • Auparavant, l'étiquette tekton.dev/task avait été supprimée de l'exécution des tâches en grappe et l'étiquette tekton.dev/clusterTask avait été introduite. Les problèmes résultant de ce changement sont résolus en corrigeant les commandes clustertask describe et delete. De plus, la fonction lastrun pour les tâches est modifiée, afin de résoudre le problème de l'étiquette tekton.dev/task appliquée aux tâches et aux tâches en grappe dans les anciennes versions des pipelines.
  • Lors d'une opération interactive tkn pipeline start pipelinename, un PipelineResource est créé de manière interactive. La commande tkn p start imprime l'état de la ressource si l'état de la ressource n'est pas nil.
  • Auparavant, l'étiquette tekton.dev/task=name était supprimée des exécutions de tâches créées à partir de tâches en grappe. Ce correctif modifie la commande tkn clustertask start avec l'indicateur --last pour vérifier la présence de l'étiquette tekton.dev/task=name dans les exécutions de tâches créées.
  • Lorsqu'une tâche utilise une spécification de tâche en ligne, l'exécution de la tâche correspondante est désormais intégrée dans le pipeline lorsque vous exécutez la commande tkn pipeline describe, et le nom de la tâche est renvoyé comme étant intégré.
  • La commande tkn version permet d'afficher la version de l'outil CLI Tekton installé, sans kubeConfiguration namespace configuré ni accès à un cluster.
  • Si un argument est inattendu ou si plusieurs arguments sont utilisés, la commande tkn completion génère une erreur.
  • Auparavant, les exécutions de pipeline avec les tâches finally imbriquées dans une spécification de pipeline perdaient ces tâches finally, lorsqu'elles étaient converties en version v1alpha1 et restaurées en version v1beta1. Cette erreur survenant lors de la conversion a été corrigée afin d'éviter toute perte potentielle de données. Les exécutions de pipeline avec les tâches finally imbriquées dans une spécification de pipeline sont désormais sérialisées et stockées sur la version alpha, pour être désérialisées ultérieurement.
  • Auparavant, il y avait une erreur dans la génération de pods lorsqu'un compte de service avait le champ secrets comme {}. L'exécution de la tâche échouait avec CouldntGetTask parce que la requête GET avec un nom secret vide renvoyait une erreur, indiquant que le nom de la ressource pouvait ne pas être vide. Ce problème est corrigé en évitant d'utiliser un nom secret vide dans la requête GET kubeclient.
  • Les pipelines avec les versions de l'API v1beta1 peuvent maintenant être demandés avec la version v1alpha1, sans perdre les tâches finally. L'application de la version v1alpha1 renvoyée stockera la ressource en tant que v1beta1, la section finally étant rétablie dans son état d'origine.
  • Auparavant, un champ selfLink non défini dans le contrôleur provoquait une erreur dans les clusters Kubernetes v1.20. Comme solution temporaire, le champ source CloudEvent est défini à une valeur qui correspond à l'URI source actuel, sans la valeur du champ selfLink auto-remplie.
  • Auparavant, un nom secret comportant des points, tel que gcr.io, entraînait l'échec de la création d'une exécution de tâche. Cela était dû au fait que le nom secret était utilisé en interne dans le cadre d'un nom de montage de volume. Le nom de montage du volume est conforme à l'étiquette DNS RFC1123 et interdit les points dans le nom. Ce problème est résolu en remplaçant le point par un tiret, ce qui permet d'obtenir un nom lisible.
  • Les variables contextuelles sont désormais validées dans les tâches finally.
  • Auparavant, lorsque l'outil de rapprochement des tâches recevait une tâche qui n'avait pas fait l'objet d'une mise à jour de statut contenant le nom du module qu'elle avait créé, l'outil de rapprochement des tâches répertoriait les modules associés à la tâche. Il utilise les étiquettes de l'exécution de la tâche, qui ont été propagées dans le module, pour trouver le module. La modification de ces étiquettes pendant l'exécution de la tâche a eu pour effet que le code n'a pas trouvé le module existant. Par conséquent, des modules en double ont été créés. Ce problème est résolu en modifiant le réconciliateur de tâches pour qu'il n'utilise que l'étiquette tekton.dev/taskRun contrôlée par Tekton lors de la recherche de la nacelle.
  • Auparavant, lorsqu'un pipeline acceptait un espace de travail optionnel et le transmettait à une tâche du pipeline, l'outil de réconciliation de l'exécution du pipeline s'arrêtait avec une erreur si l'espace de travail n'était pas fourni, même si une liaison d'espace de travail manquante est un état valide pour un espace de travail optionnel. Ce problème est corrigé en s'assurant que le réconciliateur d'exécution de pipeline n'échoue pas à créer une exécution de tâche, même si un espace de travail optionnel n'est pas fourni.
  • L'ordre trié des statuts d'étape correspond à l'ordre des conteneurs d'étape.
  • Auparavant, le statut d'exécution de la tâche était défini sur unknown lorsqu'un module rencontrait la raison CreateContainerConfigError, ce qui signifiait que la tâche et le pipeline s'exécutaient jusqu'à ce que le module s'arrête. Ce problème est résolu en définissant le statut d'exécution de la tâche sur false, de sorte que la tâche soit considérée comme ayant échoué lorsque le module rencontre la raison CreateContainerConfigError.
  • Auparavant, les résultats du pipeline étaient résolus lors de la première réconciliation, après l'achèvement de l'exécution du pipeline. Cela pouvait faire échouer la résolution et entraîner l'écrasement de la condition Succeeded de l'exécution du pipeline. En conséquence, les informations sur l'état final étaient perdues, ce qui risquait de perturber les services qui surveillaient les conditions de l'exécution du pipeline. Ce problème est résolu en déplaçant la résolution des résultats du pipeline à la fin d'une réconciliation, lorsque le pipeline est placé dans une condition Succeeded ou True.
  • La variable d'état d'exécution est désormais validée. Cela évite de valider les résultats de la tâche tout en validant les variables de contexte pour accéder à l'état d'exécution.
  • Auparavant, un résultat de pipeline contenant une variable non valide était ajouté à l'exécution du pipeline avec l'expression littérale de la variable intacte. Il était donc difficile d'évaluer si les résultats étaient correctement remplis. Ce problème est résolu en filtrant les résultats de l'exécution de la chaîne de production qui font référence à des exécutions de tâches qui ont échoué. Désormais, un résultat de pipeline qui contient une variable non valide ne sera pas du tout émis par le pipeline.
  • La commande tkn eventlistener describe a été corrigée pour éviter les plantages en l'absence de modèle. Elle affiche également les détails des références des déclencheurs.
  • Les mises à niveau d'OpenShift Pipelines 1.3.x et des versions antérieures vers OpenShift Pipelines 1.4.0 interrompent les auditeurs d'événements en raison de l'indisponibilité de template.name. Dans OpenShift Pipelines 1.4.1, template.name a été restauré pour éviter d'interrompre les auditeurs d'événements dans les déclencheurs.
  • Dans OpenShift Pipelines 1.4.1, la ressource personnalisée ConsoleQuickStart a été mise à jour pour s'aligner sur les capacités et le comportement d'OpenShift Container Platform 4.7.

3.1.10.1. Nouvelles fonctionnalités

Red Hat OpenShift Pipelines Technology Preview (TP) 1.3 est maintenant disponible sur OpenShift Container Platform 4.7. Red Hat OpenShift Pipelines TP 1.3 est mis à jour pour prendre en charge :

  • Tekton Pipelines 0.19.0
  • Tekton tkn CLI 0.15.0
  • Tekton Triggers 0.10.2
  • tâches en grappe basées sur le catalogue Tekton 0.19.0
  • IBM Power Systems sur OpenShift Container Platform 4.7
  • IBM Z et LinuxONE sur OpenShift Container Platform 4.7

En plus des corrections et des améliorations de stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.3.

3.1.10.1.1. Pipelines
  • Les tâches qui construisent des images, telles que les tâches S2I et Buildah, émettent désormais une URL de l'image construite qui inclut l'image SHA.
  • Les conditions dans les tâches du pipeline qui font référence à des tâches personnalisées ne sont pas autorisées car la définition des ressources personnalisées (CRD) de Condition a été supprimée.
  • L'expansion des variables est désormais ajoutée dans le CRD Task pour les champs suivants : spec.steps[].imagePullPolicy et spec.sidecar[].imagePullPolicy.
  • Vous pouvez désactiver le mécanisme d'authentification intégré dans Tekton en définissant le drapeau de fonctionnalité disable-creds-init sur true.
  • Résolu lorsque les expressions sont maintenant listées dans les sections Skipped Tasks et Task Runs dans le champ Status de la configuration PipelineRun.
  • La commande git init peut désormais cloner des sous-modules récursifs.
  • L'auteur d'un CR Task peut désormais spécifier un délai pour une étape dans la spécification Task.
  • Vous pouvez maintenant baser l'image du point d'entrée sur l'image distroless/static:nonroot et lui donner un mode pour se copier vers la destination, sans dépendre de la présence de la commande cp dans l'image de base.
  • Vous pouvez désormais utiliser l'indicateur de configuration require-git-ssh-secret-known-hosts pour interdire l'omission d'hôtes connus dans le secret SSH de Git. Lorsque la valeur de l'indicateur est true, vous devez inclure le champ known_host dans le secret SSH de Git. La valeur par défaut de l'indicateur est false.
  • Le concept d'espaces de travail optionnels est désormais introduit. Une tâche ou un pipeline peut déclarer un espace de travail optionnel et modifier conditionnellement son comportement en fonction de sa présence. Une tâche ou un pipeline peut également omettre cet espace de travail, modifiant ainsi le comportement de la tâche ou du pipeline. Les espaces de travail par défaut de l'exécution de la tâche ne sont pas ajoutés à la place d'un espace de travail optionnel omis.
  • L'initialisation des identifiants dans Tekton détecte désormais un identifiant SSH utilisé avec une URL non-SSH, et vice versa dans les ressources du pipeline Git, et enregistre un avertissement dans les conteneurs d'étapes.
  • Le contrôleur d'exécution des tâches émet un avertissement si l'affinité spécifiée par le modèle de pod est remplacée par l'assistant d'affinité.
  • Le réconciliateur d'exécution des tâches enregistre désormais des mesures pour les événements du nuage qui sont émis une fois l'exécution d'une tâche terminée. Cela inclut les tentatives.
3.1.10.1.2. L'interface de programmation des pipelines
  • La prise en charge de --no-headers flag est maintenant ajoutée aux commandes suivantes : tkn condition list,tkn triggerbinding list,tkn eventlistener list,tkn clustertask list, tkn clustertriggerbinding list.
  • Lorsqu'elles sont utilisées ensemble, les options --last ou --use sont prioritaires sur les options --prefix-name et --timeout.
  • La commande tkn eventlistener logs a été ajoutée pour afficher les journaux de EventListener.
  • Les commandes de tekton hub sont désormais intégrées dans le CLI de tkn.
  • L'option --nocolour est désormais remplacée par --no-color.
  • L'indicateur --all-namespaces est ajouté aux commandes suivantes : tkn triggertemplate list, tkn condition list, tkn triggerbinding list, tkn eventlistener list.
3.1.10.1.3. Déclencheurs
  • Vous pouvez maintenant spécifier vos informations sur les ressources dans le modèle EventListener.
  • Il est désormais obligatoire pour les comptes de service EventListener d'avoir les verbes list et watch, en plus du verbe get pour toutes les ressources de déclenchement. Cela vous permet d'utiliser Listers pour récupérer des données des ressources EventListener, Trigger, TriggerBinding, TriggerTemplate et ClusterTriggerBinding. Vous pouvez utiliser cette fonctionnalité pour créer un objet Sink au lieu de spécifier plusieurs informateurs, et faire directement des appels au serveur API.
  • Une nouvelle interface Interceptor a été ajoutée pour prendre en charge les corps d'événements d'entrée immuables. Les intercepteurs peuvent désormais ajouter des données ou des champs à un nouveau champ extensions et ne peuvent pas modifier les corps d'entrée, ce qui les rend immuables. L'intercepteur CEL utilise cette nouvelle interface Interceptor.
  • Un champ namespaceSelector est ajouté à la ressource EventListener. Il permet de spécifier les espaces de noms à partir desquels la ressource EventListener peut récupérer l'objet Trigger pour traiter les événements. Pour utiliser le champ namespaceSelector, le compte de service de la ressource EventListener doit avoir un rôle de cluster.
  • La ressource EventListener prend désormais en charge la connexion sécurisée de bout en bout avec le module eventlistener.
  • The escaping parameters behavior in the TriggerTemplates resource by replacing " with \" is now removed.
  • Un nouveau champ resources, prenant en charge les ressources Kubernetes, est introduit dans le cadre de la spécification EventListener.
  • Une nouvelle fonctionnalité pour l'intercepteur CEL, avec la prise en charge des majuscules et minuscules des chaînes ASCII, a été ajoutée.
  • Vous pouvez intégrer des ressources TriggerBinding en utilisant les champs name et value dans un déclencheur ou un récepteur d'événements.
  • La configuration de PodSecurityPolicy est mise à jour pour fonctionner dans des environnements restreints. Elle garantit que les conteneurs doivent être exécutés en tant que non-root. En outre, le contrôle d'accès basé sur les rôles pour l'utilisation de la politique de sécurité du pod est déplacé de l'échelle du cluster à l'échelle de l'espace de noms. Cela garantit que les déclencheurs ne peuvent pas utiliser d'autres politiques de sécurité de pods qui ne sont pas liées à un espace de noms.
  • La prise en charge des modèles de déclenchement intégrés a été ajoutée. Vous pouvez utiliser le champ name pour faire référence à un modèle incorporé ou incorporer le modèle dans le champ spec.

3.1.10.2. Fonctionnalités obsolètes

  • Les modèles de pipeline qui utilisent les CRD PipelineResources sont désormais obsolètes et seront supprimés dans une prochaine version.
  • Le champ template.name est obsolète en faveur du champ template.ref et sera supprimé dans une prochaine version.
  • L'abréviation -c pour la commande --check a été supprimée. En outre, les drapeaux globaux tkn sont ajoutés à la commande version.

3.1.10.3. Problèmes connus

  • Les superpositions CEL ajoutent des champs à une nouvelle fonction de niveau supérieur extensions, au lieu de modifier le corps de l'événement entrant. Les ressources TriggerBinding peuvent accéder aux valeurs de cette nouvelle fonction extensions à l'aide de la syntaxe $(extensions.<key>). Mettez à jour votre liaison pour utiliser la syntaxe $(extensions.<key>) au lieu de la syntaxe $(body.<overlay-key>).
  • The escaping parameters behavior by replacing " with \" is now removed. If you need to retain the old escaping parameters behavior add the tekton.dev/old-escape-quotes: true" annotation to your TriggerTemplate specification.
  • Vous pouvez intégrer des ressources TriggerBinding en utilisant les champs name et value à l'intérieur d'un déclencheur ou d'un récepteur d'événements. Toutefois, vous ne pouvez pas spécifier les champs name et ref pour une seule liaison. Utilisez le champ ref pour faire référence à une ressource TriggerBinding et le champ name pour les liaisons intégrées.
  • Un intercepteur ne peut pas tenter de référencer une ressource secret en dehors de l'espace de noms d'une ressource EventListener. Vous devez inclure des secrets dans l'espace de noms de la ressource `EventListener`.
  • Dans les déclencheurs 0.9.0 et ultérieurs, si un paramètre TriggerBinding basé sur le corps ou l'en-tête est manquant ou malformé dans la charge utile d'un événement, les valeurs par défaut sont utilisées au lieu d'afficher une erreur.
  • Les tâches et les pipelines créés avec des objets WhenExpression avec Tekton Pipelines 0.16.x doivent être réappliqués pour fixer leurs annotations JSON.
  • Lorsqu'un pipeline accepte un espace de travail optionnel et le donne à une tâche, l'exécution du pipeline se bloque si l'espace de travail n'est pas fourni.
  • Pour utiliser la tâche Buildah cluster dans un environnement déconnecté, assurez-vous que le fichier Docker utilise un flux d'images interne comme image de base, puis utilisez-le de la même manière que n'importe quelle tâche S2I cluster.

3.1.10.4. Problèmes corrigés

  • Les extensions ajoutées par un intercepteur CEL sont transmises aux intercepteurs de webhook en ajoutant le champ Extensions dans le corps de l'événement.
  • Le délai d'inactivité des lecteurs de journaux est désormais configurable à l'aide du champ LogOptions. Toutefois, le comportement par défaut, à savoir un délai d'attente de 10 secondes, est conservé.
  • La commande log ignore l'indicateur --follow lorsque l'exécution d'une tâche ou d'un pipeline est terminée, et lit les journaux disponibles au lieu des journaux en direct.
  • Les références aux ressources Tekton suivantes : EventListener, TriggerBinding, ClusterTriggerBinding, Condition, et TriggerTemplate sont désormais normalisées et rendues cohérentes dans tous les messages destinés aux utilisateurs dans les commandes tkn.
  • Auparavant, si vous lanciez une exécution de tâche ou de pipeline annulée avec les drapeaux --use-taskrun <canceled-task-run-name>, --use-pipelinerun <canceled-pipeline-run-name> ou --last, la nouvelle exécution était annulée. Ce bogue est maintenant corrigé.
  • La commande tkn pr desc a été améliorée afin de garantir qu'elle n'échoue pas en cas d'exécution d'un pipeline avec des conditions.
  • Lorsque vous supprimez une exécution de tâche à l'aide de la commande tkn tr delete avec l'option --task et qu'il existe une tâche de cluster portant le même nom, les exécutions de tâches de la tâche de cluster sont également supprimées. Pour contourner ce problème, filtrez les exécutions de tâches en utilisant le champ TaskRefKind.
  • La commande tkn triggertemplate describe n'affichait qu'une partie de la valeur apiVersion dans la sortie. Par exemple, seul triggers.tekton.dev était affiché au lieu de triggers.tekton.dev/v1alpha1. Ce bogue est maintenant corrigé.
  • Dans certaines conditions, le webhook ne parvenait pas à acquérir un bail et ne fonctionnait pas correctement. Ce bogue est maintenant corrigé.
  • Les pipelines avec des expressions when créés dans la version 0.16.3 peuvent maintenant être exécutés dans la version 0.17.1 et les versions ultérieures. Après une mise à jour, il n'est pas nécessaire de réappliquer les définitions de pipelines créées dans les versions précédentes, car les premières lettres des annotations, qu'elles soient en majuscules ou en minuscules, sont désormais prises en charge.
  • Par défaut, le champ leader-election-ha est maintenant activé pour la haute disponibilité. Lorsque l'indicateur du contrôleur disable-ha est défini sur true, il désactive la prise en charge de la haute disponibilité.
  • Les problèmes de duplication des événements cloud sont désormais résolus. Les événements cloud ne sont désormais envoyés que lorsqu'une condition modifie l'état, la raison ou le message.
  • Lorsqu'un nom de compte de service est absent d'une spécification PipelineRun ou TaskRun, le contrôleur utilise le nom de compte de service de la carte de configuration config-defaults. Si le nom du compte de service est également absent de la carte de configuration config-defaults, le contrôleur lui attribue désormais la valeur default dans la spécification.
  • La validation de la compatibilité avec l'assistant d'affinité est désormais prise en charge lorsque la même revendication de volume persistant est utilisée pour plusieurs espaces de travail, mais avec des sous-chemins différents.

3.1.11.1. Nouvelles fonctionnalités

Red Hat OpenShift Pipelines Technology Preview (TP) 1.2 est maintenant disponible sur OpenShift Container Platform 4.6. Red Hat OpenShift Pipelines TP 1.2 est mis à jour pour prendre en charge :

  • Tekton Pipelines 0.16.3
  • Tekton tkn CLI 0.13.1
  • Tekton Triggers 0.8.1
  • tâches en grappe basées sur le catalogue Tekton 0.16
  • IBM Power Systems sur OpenShift Container Platform 4.6
  • IBM Z et LinuxONE sur OpenShift Container Platform 4.6

En plus des corrections et des améliorations de stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.2.

3.1.11.1.1. Pipelines
  • Cette version de Red Hat OpenShift Pipelines ajoute la prise en charge d'une installation déconnectée.

    Note

    Les installations dans des environnements restreints ne sont actuellement pas prises en charge sur les systèmes IBM Power, IBM Z et LinuxONE.

  • Vous pouvez désormais utiliser le champ when, au lieu de la ressource conditions, pour exécuter une tâche uniquement lorsque certains critères sont remplis. Les composants clés des ressources WhenExpression sont Input, Operator et Values. Si toutes les expressions when évaluent True, la tâche est exécutée. Si l'une des expressions when évalue False, la tâche est ignorée.
  • Les statuts des étapes sont désormais mis à jour en cas d'annulation ou de dépassement du délai d'exécution d'une tâche.
  • La prise en charge de Git Large File Storage (LFS) est désormais disponible pour construire l'image de base utilisée par git-init.
  • Vous pouvez désormais utiliser le champ taskSpec pour spécifier des métadonnées, telles que des étiquettes et des annotations, lorsqu'une tâche est intégrée dans un pipeline.
  • Les événements "cloud" sont désormais pris en charge par le pipeline. Les tentatives avec backoff sont désormais activées pour les événements cloud envoyés par la ressource pipeline d'événements cloud.
  • Vous pouvez désormais définir une configuration Workspace par défaut pour tout espace de travail qu'une ressource Task déclare, mais qu'une ressource TaskRun ne fournit pas explicitement.
  • L'interpolation des variables de l'espace de noms est prise en charge pour l'espace de noms PipelineRun et l'espace de noms TaskRun.
  • La validation des objets TaskRun est désormais ajoutée pour vérifier qu'il n'y a pas plus d'un espace de travail de réclamation de volume persistant utilisé lorsqu'une ressource TaskRun est associée à un assistant d'affinité. Si plus d'un espace de travail de réclamation de volume persistant est utilisé, l'exécution de la tâche échoue avec une condition TaskRunValidationFailed. Notez que par défaut, l'assistant Affinity est désactivé dans Red Hat OpenShift Pipelines, vous devrez donc activer l'assistant pour l'utiliser.
3.1.11.1.2. L'interface de programmation des pipelines
  • Les commandes tkn task describe, tkn taskrun describe, tkn clustertask describe, tkn pipeline describe, et tkn pipelinerun describe maintenant :

    • Sélectionne automatiquement les ressources Task, TaskRun, ClusterTask, Pipeline et PipelineRun, respectivement, si une seule d'entre elles est présente.
    • Affichez les résultats des ressources Task, TaskRun, ClusterTask, Pipeline et PipelineRun dans leurs sorties respectives.
    • Afficher les espaces de travail déclarés dans les ressources Task, TaskRun, ClusterTask, Pipeline et PipelineRun dans leurs sorties, respectivement.
  • Vous pouvez désormais utiliser l'option --prefix-name avec la commande tkn clustertask start pour spécifier un préfixe pour le nom d'une exécution de tâche.
  • La commande tkn clustertask start est désormais compatible avec le mode interactif.
  • Vous pouvez désormais spécifier les propriétés PodTemplate prises en charge par les pipelines à l'aide de définitions de fichiers locaux ou distants pour les objets TaskRun et PipelineRun.
  • Vous pouvez maintenant utiliser l'option --use-params-defaults avec la commande tkn clustertask start pour utiliser les valeurs par défaut définies dans la configuration ClusterTask et créer l'exécution de la tâche.
  • Le drapeau --use-param-defaults de la commande tkn pipeline start invite désormais à passer en mode interactif si les valeurs par défaut n'ont pas été spécifiées pour certains paramètres.
3.1.11.1.3. Déclencheurs
  • La fonction du langage d'expression commun (CEL) appelée parseYAML a été ajoutée pour analyser une chaîne YAML en une carte de chaînes.
  • Les messages d'erreur pour l'analyse des expressions CEL ont été améliorés pour les rendre plus granulaires lors de l'évaluation des expressions et lors de l'analyse du corps du crochet pour créer l'environnement d'évaluation.
  • La prise en charge du marshaling des valeurs booléennes et des cartes est désormais possible si elles sont utilisées comme valeurs d'expressions dans un mécanisme de recouvrement CEL.
  • Les champs suivants ont été ajoutés à l'objet EventListener:

    • Le champ replicas permet à l'auditeur d'événements d'exécuter plus d'un pod en spécifiant le nombre de répliques dans le fichier YAML.
    • Le champ NodeSelector permet à l'objet EventListener de programmer le pod d'écoute d'événements sur un nœud spécifique.
  • Les intercepteurs de webhook peuvent désormais analyser l'en-tête EventListener-Request-URL pour extraire les paramètres de l'URL de la requête originale gérée par l'écouteur d'événements.
  • Les annotations de l'écouteur d'événements peuvent maintenant être propagées au déploiement, aux services et aux autres pods. Notez que les annotations personnalisées sur les services ou le déploiement sont écrasées, et doivent donc être ajoutées aux annotations de l'écouteur d'événements afin qu'elles soient propagées.
  • La validation correcte des répliques dans la spécification EventListener est maintenant disponible pour les cas où un utilisateur spécifie les valeurs spec.replicas comme negative ou zero.
  • Vous pouvez désormais spécifier l'objet TriggerCRD dans la spécification EventListener en tant que référence en utilisant le champ TriggerRef pour créer l'objet TriggerCRD séparément et le lier ensuite dans la spécification EventListener.
  • La validation et les valeurs par défaut de l'objet TriggerCRD sont désormais disponibles.

3.1.11.2. Fonctionnalités obsolètes

  • $(params) sont désormais supprimés de la ressource triggertemplate et remplacés par $(tt.params) afin d'éviter toute confusion entre les paramètres des ressources resourcetemplate et triggertemplate.
  • La référence ServiceAccount du niveau d'authentification optionnel basé sur EventListenerTrigger est passée d'une référence d'objet à une chaîne ServiceAccountName. Cela garantit que la référence ServiceAccount se trouve dans le même espace de noms que l'objet EventListenerTrigger.
  • La définition de ressource personnalisée (CRD) Conditions est désormais obsolète ; utilisez la CRD WhenExpressions à la place.
  • L'objet PipelineRun.Spec.ServiceAccountNames est obsolète et remplacé par l'objet PipelineRun.Spec.TaskRunSpec[].ServiceAccountName.

3.1.11.3. Problèmes connus

  • Cette version de Red Hat OpenShift Pipelines ajoute la prise en charge d'une installation déconnectée. Cependant, certaines images utilisées par les tâches de cluster doivent être mises en miroir pour qu'elles fonctionnent dans des clusters déconnectés.
  • Les pipelines dans l'espace de noms openshift ne sont pas supprimés après la désinstallation de Red Hat OpenShift Pipelines Operator. Utilisez la commande oc delete pipelines -n openshift --all pour supprimer les pipelines.
  • La désinstallation de Red Hat OpenShift Pipelines Operator ne supprime pas les écouteurs d'événements.

    En guise de solution de contournement, supprimer les CRD EventListener et Pod:

    1. Modifier l'objet EventListener avec les finaliseurs foregroundDeletion:

      $ oc patch el/<eventlistener_name> -p '{"metadata":{"finalizers" :[\N-"foregroundDeletion"]}}' --type=merge
      Copy to Clipboard Toggle word wrap

      Par exemple :

      $ oc patch el/github-listener-interceptor -p '{"metadata":{"finalizers":["foregroundDeletion"]}}' --type=merge
      Copy to Clipboard Toggle word wrap
    2. Supprimer le CRD EventListener:

      $ oc patch crd/eventlisteners.triggers.tekton.dev -p '{"metadata":{"finalizers":[]}}' --type=merge
      Copy to Clipboard Toggle word wrap
  • Lorsque vous exécutez une tâche d'image de conteneur multiarchitecture sans spécification de commande sur un cluster IBM Power Systems (ppc64le) ou IBM Z (s390x), la ressource TaskRun échoue avec l'erreur suivante :

    Error executing command: fork/exec /bin/bash: exec format error
    Copy to Clipboard Toggle word wrap

    Comme solution de contournement, utilisez une image de conteneur spécifique à l'architecture ou spécifiez le résumé sha256 pour qu'il pointe vers l'architecture correcte. Pour obtenir le condensé sha256, entrez :

    $ skopeo inspect --raw <image_name>| jq '.manifests[] | select(.platform.architecture == "<architecture>") | .digest'
    Copy to Clipboard Toggle word wrap

3.1.11.4. Problèmes corrigés

  • Une validation syntaxique simple pour vérifier le filtre CEL, les superpositions dans le validateur Webhook et les expressions dans l'intercepteur a été ajoutée.
  • Les déclencheurs n'écrasent plus les annotations définies sur les objets de déploiement et de service sous-jacents.
  • Auparavant, un écouteur d'événements pouvait cesser d'accepter des événements. Ce correctif ajoute un délai d'inactivité de 120 secondes pour le puits EventListener afin de résoudre ce problème.
  • Auparavant, l'annulation de l'exécution d'un pipeline avec un état Failed(Canceled) donnait un message de réussite. Ce problème a été corrigé et un message d'erreur est désormais affiché.
  • La commande tkn eventlistener list fournit désormais l'état des récepteurs d'événements répertoriés, ce qui vous permet d'identifier facilement ceux qui sont disponibles.
  • Des messages d'erreur cohérents sont désormais affichés pour les commandes triggers list et triggers describe lorsque les déclencheurs ne sont pas installés ou lorsqu'une ressource ne peut être trouvée.
  • Auparavant, un grand nombre de connexions inactives s'accumulaient lors de la livraison d'événements dans le nuage. Le paramètre DisableKeepAlives: true a été ajouté à la configuration de cloudeventclient pour résoudre ce problème. Ainsi, une nouvelle connexion est établie pour chaque événement en nuage.
  • Auparavant, le code creds-init écrivait des fichiers vides sur le disque même si les informations d'identification d'un type donné n'étaient pas fournies. Ce correctif modifie le code creds-init pour qu'il écrive des fichiers uniquement pour les informations d'identification qui ont été effectivement montées à partir de secrets correctement annotés.

3.1.12.1. Nouvelles fonctionnalités

Red Hat OpenShift Pipelines Technology Preview (TP) 1.1 est maintenant disponible sur OpenShift Container Platform 4.5. Red Hat OpenShift Pipelines TP 1.1 est mis à jour pour prendre en charge :

  • Tekton Pipelines 0.14.3
  • Tekton tkn CLI 0.11.0
  • Tekton Triggers 0.6.1
  • tâches en grappe basées sur le catalogue Tekton 0.14

En plus des corrections et des améliorations de stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.1.

3.1.12.1.1. Pipelines
  • Les espaces de travail peuvent désormais être utilisés à la place des ressources de pipeline. Il est recommandé d'utiliser les espaces de travail dans OpenShift Pipelines, car les ressources de pipeline sont difficiles à déboguer, limitées dans leur portée et rendent les tâches moins réutilisables. Pour plus de détails sur les espaces de travail, voir la section Comprendre OpenShift Pipelines.
  • La prise en charge de l'espace de travail pour les modèles de demande en volume a été ajoutée :

    • Le modèle de demande de volume pour une exécution de pipeline et une exécution de tâche peut désormais être ajouté en tant que source de volume pour les espaces de travail. Le contrôleur tekton crée alors une demande de volume persistante (PVC) en utilisant le modèle qui est vu comme un PVC pour toutes les exécutions de tâches dans le pipeline. Ainsi, il n'est pas nécessaire de définir la configuration du PVC à chaque fois qu'il lie un espace de travail qui s'étend sur plusieurs tâches.
    • L'aide à la recherche du nom du PVC lorsqu'un modèle de demande de volume est utilisé comme source de volume est désormais disponible en utilisant la substitution de variable.
  • Soutien à l'amélioration des audits :

    • Le champ PipelineRun.Status contient désormais l'état de chaque tâche exécutée dans le pipeline et la spécification du pipeline utilisée pour instancier une exécution du pipeline afin de surveiller la progression de l'exécution du pipeline.
    • Les résultats des pipelines ont été ajoutés à la spécification des pipelines et au statut PipelineRun.
    • Le champ TaskRun.Status contient désormais la spécification exacte de la tâche utilisée pour instancier la ressource TaskRun.
  • Prise en charge de l'application du paramètre par défaut aux conditions.
  • Une exécution de tâche créée en référençant une tâche de cluster ajoute désormais l'étiquette tekton.dev/clusterTask au lieu de l'étiquette tekton.dev/task.
  • Le rédacteur de la configuration kube ajoute maintenant les configurations ClientKeyData et ClientCertificateData dans la structure de la ressource pour permettre le remplacement du cluster de type de ressource pipeline avec la tâche kubeconfig-creator.
  • Les noms des cartes de configuration feature-flags et config-defaults sont désormais personnalisables.
  • La prise en charge du réseau hôte dans le modèle de pod utilisé par l'exécution de la tâche est désormais disponible.
  • Un assistant d'affinité est maintenant disponible pour prendre en charge l'affinité des nœuds dans les exécutions de tâches qui partagent le volume de l'espace de travail. Par défaut, cette fonctionnalité est désactivée sur OpenShift Pipelines.
  • Le modèle de pod a été mis à jour pour spécifier imagePullSecrets afin d'identifier les secrets que le runtime du conteneur doit utiliser pour autoriser les extractions d'images de conteneurs lors du démarrage d'un pod.
  • Prise en charge de l'émission d'événements d'avertissement par le contrôleur d'exécution des tâches si ce dernier ne parvient pas à mettre à jour l'exécution des tâches.
  • Des étiquettes k8s standard ou recommandées ont été ajoutées à toutes les ressources pour identifier les ressources appartenant à une application ou à un composant.
  • Le processus Entrypoint est maintenant informé des signaux et ces signaux sont ensuite propagés à l'aide d'un groupe PID dédié du processus Entrypoint.
  • Le modèle de pod peut désormais être défini au niveau d'une tâche au moment de l'exécution en utilisant les spécifications d'exécution de la tâche.
  • Prise en charge de l'émission d'événements Kubernetes :

    • Le contrôleur émet maintenant des événements pour des événements supplémentaires du cycle de vie de l'exécution de la tâche - taskrun started et taskrun running.
    • Le contrôleur d'exécution des pipelines émet désormais un événement à chaque fois qu'un pipeline démarre.
  • En plus des événements Kubernetes par défaut, la prise en charge des événements cloud pour les exécutions de tâches est désormais disponible. Le contrôleur peut être configuré pour envoyer tous les événements d'exécution de tâches, tels que la création, le démarrage et l'échec, en tant qu'événements cloud.
  • Prise en charge de l'utilisation de la variable $context.<task|taskRun|pipeline|pipelineRun>.name pour référencer le nom approprié lors de l'exécution d'un pipeline ou d'une tâche.
  • La validation des paramètres d'exécution du pipeline est désormais disponible pour s'assurer que tous les paramètres requis par le pipeline sont fournis par l'exécution du pipeline. Cela permet également aux opérations de pipelines de fournir des paramètres supplémentaires en plus des paramètres requis.
  • Vous pouvez désormais spécifier des tâches au sein d'un pipeline qui seront toujours exécutées avant que le pipeline ne se termine, soit après avoir terminé toutes les tâches avec succès, soit après l'échec d'une tâche du pipeline, en utilisant le champ finally dans le fichier YAML du pipeline.
  • La tâche git-clone est maintenant disponible.
3.1.12.1.2. L'interface de programmation des pipelines
  • La commande tkn evenlistener describe prend désormais en charge les déclencheurs intégrés.
  • Support pour recommander des sous-commandes et faire des suggestions si une sous-commande incorrecte est utilisée.
  • La commande tkn task describe sélectionne désormais automatiquement la tâche si une seule tâche est présente dans le pipeline.
  • Vous pouvez désormais lancer une tâche en utilisant des valeurs de paramètres par défaut en spécifiant l'indicateur --use-param-defaults dans la commande tkn task start.
  • Vous pouvez désormais spécifier un modèle de demande de volume pour les exécutions de pipeline ou de tâches en utilisant l'option --workspace avec les commandes tkn pipeline start ou tkn task start.
  • La commande tkn pipelinerun logs affiche désormais les journaux des dernières tâches énumérées dans la section finally.
  • La prise en charge du mode interactif a été ajoutée à la commande tkn task start et à la sous-commande describe pour les ressources tkn suivantes : pipeline, pipelinerun, task, taskrun, clustertask, et pipelineresource.
  • La commande tkn version affiche désormais la version des déclencheurs installés dans le cluster.
  • La commande tkn pipeline describe affiche désormais les valeurs des paramètres et les délais spécifiés pour les tâches utilisées dans le pipeline.
  • Prise en charge de l'option --last pour les commandes tkn pipelinerun describe et tkn taskrun describe afin de décrire l'exécution la plus récente du pipeline ou de la tâche, respectivement.
  • La commande tkn pipeline describe affiche désormais les conditions applicables aux tâches du pipeline.
  • Vous pouvez désormais utiliser les drapeaux --no-headers et --all-namespaces avec la commande tkn resource list.
3.1.12.1.3. Déclencheurs
  • Les fonctions suivantes du langage d'expression commun (CEL) sont désormais disponibles :

    • parseURL pour analyser et extraire des parties d'une URL
    • parseJSON pour analyser les types de valeurs JSON intégrés dans une chaîne de caractères dans le champ payload du webhook deployment
  • Un nouvel intercepteur pour les webhooks de Bitbucket a été ajouté.
  • Les auditeurs d'événements affichent désormais les champs Address URL et Available status comme champs supplémentaires lorsqu'ils sont listés avec la commande kubectl get.
  • les paramètres des modèles de déclenchement utilisent désormais la syntaxe $(tt.params.<paramName>) au lieu de $(params.<paramName>) afin de réduire la confusion entre les paramètres des modèles de déclenchement et ceux des modèles de ressources.
  • Vous pouvez désormais ajouter tolerations dans le CRD EventListener pour vous assurer que les auditeurs d'événements sont déployés avec la même configuration même si tous les nœuds sont altérés en raison de problèmes de sécurité ou de gestion.
  • Vous pouvez maintenant ajouter une sonde de préparation pour l'événement Deployment à l'adresse URL/live.
  • La prise en charge de l'intégration des spécifications TriggerBinding dans les déclencheurs d'écoute d'événements a été ajoutée.
  • Les ressources de déclenchement sont maintenant annotées avec les étiquettes recommandées app.kubernetes.io.

3.1.12.2. Fonctionnalités obsolètes

Les éléments suivants sont obsolètes dans cette version :

  • Les drapeaux --namespace ou -n pour toutes les commandes de l'ensemble du cluster, y compris les commandes clustertask et clustertriggerbinding, sont obsolètes. Ils seront supprimés dans une prochaine version.
  • Le champ name dans triggers.bindings au sein d'une liste d'événements a été abandonné au profit du champ ref et sera supprimé dans une prochaine version.
  • L'interpolation de variables dans les modèles de déclenchement à l'aide de $(params) a été abandonnée au profit de $(tt.params) afin de réduire la confusion avec la syntaxe d'interpolation des variables du pipeline. La syntaxe $(params.<paramName>) sera supprimée dans une prochaine version.
  • L'étiquette tekton.dev/task est obsolète pour les tâches en grappe.
  • Le champ TaskRun.Status.ResourceResults.ResourceRef est obsolète et sera supprimé.
  • Les sous-commandes tkn pipeline create, tkn task create et tkn resource create -f ont été supprimées.
  • La validation des espaces de noms a été supprimée des commandes tkn.
  • Le délai d'attente par défaut de 1h et l'indicateur -t pour la commande tkn ct start ont été supprimés.
  • La tâche s2i a été supprimée.

3.1.12.3. Problèmes connus

  • Les conditions ne favorisent pas les espaces de travail.
  • L'option --workspace et le mode interactif ne sont pas pris en charge pour la commande tkn clustertask start.
  • La prise en charge de la compatibilité ascendante pour la syntaxe $(params.<paramName>) vous oblige à utiliser des modèles de déclencheurs avec des paramètres spécifiques aux pipelines, car le webhook du déclencheur n'est pas en mesure de différencier les paramètres des déclencheurs de ceux des pipelines.
  • Les métriques de pipeline indiquent des valeurs incorrectes lorsque vous exécutez une requête promQL pour tekton_taskrun_count et tekton_taskrun_duration_seconds_count.
  • les exécutions de pipeline et les exécutions de tâches continuent d'être dans les états Running et Running(Pending) respectivement, même lorsqu'un nom de PVC non existant est donné à un espace de travail.

3.1.12.4. Problèmes corrigés

  • Auparavant, la commande tkn task delete <name> --trs supprimait à la fois la tâche et la tâche de cluster si le nom de la tâche et de la tâche de cluster était le même. Avec cette correction, la commande ne supprime que les exécutions de tâches créées par la tâche <name>.
  • Auparavant, la commande tkn pr delete -p <name> --keep 2 ne tenait pas compte de l'indicateur -p lorsqu'elle était utilisée avec l'indicateur --keep et supprimait toutes les exécutions du pipeline, à l'exception des deux dernières. Avec cette correction, la commande ne supprime que les exécutions de pipeline créées par le pipeline <name>, à l'exception des deux dernières.
  • La sortie de tkn triggertemplate describe affiche désormais les modèles de ressources sous forme de tableau au lieu du format YAML.
  • Auparavant, la tâche de cluster buildah échouait lorsqu'un nouvel utilisateur était ajouté à un conteneur. Avec cette correction, le problème a été résolu.

3.1.13.1. Nouvelles fonctionnalités

Red Hat OpenShift Pipelines Technology Preview (TP) 1.0 est maintenant disponible sur OpenShift Container Platform 4.4. Red Hat OpenShift Pipelines TP 1.0 est mis à jour pour prendre en charge :

  • Tekton Pipelines 0.11.3
  • Tekton tkn CLI 0.9.0
  • Tekton Triggers 0.4.0
  • tâches en grappe basées sur le catalogue Tekton 0.11

En plus des corrections et des améliorations de la stabilité, les sections suivantes mettent en évidence les nouveautés de Red Hat OpenShift Pipelines 1.0.

3.1.13.1.1. Pipelines
  • Prise en charge de la version v1beta1 de l'API.
  • Prise en charge d'une plage de limites améliorée. Auparavant, la plage de limites était spécifiée exclusivement pour l'exécution de la tâche et l'exécution du pipeline. Désormais, il n'est plus nécessaire de spécifier explicitement la plage de limites. La plage de limites minimale de l'espace de noms est utilisée.
  • Prise en charge du partage des données entre les tâches à l'aide des résultats et des paramètres des tâches.
  • Les pipelines peuvent désormais être configurés pour ne pas écraser la variable d'environnement HOME et le répertoire de travail des étapes.
  • À l'instar des tâches, sidecars prend désormais en charge le mode script.
  • Vous pouvez désormais spécifier un nom de planificateur différent dans la ressource d'exécution de la tâche podTemplate.
  • Prise en charge de la substitution de variables à l'aide de la notation en tableau étoilé.
  • Le contrôleur Tekton peut désormais être configuré pour surveiller un espace de noms individuel.
  • Un nouveau champ de description est désormais ajouté à la spécification des pipelines, des tâches, des tâches en grappe, des ressources et des conditions.
  • Ajout de paramètres proxy aux ressources du pipeline Git.
3.1.13.1.2. L'interface de programmation des pipelines
  • La sous-commande describe est désormais ajoutée pour les ressources tkn suivantes : EventListener, Condition, TriggerTemplate, ClusterTask, et TriggerSBinding.
  • La prise en charge de v1beta1 a été ajoutée aux ressources suivantes, ainsi que la compatibilité ascendante pour v1alpha1: ClusterTask, Task, Pipeline, PipelineRun, et TaskRun.
  • Les commandes suivantes peuvent désormais lister les résultats de tous les espaces de noms en utilisant l'option --all-namespaces: tkn task list, tkn pipeline list, tkn taskrun list, tkn pipelinerun list

    La sortie de ces commandes est également améliorée pour afficher des informations sans en-tête à l'aide de l'option --no-headers.

  • Vous pouvez maintenant démarrer un pipeline en utilisant les valeurs de paramètres par défaut en spécifiant l'indicateur --use-param-defaults dans la commande tkn pipelines start.
  • La prise en charge de l'espace de travail est désormais ajoutée aux commandes tkn pipeline start et tkn task start.
  • Une nouvelle commande clustertriggerbinding a été ajoutée avec les sous-commandes suivantes : describe, delete, et list.
  • Vous pouvez désormais lancer directement un pipeline à l'aide d'un fichier local ou distant yaml.
  • La sous-commande describe affiche désormais une sortie améliorée et détaillée. Avec l'ajout de nouveaux champs, tels que description, timeout, param description, et sidecar status, la sortie de la commande fournit désormais des informations plus détaillées sur une ressource tkn spécifique.
  • La commande tkn task log affiche désormais les journaux directement si une seule tâche est présente dans l'espace de noms.
3.1.13.1.3. Déclencheurs
  • Les déclencheurs peuvent désormais créer des ressources de pipeline v1alpha1 et v1beta1.
  • Prise en charge de la nouvelle fonction d'interception du langage d'expression commun (CEL) - compareSecret. Cette fonction compare en toute sécurité les chaînes de caractères aux secrets contenus dans les expressions CEL.
  • Prise en charge de l'authentification et de l'autorisation au niveau du déclencheur de l'auditeur d'événements.

3.1.13.2. Fonctionnalités obsolètes

Les éléments suivants sont obsolètes dans cette version :

  • La variable d'environnement $HOME et la variable workingDir dans la spécification Steps sont obsolètes et pourraient être modifiées dans une version ultérieure. Actuellement, dans un conteneur Step, les variables HOME et workingDir sont remplacées par les variables /tekton/home et /workspace, respectivement.

    Dans une version ultérieure, ces deux champs ne seront pas modifiés et prendront les valeurs définies dans l'image du conteneur et dans le YAML Task. Pour cette version, utilisez les drapeaux disable-home-env-overwrite et disable-working-directory-overwrite pour désactiver l'écrasement des variables HOME et workingDir.

  • Les commandes suivantes sont obsolètes et pourraient être supprimées dans une prochaine version : tkn pipeline create, tkn task create.
  • L'indicateur -f de la commande tkn resource create est désormais obsolète. Il pourrait être supprimé dans une prochaine version.
  • L'indicateur -t et l'indicateur --timeout (avec le format des secondes) pour la commande tkn clustertask create sont désormais obsolètes. Seul le format durée est désormais pris en charge, par exemple 1h30s. Ces drapeaux obsolètes pourraient être supprimés dans une prochaine version.

3.1.13.3. Problèmes connus

  • Si vous effectuez une mise à niveau à partir d'une ancienne version de Red Hat OpenShift Pipelines, vous devez supprimer vos déploiements existants avant d'effectuer la mise à niveau vers Red Hat OpenShift Pipelines version 1.0. Pour supprimer un déploiement existant, vous devez d'abord supprimer les ressources personnalisées, puis désinstaller l'opérateur Red Hat OpenShift Pipelines. Pour plus de détails, consultez la section sur la désinstallation de Red Hat OpenShift Pipelines.
  • La soumission des mêmes tâches v1alpha1 plus d'une fois entraîne une erreur. Utilisez la commande oc replace au lieu de oc apply lorsque vous soumettez à nouveau une tâche v1alpha1.
  • La tâche buildah cluster ne fonctionne pas lorsqu'un nouvel utilisateur est ajouté à un conteneur.

    Lors de l'installation de l'Opérateur, l'indicateur --storage-driver pour la tâche de cluster buildah n'est pas spécifié, et l'indicateur prend donc sa valeur par défaut. Dans certains cas, cela entraîne un mauvais paramétrage du pilote de stockage. Lorsqu'un nouvel utilisateur est ajouté, le pilote de stockage incorrect entraîne l'échec de la tâche de cluster buildah avec l'erreur suivante :

    useradd: /etc/passwd.8: lock file already used
    useradd: cannot lock /etc/passwd; try again later.
    Copy to Clipboard Toggle word wrap

    Pour contourner le problème, définissez manuellement la valeur de l'indicateur --storage-driver à overlay dans le fichier buildah-task.yaml:

    1. Connectez-vous à votre cluster en tant que cluster-admin:

      $ oc login -u <login> -p <password> https://openshift.example.com:6443
      Copy to Clipboard Toggle word wrap
    2. Utilisez la commande oc edit pour éditer la tâche de cluster buildah:

      $ oc edit clustertask buildah
      Copy to Clipboard Toggle word wrap

      La version actuelle du fichier YAML de buildah clustertask s'ouvre dans l'éditeur défini par votre variable d'environnement EDITOR.

    3. Sous le champ Steps, localisez le champ command suivant :

       command: ['buildah', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--layers', '-f', '$(params.DOCKERFILE)', '-t', '$(resources.outputs.image.url)', '$(params.CONTEXT)']
      Copy to Clipboard Toggle word wrap
    4. Remplacer le champ command par le champ suivant :

       command: ['buildah', '--storage-driver=overlay', 'bud', '--format=$(params.FORMAT)', '--tls-verify=$(params.TLSVERIFY)', '--no-cache', '-f', '$(params.DOCKERFILE)', '-t', '$(params.IMAGE)', '$(params.CONTEXT)']
      Copy to Clipboard Toggle word wrap
    5. Enregistrez le fichier et quittez.

    Vous pouvez également modifier le fichier YAML de la tâche de cluster buildah directement sur la console web en naviguant vers Pipelines Cluster Tasks buildah. Sélectionnez Edit Cluster Task dans le menu Actions et remplacez le champ command comme indiqué dans la procédure précédente.

3.1.13.4. Problèmes corrigés

  • Auparavant, la tâche DeploymentConfig déclenchait une nouvelle construction de déploiement même lorsqu'une construction d'image était déjà en cours. Cela entraînait l'échec du déploiement du pipeline. Avec cette correction, la commande deploy task est maintenant remplacée par la commande oc rollout status qui attend que le déploiement en cours se termine.
  • La prise en charge du paramètre APP_NAME est désormais ajoutée dans les modèles de pipeline.
  • Auparavant, le modèle de pipeline pour Java S2I ne parvenait pas à rechercher l'image dans le registre. Avec cette correction, l'image est recherchée en utilisant les ressources existantes du pipeline d'images au lieu du paramètre IMAGE_NAME fourni par l'utilisateur.
  • Toutes les images d'OpenShift Pipelines sont désormais basées sur les Red Hat Universal Base Images (UBI).
  • Auparavant, lorsque le pipeline était installé dans un espace de noms autre que tekton-pipelines, la commande tkn version affichait la version du pipeline sous la forme unknown. Avec cette correction, la commande tkn version affiche désormais la version correcte du pipeline dans n'importe quel espace de noms.
  • L'indicateur -c n'est plus pris en charge pour la commande tkn version.
  • Les utilisateurs non-administrateurs peuvent maintenant lister les liens de déclenchement des clusters.
  • La fonction de l'écouteur d'événement CompareSecret est maintenant corrigée pour l'intercepteur CEL.
  • Les sous-commandes list, describe, et start pour les tâches et les tâches en grappe affichent désormais correctement la sortie dans le cas où une tâche et une tâche en grappe ont le même nom.
  • Auparavant, l'opérateur OpenShift Pipelines modifiait les contraintes de contexte de sécurité (SCC) privilégiées, ce qui provoquait une erreur lors de la mise à niveau du cluster. Cette erreur est maintenant corrigée.
  • Dans l'espace de noms tekton-pipelines, les délais d'exécution de toutes les tâches et de tous les pipelines sont désormais fixés à la valeur du champ default-timeout-minutes à l'aide de la carte de configuration.
  • Auparavant, la section des pipelines dans la console web n'était pas affichée pour les utilisateurs non-administrateurs. Ce problème est désormais résolu.
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat