I like that this moves the provisioning to the build log. I do agree that certain issues should fail immediately (image not found). Certain other issues should perform exponential backoff (Cloud infrastructure down). Provisioning limits could be annoying though, would be interesting if they could be left in the queue until Jenkins side provisioning limits are not violated. I am not sure how to handle an environment like Kubernetes though where other entities may be utilizing resources and you have to "share".
You mention using labels to pick the slave. I'm wondering if it would be feasible and worthwhile to make such a plugin generic to be the middle layer for the Jenkins hooks to the cloud specific implementation (Docker, Kubernetes, AWS). It could also handle the logic of some users wanting to configure slaves on a per job basis. Would be interesting if could also be integrated into cloudbees folder level. If the later could work then I wouldn't need to run my own Jenkins install at work for using containers and instead could use the company cloudbees Jenkins. - Thomas From: <[email protected]<mailto:[email protected]>> on behalf of nicolas de loof <[email protected]<mailto:[email protected]>> Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Friday, March 4, 2016 at 3:08 AM To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: One-Shot Executors Hi folks, Yoann and I have extracted from our docker-slaves hack-ish pet project a stable sub-component so a plugin can manage slaves that are dedicated to a Build, not relying on Cloud API, and get them tied to a Build. i.e Slave and Build share a common lifecycle. If Slave fails to start, Build will fail as well. If slave is slow to start (maybe pulling a huge docker image), build log will report the progress. etc. design and use-case : https://wiki.jenkins-ci.org/display/JENKINS/One-Shot+Executor code : https://github.com/jenkinsci/one-shot-executor-plugin the current code base do rely on hacks, our goal is to demonstrate this use case (can be tested reusing sample<https://github.com/jenkinsci/one-shot-executor-plugin/blob/master/src/sample/java/org/jenkinsci/plugins/dockerprovisioner/DemoOneShotProvisioner.java>) so we can get the adequate hooks introduced in jenkins-core and later re-implement same API on a cleaner basis. -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CANMVJznmnydODNX%2BYXmh0ujnJXsoZWcPT%2BpJCWwdR0_wUpfDTQ%40mail.gmail.com<https://groups.google.com/d/msgid/jenkinsci-dev/CANMVJznmnydODNX%2BYXmh0ujnJXsoZWcPT%2BpJCWwdR0_wUpfDTQ%40mail.gmail.com?utm_medium=email&utm_source=footer>. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Jenkins Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/D305926F.28292%25thomas.suckow%40pnnl.gov. For more options, visit https://groups.google.com/d/optout.
