Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Bouncer should use Balrog as a back-end #23

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

srfraser
Copy link

No description provided.

@tomprince
Copy link
Contributor

I like the idea of there being less places where we track what releases are current.

I had a couple of random thoughts on reading this:

  • the election bundles are repacks that exist in bouncer, but don't currently exist in balrog
  • if balrog is going to be the data source for bouncer, we should consider expanding balrog to have more of the data bouncer needs
  • the outline doesn't address how the versioned bouncer entries will be handled, which I think is worth considering

@MihaiTabara
Copy link

I like the idea of there being less places where we track what releases are current.
* the election bundles are repacks that exist in bouncer, but don't currently exist in balrog

Bah, good point about this. While this one in particular might or might not fade away in the future, there could be a need for similar ones to ramp-up. Bug https://bugzilla.mozilla.org/show_bug.cgi?id=1497097 tracks automating this for bouncerworkers.

@srfraser
Copy link
Author

* the outline doesn't address how the versioned bouncer entries will be handled, which I think is worth considering

It's something I don't currently have a solution for. Do we know where they're currently used?

@MihaiTabara
Copy link

MihaiTabara commented May 15, 2019

firefox-election-bundle is a product with multiple locations associated, similarly to what we have for firefox nightlies (e.g. firefox-nightly-latest-ssl). So if we're solving that for nightlies, it should work as well for firefox-election-bundle. It could be a matter of extending the static config with more products.

@tomprince
Copy link
Contributor

  • the outline doesn't address how the versioned bouncer entries will be handled, which I think is worth considering

It's something I don't currently have a solution for. Do we know where they're currently used?

A bunch of them (the -Complete and -Partial and variations) are used by balrog. See here and here.

I'm not sure if the other blobs are used.

rfcs/0023-bouncer-balrog.md Outdated Show resolved Hide resolved
@bhearsum
Copy link
Contributor

if balrog is going to be the data source for bouncer, we should consider expanding balrog to have more of the data bouncer needs

This makes me a bit uncomfortable with this idea. It's one thing to use pre-existing data that Balrog already has, but it's another to require Balrog to store data that it doesn't use for Bouncer's benefit. Perhaps we should get what we can from Balrog, and pull anything else from another source, and merge the two together? This could give us the ability to override Balrog data if it ever becomes necessary.

"firefox-latest-ssl": "firefox-release",
"firefox-devedition-latest-ssl": "devedition",
"firefox-beta-latest-ssl": "firefox-beta",
"firefox-nightly-latest-l10n-ssl": "firefox-nightly"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How will this work for releases which aren't the latest? Eg: Balrog points to versioned links for MAR files like http://download.mozilla.org/?product=firefox-62.0-complete&os=%OS_BOUNCER%&lang=%LOCALE%

If we use firefox-release to look them up, we won't get the correct set of locales.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My best thought so far is to support wildcards in there and extract the version from them. I'm open to better suggestions

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But if we're using Rules to find a Release, how can we find, eg: the Firefox-62.0-build1 Release?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we don't do locale validation then the only thing we need from the release blob is the version, so if it's in the query we don't have to look it up. It depends whether it's ok to redirect to a URL that will 404, by not checking locales.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That still has the problem of needing information in a blob that isn't pointed at by a Rule, I think...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we not be using a template to generate the older URLs?

@srfraser
Copy link
Author

srfraser commented Jun 6, 2019

There's someone working on a combined solution to this, whose github tag I don't know. The current plan is to query balrog for information about the latest version, but to have a new datastore, api and cli-tool for updating the fixed rules with specific versions and other customisations. This should be ready in Q3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants