2017-12-14 3 views
0

Ich konfiguriere einen Master Jenkins, um Slaves mit kubernetes zu starten. Wenn ein Slave seine Pipeline startet, brauche ich eine maven settings.xml, die vom Master gelesen (oder kopiert) wird. Mit kubernetes plugin habe ich keinen Weg dafür gefunden.Kubernetes und settings.xml in jenkins-slaves

Irgendwelche Vorschläge, bitte?

Antwort

1

Vielleicht kann Jenkins Ihnen helfen. Sie bieten einen stash/unstash Schritt. Das bedeutet, dass Sie die settings.xml auf dem Master-Knoten speichern und auf Ihrem Slave, der den Build ausführt, auflösen. Ich denke, dass zur Zeit stash/unstash nur Unterverzeichnisse des aktuellen Pipeline-Arbeitsbereichs unterstützt, aber Sie könnten es umgehen, indem Sie das settings.xml in den aktuellen Arbeitsbereich kopieren, bevor Sie es stashing. Das Ganze könnte so ähnlich aussehen:

stage('Build') { 
    node('master') { 
    sh 'cp /path/to/master-node-settings-xml .' 
    stash includes: 'settings.xml', name: 'settingsXml' 
    } 

    node('slave') { 
    unstash 'settingsXml' 
    sh 'mv settings.xml /path/to/slave-node-settings-xml' 

    # Start your build here now .. 
    } 
} 

Eine weitere Möglichkeit der settings.xml in das Docker Bild zu backen vorge wäre, die Sie die Sklaven in Kubernetes spin up verwenden. Natürlich wäre dies keine optimale Lösung, wenn sich Ihre settings.xml dynamisch ändert oder irgendeine Art von sensiblen Daten enthält (so wie Sie es vermeiden sollten, wenn möglich vertrauliche Informationen in ein Docker-Image zu legen).

Verwandte Themen