Closed Bug 1199247 Opened 9 years ago Closed 9 years ago

set up buildbot bridge dev environment

Categories

(Release Engineering :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: bhearsum, Assigned: bhearsum)

References

Details

Attachments

(1 file, 1 obsolete file)

There's going to be quite a bit of buildbot bridge work upcoming, and having a dev environment is going to be pretty important to avoiding breaking production. Catlee and I talked about this a few months back, and the most useful way of doing it seems to be using a separate instance that's locked down to one branch, but still using production buildbot. We've been using a similar model for release runner, and it seems to be working well.
This is modeled after the release runner dev work I did a few months ago, which has proven to work well. I gave it a try in --noop mode against an existing production deployment and the only diff is in allowed_builders, which is expected (we don't want prod to take alder jobs anymore, because that's where dev will be pointed).

This can't be deployed until the new database is set-up, and I insert all of dev secrets into Hiera (they're currently set to TODO).
Attachment #8653549 - Flags: review?(dustin)
Comment on attachment 8653549 [details] [diff] [review]
support dev and prod in bbb puppet configs

Review of attachment 8653549 [details] [diff] [review]:
-----------------------------------------------------------------

::: manifests/moco-config.pp
@@ +339,5 @@
>      $buildbot_bridge_reflector_interval = 60
>  
> +    $buildbot_bridge_env_config = {
> +        "dev" => {
> +            # >= means that the latest version will get installed

Actually means that the latest version will be reinstalled on every puppet run (since puppet looks at the version installed and compares it to the foo==v.v specified in the packages list).  If you're OK with that for dev, then there's no great harm, but best to memorialize it in a comment all the same.

::: modules/buildbot_bridge/manifests/init.pp
@@ +8,5 @@
>      include packages::mozilla::python27
>      include packages::mysql_devel
>      include users::builder
>  
> +    $env_config = $config::buildbot_bridge_env_config[$buildbot_bridge_env]

Couldn't this be $::buildbot_bridge::settings::env_config?
Attachment #8653549 - Flags: review?(dustin) → review+
(In reply to Dustin J. Mitchell [:dustin] from comment #2)
> Comment on attachment 8653549 [details] [diff] [review]
> support dev and prod in bbb puppet configs
> 
> Review of attachment 8653549 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> ::: manifests/moco-config.pp
> @@ +339,5 @@
> >      $buildbot_bridge_reflector_interval = 60
> >  
> > +    $buildbot_bridge_env_config = {
> > +        "dev" => {
> > +            # >= means that the latest version will get installed
> 
> Actually means that the latest version will be reinstalled on every puppet
> run (since puppet looks at the version installed and compares it to the
> foo==v.v specified in the packages list).  If you're OK with that for dev,
> then there's no great harm, but best to memorialize it in a comment all the
> same.

Ah, that's good to know! In that case, I'll switch this to an actual version number...I don't want to force reinstalls (and restarts of the services) every 30min. I was hoping to avoid needing to bump the version number to test dev versions, but it's not the end of the world.

> ::: modules/buildbot_bridge/manifests/init.pp
> @@ +8,5 @@
> >      include packages::mozilla::python27
> >      include packages::mysql_devel
> >      include users::builder
> >  
> > +    $env_config = $config::buildbot_bridge_env_config[$buildbot_bridge_env]
> 
> Couldn't this be $::buildbot_bridge::settings::env_config?

Good point, I'll fix this up too.
This should fix your comments, and tested fine against a prod node.
Attachment #8653549 - Attachment is obsolete: true
Attachment #8653569 - Flags: review?(dustin)
Attachment #8653569 - Flags: review?(dustin) → review+
Depends on: 1199385
Depends on: 1200202
Attachment #8653569 - Flags: checked-in+
I landed this and it's mostly working. The only thing that's having trouble is the Pulse connection, because of bug 1199385. I'm trying to get that sorted out.
Turns out that my allowed builders strategy doesn't work, because the Bridge cancels tasks with disallowed Builders....which means the production instance still picks up Alder jobs, but cancels them (screwing up the dev instance trying to claim them)...
Depends on: 1201861
(In reply to Ben Hearsum (:bhearsum) from comment #6)
> Turns out that my allowed builders strategy doesn't work, because the Bridge
> cancels tasks with disallowed Builders....which means the production
> instance still picks up Alder jobs, but cancels them (screwing up the dev
> instance trying to claim them)...

Fixed this in bug 1201861, it seems to be working well now!
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Component: General Automation → General
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: