1
0
Fork 0
mirror of https://github.com/prometheus-operator/prometheus-operator.git synced 2025-04-21 11:48:53 +00:00

prometheus-operator: set config-reloader containers resources

Currently when passing `--config-reloader-(cpu|memory)` values those are
used only for limits. This PR sets the same values for requests.
I wasn't sure if the options for the requests should have been passed
with separate options but I thought this was a good compromise in the
meantime.

The initial question was brought up in https://github.com/coreos/kube-prometheus/issues/376
This commit is contained in:
Elisiano Petrini 2020-01-15 17:58:00 +01:00
parent a382ba5486
commit 752c49e819
2 changed files with 25 additions and 9 deletions

View file

@ -725,16 +725,19 @@ func makeStatefulSetSpec(p monitoringv1.Prometheus, c *Config, ruleConfigMapName
Args: []string{
fmt.Sprintf("--webhook-url=%s", localReloadURL),
},
VolumeMounts: []v1.VolumeMount{},
Resources: v1.ResourceRequirements{Limits: v1.ResourceList{}},
VolumeMounts: []v1.VolumeMount{},
Resources: v1.ResourceRequirements{
Limits: v1.ResourceList{}, Requests: v1.ResourceList{}},
TerminationMessagePolicy: v1.TerminationMessageFallbackToLogsOnError,
}
if c.ConfigReloaderCPU != "0" {
container.Resources.Limits[v1.ResourceCPU] = resource.MustParse(c.ConfigReloaderCPU)
container.Resources.Requests[v1.ResourceCPU] = resource.MustParse(c.ConfigReloaderCPU)
}
if c.ConfigReloaderMemory != "0" {
container.Resources.Limits[v1.ResourceMemory] = resource.MustParse(c.ConfigReloaderMemory)
container.Resources.Requests[v1.ResourceMemory] = resource.MustParse(c.ConfigReloaderMemory)
}
for _, name := range ruleConfigMapNames {
@ -855,12 +858,15 @@ func makeStatefulSetSpec(p monitoringv1.Prometheus, c *Config, ruleConfigMapName
prometheusImage = *p.Spec.Image
}
prometheusConfigReloaderResources := v1.ResourceRequirements{Limits: v1.ResourceList{}}
prometheusConfigReloaderResources := v1.ResourceRequirements{
Limits: v1.ResourceList{}, Requests: v1.ResourceList{}}
if c.ConfigReloaderCPU != "0" {
prometheusConfigReloaderResources.Limits[v1.ResourceCPU] = resource.MustParse(c.ConfigReloaderCPU)
prometheusConfigReloaderResources.Requests[v1.ResourceCPU] = resource.MustParse(c.ConfigReloaderCPU)
}
if c.ConfigReloaderMemory != "0" {
prometheusConfigReloaderResources.Limits[v1.ResourceMemory] = resource.MustParse(c.ConfigReloaderMemory)
prometheusConfigReloaderResources.Requests[v1.ResourceMemory] = resource.MustParse(c.ConfigReloaderMemory)
}
operatorContainers := append([]v1.Container{

View file

@ -808,9 +808,14 @@ func TestSidecarsNoCPULimits(t *testing.T) {
t.Fatalf("Unexpected error while making StatefulSet: %v", err)
}
expectedResources := v1.ResourceRequirements{Limits: v1.ResourceList{
v1.ResourceMemory: resource.MustParse("50Mi"),
}}
expectedResources := v1.ResourceRequirements{
Limits: v1.ResourceList{
v1.ResourceMemory: resource.MustParse("50Mi"),
},
Requests: v1.ResourceList{
v1.ResourceMemory: resource.MustParse("50Mi"),
},
}
for _, c := range sset.Spec.Template.Spec.Containers {
if (c.Name == "prometheus-config-reloader" || c.Name == "rules-configmap-reloader") && !reflect.DeepEqual(c.Resources, expectedResources) {
t.Fatal("Unexpected resource requests/limits set, when none should be set.")
@ -834,9 +839,14 @@ func TestSidecarsNoMemoryLimits(t *testing.T) {
t.Fatalf("Unexpected error while making StatefulSet: %v", err)
}
expectedResources := v1.ResourceRequirements{Limits: v1.ResourceList{
v1.ResourceCPU: resource.MustParse("100m"),
}}
expectedResources := v1.ResourceRequirements{
Limits: v1.ResourceList{
v1.ResourceCPU: resource.MustParse("100m"),
},
Requests: v1.ResourceList{
v1.ResourceCPU: resource.MustParse("100m"),
},
}
for _, c := range sset.Spec.Template.Spec.Containers {
if (c.Name == "prometheus-config-reloader" || c.Name == "rules-configmap-reloader") && !reflect.DeepEqual(c.Resources, expectedResources) {
t.Fatal("Unexpected resource requests/limits set, when none should be set.")