Skip to content

Commit

Permalink
improve access to controller info
Browse files Browse the repository at this point in the history
  • Loading branch information
maigl committed Jan 26, 2023
1 parent 6a032bf commit 6f3d0ee
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 26 deletions.
5 changes: 1 addition & 4 deletions apiserver/controllers/controllers.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,7 @@ func (a *APIController) handleWorkflowJobEvent(w http.ResponseWriter, r *http.Re
signature := r.Header.Get("X-Hub-Signature-256")
hookType := r.Header.Get("X-Github-Hook-Installation-Target-Type")

controllerInfo, err := a.r.GetControllerInfo(r.Context())
if err != nil {
log.Printf("failed to get controller info for metics labels: %q", err)
}
controllerInfo := a.r.GetControllerInfo(r.Context())

if err := a.r.DispatchWorkflowJob(hookType, signature, body); err != nil {
if errors.Is(err, gErrors.ErrNotFound) {
Expand Down
6 changes: 1 addition & 5 deletions apiserver/controllers/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,7 @@ func (c *GarmCollector) Describe(ch chan<- *prometheus.Desc) {
}

func (c *GarmCollector) Collect(ch chan<- prometheus.Metric) {
controllerInfo, err := c.runner.GetControllerInfo(auth.GetAdminContext())
if err != nil {
log.Printf("error on fetching controllerInfo: %s", err)
// continue anyway
}
controllerInfo := c.runner.GetControllerInfo(auth.GetAdminContext())

c.CollectInstanceMetric(ch, controllerInfo.Hostname, controllerInfo.ControllerID.String())
c.CollectHealthMetric(ch, controllerInfo.Hostname, controllerInfo.ControllerID.String())
Expand Down
25 changes: 8 additions & 17 deletions runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ func NewRunner(ctx context.Context, cfg config.Config) (*Runner, error) {
creds[ghcreds.Name] = ghcreds
}

controllerInfo := params.ControllerInfo{
ControllerID: ctrlId.ControllerID,
}
controllerInfo.Hostname, _ = os.Hostname()

poolManagerCtrl := &poolManagerCtrl{
controllerID: ctrlId.ControllerID.String(),
config: cfg,
Expand All @@ -81,6 +86,7 @@ func NewRunner(ctx context.Context, cfg config.Config) (*Runner, error) {
poolManagerCtrl: poolManagerCtrl,
providers: providers,
credentials: creds,
controllerInfo: controllerInfo,
}

if err := runner.loadReposOrgsAndEnterprises(); err != nil {
Expand Down Expand Up @@ -268,23 +274,8 @@ type Runner struct {
controllerInfo params.ControllerInfo
}

func (r *Runner) GetControllerInfo(ctx context.Context) (params.ControllerInfo, error) {
if r.controllerInfo == (params.ControllerInfo{}) {
var err error
r.controllerInfo, err = r.store.ControllerInfo()
if err != nil {
return params.ControllerInfo{}, errors.Wrap(err, "fetching controller info")
}
}
if r.controllerInfo.Hostname == "" {
var err error
r.controllerInfo.Hostname, err = os.Hostname()
if err != nil {
// this returns a partial controller info, but it's better than nothing
return r.controllerInfo, errors.Wrap(err, "fetching hostname")
}
}
return r.controllerInfo, nil
func (r *Runner) GetControllerInfo(ctx context.Context) params.ControllerInfo {
return r.controllerInfo
}

func (r *Runner) ListCredentials(ctx context.Context) ([]params.GithubCredentials, error) {
Expand Down

0 comments on commit 6f3d0ee

Please sign in to comment.