From 6cd18ff1fd3d73118a48d70c1a46b8c8b5a7bb7b Mon Sep 17 00:00:00 2001 From: Michael Kuhnt Date: Thu, 26 Jan 2023 20:24:26 +0100 Subject: [PATCH] improve access to controller info --- apiserver/controllers/controllers.go | 5 +---- apiserver/controllers/metrics.go | 6 +----- runner/runner.go | 31 ++++++++++++++-------------- 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/apiserver/controllers/controllers.go b/apiserver/controllers/controllers.go index f778ea81..092fd4ab 100644 --- a/apiserver/controllers/controllers.go +++ b/apiserver/controllers/controllers.go @@ -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) { diff --git a/apiserver/controllers/metrics.go b/apiserver/controllers/metrics.go index 53526842..8c518342 100644 --- a/apiserver/controllers/metrics.go +++ b/apiserver/controllers/metrics.go @@ -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()) diff --git a/runner/runner.go b/runner/runner.go index 94d99efc..2f0b32e8 100644 --- a/runner/runner.go +++ b/runner/runner.go @@ -66,6 +66,10 @@ func NewRunner(ctx context.Context, cfg config.Config) (*Runner, error) { creds[ghcreds.Name] = ghcreds } + controllerInfo := params.ControllerInfo{ + ControllerID: ctrlId.ControllerID, + } + poolManagerCtrl := &poolManagerCtrl{ controllerID: ctrlId.ControllerID.String(), config: cfg, @@ -81,6 +85,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 { @@ -268,23 +273,17 @@ 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") - } +// GetControllerInfo returns the controller id and the hostname. +// This data might be used in metrics and logging. +func (r *Runner) GetControllerInfo(ctx context.Context) params.ControllerInfo { + // hostname could change + hostname, err := os.Hostname() + if err != nil { + log.Printf("error getting hostname: %v", err) + //not much choice but to continue } - 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 + r.controllerInfo.Hostname = hostname + return r.controllerInfo } func (r *Runner) ListCredentials(ctx context.Context) ([]params.GithubCredentials, error) {