mirror of
https://github.com/fluxcd/flagger.git
synced 2026-04-15 06:57:34 +00:00
- bump Canary and MetricTemplate version to v1beta1 - regenerate clientset and CRD
77 lines
1.5 KiB
Go
77 lines
1.5 KiB
Go
package observers
|
|
|
|
import (
|
|
"strings"
|
|
|
|
flaggerv1 "github.com/weaveworks/flagger/pkg/apis/flagger/v1beta1"
|
|
"github.com/weaveworks/flagger/pkg/metrics/providers"
|
|
)
|
|
|
|
type Factory struct {
|
|
Client providers.Interface
|
|
}
|
|
|
|
func NewFactory(metricsServer string) (*Factory, error) {
|
|
client, err := providers.NewPrometheusProvider(flaggerv1.MetricTemplateProvider{
|
|
Type: "prometheus",
|
|
Address: metricsServer,
|
|
SecretRef: nil,
|
|
}, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &Factory{
|
|
Client: client,
|
|
}, nil
|
|
}
|
|
|
|
func (factory Factory) Observer(provider string) Interface {
|
|
switch {
|
|
case provider == "none":
|
|
return &HttpObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "kubernetes":
|
|
return &HttpObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "appmesh":
|
|
return &AppMeshObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "crossover":
|
|
return &CrossoverObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "nginx":
|
|
return &NginxObserver{
|
|
client: factory.Client,
|
|
}
|
|
case strings.HasPrefix(provider, "gloo"):
|
|
return &GlooObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "smi:linkerd":
|
|
return &LinkerdObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "crossover:service":
|
|
return &CrossoverServiceObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "linkerd":
|
|
return &LinkerdObserver{
|
|
client: factory.Client,
|
|
}
|
|
case provider == "contour":
|
|
return &ContourObserver{
|
|
client: factory.Client,
|
|
}
|
|
default:
|
|
return &IstioObserver{
|
|
client: factory.Client,
|
|
}
|
|
}
|
|
}
|