1
0
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:
Arthur Silva Sens
2024-05-27 14:15:52 -03:00
parent 605966a832
commit 5488b9f494
2 changed files with 36 additions and 8 deletions

View File

@@ -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()