Déployez Jenkins sur un cluster ACK Serverless via Helm pour exécuter des builds sur des pods provisionnés dynamiquement.
Prérequis
Un cluster ACK Serverless est créé.
kubectl est connecté à votre cluster.
Considérations
Vous êtes responsable de la maintenance de Jenkins. Aucun support technique de niveau entreprise n'est fourni.
Étape 1 : Déployer Jenkins
-
Ajoutez et mettez à jour le dépôt Helm de Jenkins.
helm repo add jenkins https://charts.jenkins.io helm repo updateSortie attendue :
Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "jenkins" chart repository Update Complete. ⎈Happy Helming!⎈RemarqueLe dépôt Helm est hébergé en dehors de la Chine continentale. Les mises à jour depuis des clusters situés en Chine continentale peuvent prendre plus de temps.
-
Installez Jenkins.
-
Créez le namespace
cicd.kubectl create ns cicd -
Créez un volume de stockage NAS partagé.
Sans un volume persistant pour le répertoire home de Jenkins, les configurations sont perdues lors du redémarrage du pod contrôleur.
-
Déployez Jenkins dans le namespace
cicd.helm -n cicd install jenkins jenkins/jenkins \ --set persistence.existingClaim=pvc-nas \ --set controller.serviceType="LoadBalancer" \ --set controller.adminPassword="admin"persistence.existingClaim=pvc-nas : Obligatoire. Le nom du PVC. Cet exemple utilise pvc-nas dans le namespace
cicd.controller.serviceType="LoadBalancer" : Facultatif. Le type de service par défaut est ClusterIP.
controller.adminPassword="admin" : Facultatif. Si ce paramètre n'est pas défini, un mot de passe aléatoire est généré. Consultez Accéder à Jenkins via LoadBalancer et obtenir le mot de passe par défaut.
Consultez helm-charts pour tous les paramètres de déploiement.
-
Vérifiez l'état du pod Jenkins. Attendez que le pod passe à l'état Running.
kubectl -n cicd get poSortie attendue :
NAME READY STATUS RESTARTS AGE jenkins-0 2/2 Running 0 3m3s
-
-
Ouvrez Jenkins dans un navigateur et connectez-vous avec vos identifiants.
Étape 2 : Créer une tâche de pipeline
Cet exemple crée un pipeline nommé first-pipeline. Jenkins provisionne un pod agent slave dynamique pour chaque build et le libère une fois terminé. Consultez la documentation Jenkins pour plus de détails sur la configuration.
Connectez-vous à Jenkins. Dans le volet de navigation de gauche, cliquez sur New Item.
Dans le champ Enter an item name, saisissez first-pipeline, sélectionnez Pipeline, puis cliquez sur OK.
Cliquez sur l'onglet Pipeline, sélectionnez Hello World, puis cliquez sur Save.
Dans le volet de navigation de gauche, cliquez sur Build Now.
Dans la section Build History, cliquez sur un numéro de build, par exemple #1. Cliquez sur Console Output.
Accéder à Jenkins et obtenir le mot de passe par défaut
-
Le service Jenkins utilise ClusterIP par défaut. Pour l'exposer via un équilibreur de charge :
kubectl -n cicd patch svc jenkins -p '{"spec": {"type": "LoadBalancer"}}' -
Si aucun mot de passe n'a été défini lors du déploiement, récupérez le mot de passe par défaut :
kubectl -n cicd exec -it svc/jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo