Skip to content

Commit

Permalink
relabel services in all-in-one mode
Browse files Browse the repository at this point in the history
Signed-off-by: Alexandre Lamarre <alexandre.lamarre@suse.com>
  • Loading branch information
alexandreLamarre committed Oct 3, 2023
1 parent 3e4eb3a commit c5dc1d3
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 30 deletions.
14 changes: 7 additions & 7 deletions pkg/opni/cliutil/render_metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,13 +122,13 @@ func renderCortexServiceStatus(status *cortexadmin.CortexStatus) string {

services := map[string]map[string]string{}

services["Distributor"] = servicesByName(status.Distributor)
services["Ingester"] = servicesByName(status.Ingester)
services["Ruler"] = servicesByName(status.Ruler)
services["Purger"] = servicesByName(status.Purger)
services["Compactor"] = servicesByName(status.Compactor)
services["Store Gateway"] = servicesByName(status.StoreGateway)
services["Querier"] = servicesByName(status.Querier)
services["Distributor"] = servicesByName(status.GetDistributor())
services["Ingester"] = servicesByName(status.GetIngester())
services["Ruler"] = servicesByName(status.GetRuler())
services["Purger"] = servicesByName(status.GetPurger())
services["Compactor"] = servicesByName(status.GetCompactor())
services["Store Gateway"] = servicesByName(status.GetStoreGateway())
services["Querier"] = servicesByName(status.GetQuerier())

moduleNames := []string{}
for _, v := range services {
Expand Down
18 changes: 17 additions & 1 deletion pkg/resources/monitoring/cortex/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,7 @@ type CortexServiceOptions struct {
addHeadlessService bool
publishNotReadyAddresses bool
addServiceMonitor bool
targetLabelOverride string
}

type CortexServiceOption func(*CortexServiceOptions)
Expand All @@ -547,14 +548,29 @@ func AddServiceMonitor() CortexServiceOption {
}
}

func WithTargetLabelOverride(override string) CortexServiceOption {
return func(o *CortexServiceOptions) {
o.targetLabelOverride = override
}
}

func serviceOverride(componentOverride string, fallback string) string {
if componentOverride != "" {
return componentOverride
}
return fallback
}

func (r *Reconciler) buildCortexWorkloadServices(
target string,
opts ...CortexServiceOption,
) []resources.Resource {
options := CortexServiceOptions{}
options.apply(opts...)

targetLabels := cortexWorkloadLabels(target)
targetLabels := cortexWorkloadLabels(
serviceOverride(options.targetLabelOverride, target),
)

httpPort := corev1.ServicePort{
Name: "http-metrics",
Expand Down
57 changes: 35 additions & 22 deletions pkg/resources/monitoring/cortex/services.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,39 +10,52 @@ import (
)

func (r *Reconciler) services() []resources.Resource {
svcOpts := []CortexServiceOption{
AddServiceMonitor(),
}
if targets := r.mc.Spec.Cortex.CortexWorkloads.GetTargets(); len(targets) == 1 &&
lo.ValueOr(targets, all, nil) != nil {
svcOpts = append(svcOpts, WithTargetLabelOverride(all))
}

resources := []resources.Resource{
r.memberlistService(),
}
resources = append(resources, r.buildCortexWorkloadServices(alertmanager,
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
alertmanager,
svcOpts...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(compactor,
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
compactor,
svcOpts...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(purger,
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
purger,
svcOpts...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(distributor,
AddHeadlessService(true),
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
distributor,
append(svcOpts, AddHeadlessService(true))...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(ingester,
AddHeadlessService(false),
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
ingester,
append(svcOpts, AddHeadlessService(false))...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(querier,
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
querier,
svcOpts...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(queryFrontend,
AddHeadlessService(true),
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
queryFrontend,
append(svcOpts, AddHeadlessService(true))...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(ruler,
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
ruler,
svcOpts...,
)...)
resources = append(resources, r.buildCortexWorkloadServices(storeGateway,
AddHeadlessService(false),
AddServiceMonitor(),
resources = append(resources, r.buildCortexWorkloadServices(
storeGateway,
append(svcOpts, AddHeadlessService(false))...,
)...)
return resources
}
Expand Down

0 comments on commit c5dc1d3

Please sign in to comment.