1.9. En utilisant le plugin Jenkins Kubernetes
Dans l’exemple suivant, l’objet BuildConfig d’openshift-jee-sample provoque la mise à disposition dynamique d’un pod d’agent Jenkins Maven. Le pod clone un certain code source Java, construit un fichier WAR et provoque un second BuildConfig, openshift-jee-sample-docker à exécuter. Le second BuildConfig couche le nouveau fichier WAR dans une image de conteneur.
4.11 a supprimé les images OpenShift Jenkins Maven et NodeJS Agent de sa charge utile. Le Red Hat ne produit plus ces images, et ils ne sont pas disponibles dans le référentiel ocp-tools-4 sur register.redhat.io. Le Red Hat maintient les versions 4.10 et précédentes de ces images pour tous les correctifs de bogues importants ou les CVE de sécurité, conformément à la politique de cycle de vie dédié OpenShift.
Consultez le lien « Modifications importantes des images OpenShift Jenkins » dans la section suivante « Ressources supplémentaires ».
Exemple BuildConfig qui utilise le plugin Jenkins Kubernetes
Il est également possible de remplacer la spécification du pod d’agent Jenkins créé dynamiquement. Ce qui suit est une modification de l’exemple précédent, qui remplace la mémoire du conteneur et spécifie une variable d’environnement.
Exemple BuildConfig qui utilise le plugin Jenkins Kubernetes, spécifiant la limite de mémoire et la variable d’environnement
- 1
- Le nouveau modèle de pod appelé mypod est défini de manière dynamique. Le nouveau nom de modèle de pod est référencé dans la strophe du nœud.
- 2
- La valeur cloud doit être définie sur openshift.
- 3
- Le nouveau modèle de pod peut hériter de sa configuration à partir d’un modèle de pod existant. Dans ce cas, hérité du modèle de pod Maven qui est prédéfini par OpenShift Dedicated.
- 4
- Cet exemple remplace les valeurs dans le conteneur préexistant et doit être spécifié par son nom. Les images de l’agent Jenkins expédiées avec OpenShift Dedicated utilisent le nom du conteneur jnlp.
- 5
- Indiquez à nouveau le nom de l’image du conteneur. C’est un problème connu.
- 6
- La requête mémoire de 512 Mi est spécifiée.
- 7
- La limite de mémoire de 512 Mi est spécifiée.
- 8
- La variable d’environnement CONTAINER_HEAP_PERCENT, avec la valeur 0.25, est spécifiée.
- 9
- Le nœud stanza fait référence au nom du modèle de pod défini.
Le pod est supprimé par défaut lorsque la construction est terminée. Ce comportement peut être modifié avec le plugin ou dans un pipeline Jenkinsfile.
En amont Jenkins a récemment introduit un format déclaratif YAML pour définir un pipeline podTemplate DSL en ligne avec vos pipelines. Exemple de ce format, en utilisant l’échantillon java-builder pod modèle qui est défini dans l’image OpenShift Dedicated Jenkins:
Ressources supplémentaires