Fix a regression in webhook-based autoscaler (#1596)
The regression resulted in the webhook-based autoscaler be unable to find visible runner groups and therefore unable to scale up and down the target RunnerDeployment/RunnerSet at all when the webhook-based autoscaler was provided GitHub API credentials to enable the runner groups support. This fixes that. The regression was introduced via #1578 which is not released yet. Users of existing ARC releases are therefore not affected.
This commit is contained in:
parent
5a9e8545aa
commit
bfc5ea4727
|
|
@ -524,6 +524,7 @@ func (autoscaler *HorizontalRunnerAutoscalerGitHubWebhook) getScaleUpTargetWithF
|
|||
if autoscaler.GitHubClient != nil {
|
||||
simu := &simulator.Simulator{
|
||||
Client: autoscaler.GitHubClient,
|
||||
Log: log,
|
||||
}
|
||||
// Get available organization runner groups and enterprise runner groups for a repository
|
||||
// These are the sum of runner groups with repository access = All repositories and runner groups
|
||||
|
|
|
|||
|
|
@ -273,8 +273,17 @@ func (c *Client) ListOrganizationRunnerGroupsForRepository(ctx context.Context,
|
|||
var runnerGroups []*github.RunnerGroup
|
||||
|
||||
var opts github.ListOrgRunnerGroupOptions
|
||||
|
||||
opts.PerPage = 100
|
||||
opts.VisibleToRepository = repo
|
||||
|
||||
repoName := repo
|
||||
parts := strings.Split(repo, "/")
|
||||
if len(parts) == 2 {
|
||||
repoName = parts[1]
|
||||
}
|
||||
// This must be the repo name without the owner part, so in case the repo is "myorg/myrepo" the repo name
|
||||
// passed to visible_to_repository must be "myrepo".
|
||||
opts.VisibleToRepository = repoName
|
||||
|
||||
for {
|
||||
list, res, err := c.Actions.ListOrganizationRunnerGroups(ctx, org, &opts)
|
||||
|
|
|
|||
|
|
@ -5,10 +5,12 @@ import (
|
|||
"fmt"
|
||||
|
||||
"github.com/actions-runner-controller/actions-runner-controller/github"
|
||||
"github.com/go-logr/logr"
|
||||
)
|
||||
|
||||
type Simulator struct {
|
||||
Client *github.Client
|
||||
Log logr.Logger
|
||||
}
|
||||
|
||||
func (c *Simulator) GetRunnerGroupsVisibleToRepository(ctx context.Context, org, repo string, managed *VisibleRunnerGroups) (*VisibleRunnerGroups, error) {
|
||||
|
|
@ -24,6 +26,10 @@ func (c *Simulator) GetRunnerGroupsVisibleToRepository(ctx context.Context, org,
|
|||
return visible, err
|
||||
}
|
||||
|
||||
if c.Log.V(3).Enabled() {
|
||||
c.Log.V(3).Info("ListOrganizationRunnerGroupsForRepository succeeded", "runerGroups", runnerGroups)
|
||||
}
|
||||
|
||||
for _, runnerGroup := range runnerGroups {
|
||||
ref := NewRunnerGroupFromGitHub(runnerGroup)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue