@ogondza you can try to look at https://github.com/KostyaSha/yet-another-docker-plugin where i clean-uped most of the code that i started working on in docker-plugin. Not ideal of course but i un-hardcoded and clean-uped as much as i can. All other plugins copy-pasting code without understanding how it works (my impression after reading a lot of cloud plugins). PS feel free to contact about stats if you need some experiments.
On Wednesday, April 27, 2016 at 4:59:35 PM UTC+3, Stephen Connolly wrote: > > So you should not be checking that the slave is launched by running > through computer.connect(false) as that requires that you return early. > Instead you should be checking for e.g. the ssh service to be open and > responding to connection requests (you can do that easily with your > launcher... but a custom check would be better as you only want to check > that the port is open) then you return and let Jenkins add the node and > connect. The critical bug is > https://github.com/jenkinsci/jclouds-plugin/blob/master/jclouds-plugin/src/main/java/jenkins/plugins/jclouds/compute/JCloudsCloud.java#L297 > > i.e. you should *never* add the node to jenkins yourself, when you do > that you cause the second issue that you are then trying to correct. > > In short the future should return the Node instance to be added *when* the > actual Node instance is ready to connect. If you return the Node too soon, > then you get over-provisioning... which then leads to people trying to > "fix" that by copying the hacks in the EC2 plugin. > > The cloud API is a mess. I want to replace it with something that a sane > individual has a hope of implementing correctly. > > Do not fear, after dealing with the cloud API for many years now I have > come to the conclusion that it is IMPOSSIBLE to write a correct > implementation. The closest thing to a correct implementation is the > oc-cloud implementation used by CJOC (and that only avoids the bugs that > you cannot avoid because we can linearize operations in CJOC). > > Our nectar-vmware plugin is "ok" (largely due to a shake-down we did when > we were using it for the predecessor to CJOC) > > The next closest to a correct implementation is Docker. > > After that... well it's all mostly sh1t... I loose the will to live when I > start looking at other implementations. > > If you pick EC2 as your template you will be following every wrong example > in the book. > > On 27 April 2016 at 13:54, Oliver Gondža <[email protected] <javascript:>> > wrote: > >> On 04/27/2016 02:08 PM, Stephen Connolly wrote: >> >>> >>> On 8 April 2016 at 14:44, Oliver Gondža <[email protected] <javascript:> >>> <mailto:[email protected] <javascript:>>> wrote: >>> >>> Some plugins even wait for launch to complete before leaving >>> PlannedNode#future >>> >>> >>> Those are broken plugins >>> >> >> As a maintainer of one such plugin I would like to hear your input on [1] >> is it seems to be quite common. With regards to the cloud-stats plugin, it >> would not change much even if they all get fixed since launch can be >> started by Jenkins before it collects completed futures, it just makes it >> happen all the time instead of rarely. >> >> [1] >> https://github.com/jenkinsci/jclouds-plugin/blob/master/jclouds-plugin/src/main/java/jenkins/plugins/jclouds/compute/JCloudsCloud.java#L299-L303 >> >> -- >> oliver >> >> -- >> 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] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-dev/418b92f5-e0ca-c85b-ecf2-bc4d5a184422%40gmail.com >> . >> >> 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/f2e5eff3-b59a-4ea1-abd8-90656f0a772f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
