5.4. Changements importants dans les images OpenShift Jenkins


OpenShift Container Platform 4.11 déplace les images OpenShift Jenkins et OpenShift Agent Base vers le dépôt ocp-tools-4 à l'adresse registry.redhat.io. Elle supprime également les images OpenShift Jenkins Maven et NodeJS Agent de son payload :

  • OpenShift Container Platform 4.11 déplace les images OpenShift Jenkins et OpenShift Agent Base vers le dépôt ocp-tools-4 à l'adresse registry.redhat.io afin que Red Hat puisse produire et mettre à jour les images en dehors du cycle de vie d'OpenShift Container Platform. Auparavant, ces images se trouvaient dans la charge utile d'installation d'OpenShift Container Platform et dans le dépôt openshift4 à l'adresse registry.redhat.io.
  • OpenShift Container Platform 4.10 a déprécié les images OpenShift Jenkins Maven et NodeJS Agent. OpenShift Container Platform 4.11 supprime ces images de sa charge utile. Red Hat ne produit plus ces images et elles ne sont pas disponibles dans le dépôt ocp-tools-4 à l'adresse registry.redhat.io. Red Hat maintient les versions 4.10 et antérieures de ces images pour toutes les corrections de bogues importantes ou les CVE de sécurité, en suivant la politique de cycle de vie d'OpenShift Container Platform.

Ces changements supportent la recommandation d'OpenShift Container Platform 4.10 d'utiliser plusieurs Pod Templates avec le plugin Jenkins Kubernetes.

5.4.1. Relocalisation des images OpenShift Jenkins

OpenShift Container Platform 4.11 apporte des changements significatifs à l'emplacement et à la disponibilité d'images OpenShift Jenkins spécifiques. En outre, vous pouvez configurer quand et comment mettre à jour ces images.

Qu'est-ce qui reste inchangé dans les images OpenShift Jenkins ?

  • Le Cluster Samples Operator gère les objets ImageStream et Template pour faire fonctionner les images OpenShift Jenkins.
  • Par défaut, l'objet Jenkins DeploymentConfig du modèle de pod Jenkins déclenche un redéploiement lorsque l'image Jenkins change. Par défaut, cette image est référencée par la balise jenkins:2 image stream de Jenkins image stream dans l'espace de noms openshift dans le fichier YAML ImageStream dans la charge utile de l'opérateur Samples.
  • Si vous mettez à jour OpenShift Container Platform 4.10 et antérieures vers 4.11, les modèles de pods dépréciés maven et nodejs sont toujours dans la configuration de l'image par défaut.
  • Si vous mettez à jour OpenShift Container Platform 4.10 et précédentes vers 4.11, les flux d'images jenkins-agent-maven et jenkins-agent-nodejs existent toujours dans votre cluster. Pour maintenir ces flux d'images, consultez la section suivante : " Que se passe-t-il avec les flux d'images jenkins-agent-maven et jenkins-agent-nodejs dans l'espace de noms openshift?

Quels sont les changements dans la matrice de support de l'image OpenShift Jenkins ?

Chaque nouvelle image du dépôt ocp-tools-4 dans le registre registry.redhat.io prend en charge plusieurs versions d'OpenShift Container Platform. Lorsque Red Hat met à jour l'une de ces nouvelles images, elle est simultanément disponible pour toutes les versions. Cette disponibilité est idéale lorsque Red Hat met à jour une image en réponse à un avis de sécurité. Dans un premier temps, ce changement s'applique à OpenShift Container Platform 4.11 et aux versions ultérieures. Il est prévu que ce changement s'applique éventuellement à OpenShift Container Platform 4.9 et aux versions ultérieures.

Auparavant, chaque image Jenkins ne prenait en charge qu'une seule version d'OpenShift Container Platform et Red Hat pouvait mettre à jour ces images de manière séquentielle au fil du temps.

Quels sont les ajouts apportés aux objets ImageStream et ImageStreamTag de OpenShift Jenkins et Jenkins Agent Base ?

En passant d'un flux d'images in-payload à un flux d'images qui fait référence à des images non-payload, OpenShift Container Platform peut définir des balises de flux d'images supplémentaires. Red Hat a créé une série de nouvelles balises de flux d'images pour compléter les balises de flux d'images "value": "jenkins:2" et "value": "image-registry.openshift-image-registry.svc:5000/openshift/jenkins-agent-base-rhel8:latest" existantes dans OpenShift Container Platform 4.10 et les versions antérieures. Ces nouvelles balises de flux d'images répondent à certaines demandes d'amélioration de la gestion des flux d'images liés à Jenkins.

A propos des nouvelles balises de flux d'images :

