-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Add org and org/repo sharding for Blunderbuss #28169
Add org and org/repo sharding for Blunderbuss #28169
Conversation
Hi @dhaiducek. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/ok-to-test |
/retest |
Any updates here? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dhaiducek I see you waited long for the review, but if you are still willing to go through the process and still interested in the PR we can speed things up. I did some entry review of your PR and have some questions/comments.
reviewerCount int | ||
expectedRequested []string | ||
}{ | ||
name: "comment with a valid command in an open PR triggers auto-assignment", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the only possible test case? What about different config options?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can add some more test cases to make sure things are wired up. 🙂
I was wondering about that also though, and I'll have to double check this, but it looks like in general sharding replaces the configuration in its entirety rather than checking each value and providing overrides. Am I looking at that correctly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, that is my understanding as well. More test cases would be nice.
/retest |
37bc4c4
to
961d51a
Compare
Sorry for the churn here! Here's the TLDR:
I think this should be ready for another review now. |
@dhaiducek: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
961d51a
to
51f33a0
Compare
@droslean could you take a look? It would be nice to enable it in our prow. |
/cc @droslean |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll happily approve this! I trust Jakub and I have only skimmed the code; I have one nit about the serialization.
One question: does the implementation follow how the other plugins configs are sharded?
@jmguzik IIRC in the past, when we implemented the other sharding bits it bit us through the "load and save Prow config" job that we had in openshift - it loaded the unsharded config and dumped the sharded one, so this needed manual attention once we deployed the Prow with the changes. Just something to keep in mind.
Thanks @petr-muller I suspected something like this can happen. |
Signed-off-by: Dale Haiducek <19750917+dhaiducek@users.noreply.github.com>
51f33a0
to
00b954e
Compare
Sorry for the delay here--I got caught up with some other work. Thanks for the reviews, @petr-muller and @jmguzik! I've updated the key to snake case. |
@petr-muller I neglected to answer the sharding alignment question. The answer is "sort of". There isn't an entirely consistent way that configurations are sharded, but I made an attempt to choose and follow other existing conventions. Most notable, this implementation uses a flattened map, orgs_repos:
"org": <configuration>
"org/repo": <configuration> Whereas some other sharded configurations (like Tide.context_options, Branch Protection, and Bugzilla) chose to use an orgs:
"org":
<configuration>
repos:
"repo": <configuration> The downside to this implementation I'm realizing now is that it doesn't readily allow for org-specific options in the future like the nested |
@dhaiducek sorry for the late response. While waiting for a comment from @petr-muller, my personal opinion goes toward making it similar to other plugins. So I would vote for option:
|
70c7b73
to
7624cc6
Compare
An expanded config allows for future org-specific configurations. Signed-off-by: Dale Haiducek <19750917+dhaiducek@users.noreply.github.com>
7624cc6
to
373c490
Compare
For consideration, I've updated the struct to use nested orgs and nested repos as discussed in a new commit. It uses a pointer, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Thanks for the effort invested into this, and sorry for it to take this long.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dhaiducek, jmguzik, petr-muller The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Currently we have a bot user whose PRs should be ignored by Blunderbuss, a feature which was implemented in this PR:
However, we can't yet leverage the feature because we need to be able to specify a Blunderbuss configuration at our repo level since the Prow administrators don't want to have the same configuration globally.