mirror of
https://github.com/coreos/prometheus-operator.git
synced 2026-02-05 06:45:27 +01:00
Use functional options pattern for Prometheus Controller
Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
This commit is contained in:
@@ -246,6 +246,8 @@ func run(fs *flag.FlagSet) int {
|
||||
}
|
||||
cfg.KubernetesVersion = *kubernetesVersion
|
||||
level.Info(logger).Log("msg", "connection established", "cluster-version", cfg.KubernetesVersion)
|
||||
|
||||
promControllerOptions := make([]prometheuscontroller.ControllerOptions, 0)
|
||||
// Check if we can read the storage classs
|
||||
canReadStorageClass, err := checkPrerequisites(
|
||||
ctx,
|
||||
@@ -261,12 +263,14 @@ func run(fs *flag.FlagSet) int {
|
||||
Verbs: []string{"get"},
|
||||
},
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
level.Error(logger).Log("msg", "failed to check StorageClass support", "err", err)
|
||||
cancel()
|
||||
return 1
|
||||
}
|
||||
if canReadStorageClass {
|
||||
promControllerOptions = append(promControllerOptions, prometheuscontroller.WithStorageClassValidation())
|
||||
}
|
||||
|
||||
canEmitEvents, reasons, err := k8sutil.IsAllowed(ctx, kclient.AuthorizationV1().SelfSubjectAccessReviews(), nil,
|
||||
k8sutil.ResourceAttribute{
|
||||
@@ -307,6 +311,9 @@ func run(fs *flag.FlagSet) int {
|
||||
cancel()
|
||||
return 1
|
||||
}
|
||||
if scrapeConfigSupported {
|
||||
promControllerOptions = append(promControllerOptions, prometheuscontroller.WithScrapeConfig())
|
||||
}
|
||||
|
||||
prometheusSupported, err := checkPrerequisites(
|
||||
ctx,
|
||||
@@ -336,7 +343,7 @@ func run(fs *flag.FlagSet) int {
|
||||
|
||||
var po *prometheuscontroller.Operator
|
||||
if prometheusSupported {
|
||||
po, err = prometheuscontroller.New(ctx, restConfig, cfg, logger, r, scrapeConfigSupported, canReadStorageClass, eventRecorderFactory)
|
||||
po, err = prometheuscontroller.New(ctx, restConfig, cfg, logger, r, eventRecorderFactory, promControllerOptions...)
|
||||
if err != nil {
|
||||
level.Error(logger).Log("msg", "instantiating prometheus controller failed", "err", err)
|
||||
cancel()
|
||||
|
||||
Reference in New Issue
Block a user