ocp-upgrade-redeploy
Pour mettre à jour votre image Jenkins lorsque vous mettez à jour OpenShift Container Platform, utilisez cette balise image stream dans votre configuration de déploiement Jenkins. Cette balise de flux d'images correspond à la balise de flux d'images existante 2 du flux d'images jenkins et à la balise de flux d'images latest du flux d'images jenkins-agent-base-rhel8. Elle utilise une balise d'image spécifique à un seul SHA ou résumé d'image. Lorsque l'image ocp-tools-4 change, comme pour les avis de sécurité de Jenkins, Red Hat Engineering met à jour la charge utile Cluster Samples Operator.
user-maintained-upgrade-redeploy
Pour redéployer manuellement Jenkins après avoir mis à jour OpenShift Container Platform, utilisez cette balise de flux d'images dans votre configuration de déploiement Jenkins. Cette balise de flux d'images utilise l'indicateur de version d'image le moins spécifique disponible. Lorsque vous redéployez Jenkins, exécutez la commande suivante : $ oc import-image jenkins:user-maintained-upgrade-redeploy -n openshift. Lorsque vous exécutez cette commande, le contrôleur de la plate-forme OpenShift Container ImageStream accède au registre d'images registry.redhat.io et stocke toutes les images mises à jour dans l'emplacement du registre d'images OpenShift pour cet objet Jenkins ImageStreamTag. Dans le cas contraire, si vous n'exécutez pas cette commande, votre configuration de déploiement Jenkins ne déclenche pas de redéploiement.
scheduled-upgrade-redeploy
Pour redéployer automatiquement la dernière version de l'image Jenkins lorsqu'elle est publiée, utilisez cette balise de flux d'images dans votre configuration de déploiement Jenkins. Cette balise de flux d'images utilise la fonction d'importation périodique des balises de flux d'images du contrôleur de flux d'images d'OpenShift Container Platform, qui vérifie les modifications apportées à l'image de référence. Si l'image change, par exemple en raison d'un récent avis de sécurité Jenkins, OpenShift Container Platform déclenche un redéploiement de votre configuration de déploiement Jenkins. Voir "Configuration de l'importation périodique des balises de flux d'images" dans le document suivant "Ressources supplémentaires"

Que se passe-t-il avec les flux d'images jenkins-agent-maven et jenkins-agent-nodejs dans l'espace de noms openshift?

Les images OpenShift Jenkins Maven et NodeJS Agent pour OpenShift Container Platform ont été dépréciées en 4.10, et sont supprimées du payload d'installation d'OpenShift Container Platform en 4.11. Elles n'ont pas d'alternatives définies dans le référentiel ocp-tools-4. Cependant, vous pouvez contourner ce problème en utilisant le modèle de sidecar décrit dans la rubrique "Jenkins agent" mentionnée dans la section suivante "Ressources supplémentaires".

Cependant, le Cluster Samples Operator ne supprime pas les flux d'images jenkins-agent-maven et jenkins-agent-nodejs créés par des versions antérieures, qui pointent vers les balises des images payantes OpenShift Container Platform respectives sur registry.redhat.io. Par conséquent, vous pouvez extraire les mises à jour de ces images en exécutant les commandes suivantes :

$ oc import-image jenkins-agent-nodejs -n openshift
Copy to Clipboard Toggle word wrap
$ oc import-image jenkins-agent-maven -n openshift
Copy to Clipboard Toggle word wrap

5.4.2. Personnalisation de la balise Jenkins image stream

Pour remplacer le comportement de mise à niveau par défaut et contrôler la manière dont l'image Jenkins est mise à niveau, vous définissez la valeur de la balise de flux d'images que vos configurations de déploiement Jenkins utilisent.

Le comportement de mise à niveau par défaut est celui qui existait lorsque l'image Jenkins faisait partie de la charge utile d'installation. Les noms des balises de flux d'images, 2 et ocp-upgrade-redeploy, dans le fichier de flux d'images jenkins-rhel.json utilisent des références d'images spécifiques à SHA. Par conséquent, lorsque ces balises sont mises à jour avec un nouveau SHA, le contrôleur de changement d'image d'OpenShift Container Platform redéploie automatiquement la configuration de déploiement Jenkins à partir des modèles associés, tels que jenkins-ephemeral.json ou jenkins-persistent.json.

Pour les nouveaux déploiements, afin de remplacer cette valeur par défaut, vous devez modifier la valeur de JENKINS_IMAGE_STREAM_TAG dans le modèle Jenkins jenkins-ephemeral.json. Par exemple, remplacez le 2 dans "value": "jenkins:2" par l'une des balises de flux d'images suivantes :

  • ocp-upgrade-redeployla valeur par défaut, met à jour votre image Jenkins lorsque vous mettez à jour OpenShift Container Platform.
  • user-maintained-upgrade-redeploy vous oblige à redéployer manuellement Jenkins en exécutant $ oc import-image jenkins:user-maintained-upgrade-redeploy -n openshift après la mise à jour d'OpenShift Container Platform.
  • scheduled-upgrade-redeploy vérifie périodiquement que la combinaison <image>:<tag> donnée n'a pas été modifiée et met à jour l'image lorsqu'elle l'est. Le contrôleur de changement d'image extrait l'image modifiée et redéploie la configuration de déploiement Jenkins fournie par les modèles. Pour plus d'informations sur cette politique d'importation planifiée, voir la section "Ajouter des balises aux flux d'images" dans la section suivante "Ressources supplémentaires"
Note

Pour remplacer la valeur de mise à niveau actuelle pour les déploiements existants, modifiez les valeurs des variables d'environnement qui correspondent à ces paramètres de modèle.

Conditions préalables

  • Vous utilisez OpenShift Jenkins sur OpenShift Container Platform 4.12.
  • Vous connaissez l'espace de noms dans lequel OpenShift Jenkins est déployé.

Procédure

  • Définir la valeur de la balise de flux d'images, en remplaçant <namespace> par l'espace de noms où OpenShift Jenkins est déployé et <image_stream_tag> par une balise de flux d'images :

    Exemple

    $ oc patch dc jenkins -p '{"spec":{"triggers" :[{"type":"ImageChange",{"imageChangeParams":{"automatic":true,{"containerNames" :[\N "jenkins"],{"from" :{"kind":\N "ImageStreamTag",\N "namespace":\N"<namespace>",\N "name":\N "jenkins:<image_stream_tag>"}}]}}''
    Copy to Clipboard Toggle word wrap

    Astuce

    Alternativement, pour éditer le YAML de configuration du déploiement de Jenkins, entrez $ oc edit dc/jenkins -n <namespace> et mettez à jour la ligne value: 'jenkins:<image_stream_tag>'.

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