Skip to content

Commit fd26b14

Browse files
committed
warn when mesh/metrics provider or canary target type isn't valid
fixes #1872 Signed-off-by: Mara Furland <mara@fur.land>
1 parent d4cc9bf commit fd26b14

File tree

4 files changed

+16
-3
lines changed

4 files changed

+16
-3
lines changed

pkg/canary/factory.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ func (factory *Factory) Controller(obj v1beta1.LocalObjectReference) Controller
9393
return serviceCtrl
9494
}
9595
default:
96+
factory.logger.Warnf("unknown canary target '%s', assuming deployment", obj.Kind)
9697
return deploymentCtrl
9798
}
9899
}
@@ -118,6 +119,7 @@ func (factory *Factory) ScalerReconciler(kind string) ScalerReconciler {
118119
case "ScaledObject":
119120
return soReconciler
120121
default:
122+
factory.logger.Errorf("unknown hpa kind '%s'")
121123
return nil
122124
}
123125
}

pkg/controller/scheduler_metrics.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (c *Controller) checkMetricProviderAvailability(canary *flaggerv1.Canary) e
7474
credentials = secret.Data
7575
}
7676

77-
factory := providers.Factory{}
77+
factory := providers.NewFactory(c.logger)
7878
provider, err := factory.Provider(metric.Interval, template.Spec.Provider, credentials, c.kubeConfig)
7979
if err != nil {
8080
return fmt.Errorf("metric template %s.%s provider %s error: %v",
@@ -292,7 +292,7 @@ func (c *Controller) runMetricChecks(canary *flaggerv1.Canary) bool {
292292
credentials = secret.Data
293293
}
294294

295-
factory := providers.Factory{}
295+
factory := providers.NewFactory(c.logger)
296296
provider, err := factory.Provider(metric.Interval, template.Spec.Provider, credentials, c.kubeConfig)
297297
if err != nil {
298298
c.recordEventErrorf(canary, "Metric template %s.%s provider %s error: %v",

pkg/metrics/providers/factory.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,19 @@ package providers
1818

1919
import (
2020
flaggerv1 "github.com/fluxcd/flagger/pkg/apis/flagger/v1beta1"
21+
"go.uber.org/zap"
2122
rest "k8s.io/client-go/rest"
2223
)
2324

24-
type Factory struct{}
25+
type Factory struct {
26+
logger *zap.SugaredLogger
27+
}
28+
29+
func NewFactory(logger *zap.SugaredLogger) *Factory {
30+
return &Factory{
31+
logger: logger,
32+
}
33+
}
2534

2635
func (factory Factory) Provider(metricInterval string, provider flaggerv1.MetricTemplateProvider, credentials map[string][]byte, config *rest.Config) (Interface, error) {
2736
switch provider.Type {
@@ -46,6 +55,7 @@ func (factory Factory) Provider(metricInterval string, provider flaggerv1.Metric
4655
case "splunk":
4756
return NewSplunkProvider(metricInterval, provider, credentials)
4857
default:
58+
factory.logger.Warnf("unknown metrics provider '%s', using prometheus", provider.Type)
4959
return NewPrometheusProvider(provider, credentials)
5060
}
5161
}

pkg/router/factory.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ func (factory *Factory) MeshRouter(provider string, labelSelector string) Interf
224224
case provider == flaggerv1.KubernetesProvider:
225225
return &NopRouter{}
226226
default:
227+
factory.logger.Warnf("unknown mesh router provider '%s', using istio", provider)
227228
return &IstioRouter{
228229
logger: factory.logger,
229230
flaggerClient: factory.flaggerClient,

0 commit comments

Comments
 (0)