GCE Builder Bringup is awkward |
||||||
Issue descriptionThe only process which doesn't disrupt builds seems to be: 1) Create GCE instance. 2) Run numerous commands on the instance to prep build slave code. 3) Submit CL to Chrome Infra to add instance to available pool. 4) Restart waterfall so slave is known to master. 5) Submit CL to chromite to add build config that needs a build slave. 6) Restart waterfall to assign build slave. 7) Log into slave to start slave. (cd /b/build/slave; make start)
,
Mar 21 2016
Also, I was really surprised. I though step 7 could be successfully done after step 4. But that doesn't seem to be true.
,
Mar 21 2016
,
Mar 21 2016
{3, 4, 5, 6} should probably be the same CL if a slave is being brought up for a specific purpose. The alternative is what we do now with baremetal, which is to preallocate slaves, add them to the waterfall out of band, and then {5, 6} as needed.
Additionally, 7 could be rendered unnecessary if the cleanup is done or if you switch to ccompute. Basically what you do is have a launcher that repeats:
1) Launch Slave
2) Wait for slave process to terminate.
3) Sleep 10 seconds.
4) Goto 1.
If you do this, (2) will happen immediately if the slave is rejected by the master, so this will basically poll continuously until the master is ready.
,
Mar 22 2016
I'm hoping that the launcher script you mention into new images soon. I'm assuming the switch to ccompute will take significant work and thus take time, but that is the hope longer term.
,
Mar 22 2016
I think hinoka@'s conclusion is that it actually probably wouldn't take too much work/time. He already set up a continuous image builder, although it's failing because the target it's supposed to build doesn't exist: https://uberchromegw.corp.google.com/i/internal.infra.cron/builders/ccompute-chrome-chromeos
,
Mar 28 2016
,
Mar 29 2016
,
Apr 26 2016
,
May 10 2016
Since the move to ccompute, this process it a lot less awkward. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by dgarr...@chromium.org
, Mar 21 2016