Skip to content

Commit

Permalink
MON-3304: Add option to specify resource limits for all components
Browse files Browse the repository at this point in the history
Signed-off-by: Pranshu Srivastava <rexagod@gmail.com>
  • Loading branch information
rexagod committed Aug 7, 2023
1 parent 47320d5 commit 3bcce4e
Show file tree
Hide file tree
Showing 4 changed files with 192 additions and 86 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
- [#1950](https://github.com/openshift/cluster-monitoring-operator/pull/1950) Disable CORS headers on Thanos querier by default and add a flag to enable them back.
- [#1963](https://github.com/openshift/cluster-monitoring-operator/pull/1963) Add nodeExporter settings for network devices list.
- [#2049](https://github.com/openshift/cluster-monitoring-operator/pull/2049) Remove Kube*QuotaOvercommit alerts.
- [#2067](https://github.com/openshift/cluster-monitoring-operator/pull/2067) Add options to specify resource requests and limits for all components.

## 4.13

Expand Down
27 changes: 27 additions & 0 deletions pkg/manifests/manifests.go
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,9 @@ func (f *Factory) KubeStateMetricsDeployment() (*appsv1.Deployment, error) {
d.Spec.Template.Spec.Containers[i].Args = f.setTLSSecurityConfiguration(container.Args, KubeRbacProxyTLSCipherSuitesFlag, KubeRbacProxyMinTLSVersionFlag)
case "kube-state-metrics":
d.Spec.Template.Spec.Containers[i].Image = f.config.Images.KubeStateMetrics
if f.config.ClusterMonitoringConfiguration.KubeStateMetricsConfig.Resources != nil {
d.Spec.Template.Spec.Containers[i].Resources = *f.config.ClusterMonitoringConfiguration.KubeStateMetricsConfig.Resources
}
}
}

Expand Down Expand Up @@ -809,6 +812,9 @@ func (f *Factory) OpenShiftStateMetricsDeployment() (*appsv1.Deployment, error)
d.Spec.Template.Spec.Containers[i].Args = f.setTLSSecurityConfiguration(container.Args, KubeRbacProxyTLSCipherSuitesFlag, KubeRbacProxyMinTLSVersionFlag)
case "openshift-state-metrics":
d.Spec.Template.Spec.Containers[i].Image = f.config.Images.OpenShiftStateMetrics
if f.config.ClusterMonitoringConfiguration.OpenShiftMetricsConfig.Resources != nil {
d.Spec.Template.Spec.Containers[i].Resources = *f.config.ClusterMonitoringConfiguration.OpenShiftMetricsConfig.Resources
}
}
}

Expand Down Expand Up @@ -964,6 +970,9 @@ func (f *Factory) NodeExporterDaemonSet() (*appsv1.DaemonSet, error) {
if err != nil {
return nil, err
}
if f.config.ClusterMonitoringConfiguration.NodeExporterConfig.Resources != nil {
ds.Spec.Template.Spec.Containers[i].Resources = *f.config.ClusterMonitoringConfiguration.NodeExporterConfig.Resources
}
case "kube-rbac-proxy":
ds.Spec.Template.Spec.Containers[i].Image = f.config.Images.KubeRbacProxy
ds.Spec.Template.Spec.Containers[i].Args = f.setTLSSecurityConfiguration(container.Args, KubeRbacProxyTLSCipherSuitesFlag, KubeRbacProxyMinTLSVersionFlag)
Expand Down Expand Up @@ -2004,6 +2013,10 @@ func (f *Factory) PrometheusAdapterDeployment(apiAuthSecretName string, requesth
spec.Containers[0].Args = f.setTLSSecurityConfiguration(spec.Containers[0].Args,
PrometheusAdapterTLSCipherSuitesFlag, PrometheusAdapterTLSMinTLSVersionFlag)

if f.config.ClusterMonitoringConfiguration.K8sPrometheusAdapter.Resources != nil {
spec.Containers[0].Resources = *f.config.ClusterMonitoringConfiguration.K8sPrometheusAdapter.Resources
}

dep.Spec.Template.Spec = spec

return dep, nil
Expand Down Expand Up @@ -2162,6 +2175,8 @@ func (f *Factory) PrometheusOperatorAdmissionWebhookDeployment() (*appsv1.Deploy
case "prometheus-operator-admission-webhook":
d.Spec.Template.Spec.Containers[i].Image = f.config.Images.PrometheusOperatorAdmissionWebhook

// TODO: Derive resource request from relevant deployment(s)?

args := d.Spec.Template.Spec.Containers[i].Args
if f.config.ClusterMonitoringConfiguration.PrometheusOperatorConfig.LogLevel != "" {
args = append(args, fmt.Sprintf("--log-level=%s", f.config.ClusterMonitoringConfiguration.PrometheusOperatorConfig.LogLevel))
Expand Down Expand Up @@ -2213,6 +2228,10 @@ func (f *Factory) PrometheusOperatorDeployment() (*appsv1.Deployment, error) {
case "prometheus-operator":
d.Spec.Template.Spec.Containers[i].Image = f.config.Images.PrometheusOperator

if f.config.ClusterMonitoringConfiguration.PrometheusOperatorConfig.Resources != nil {
d.Spec.Template.Spec.Containers[i].Resources = *f.config.ClusterMonitoringConfiguration.PrometheusOperatorConfig.Resources
}

args := d.Spec.Template.Spec.Containers[i].Args
for i := range args {
if strings.HasPrefix(args[i], PrometheusConfigReloaderFlag) && f.config.Images.PrometheusConfigReloader != "" {
Expand Down Expand Up @@ -2261,6 +2280,10 @@ func (f *Factory) PrometheusOperatorUserWorkloadDeployment() (*appsv1.Deployment
case "prometheus-operator":
d.Spec.Template.Spec.Containers[i].Image = f.config.Images.PrometheusOperator

if f.config.UserWorkloadConfiguration.PrometheusOperator.Resources != nil {
d.Spec.Template.Spec.Containers[i].Resources = *f.config.UserWorkloadConfiguration.PrometheusOperator.Resources
}

args := d.Spec.Template.Spec.Containers[i].Args
for i := range args {
if strings.HasPrefix(args[i], PrometheusConfigReloaderFlag) {
Expand Down Expand Up @@ -2884,6 +2907,10 @@ func (f *Factory) TelemeterClientDeployment(proxyCABundleCM *v1.ConfigMap, s *v1
case "telemeter-client":
d.Spec.Template.Spec.Containers[i].Image = f.config.Images.TelemeterClient

if f.config.ClusterMonitoringConfiguration.TelemeterClientConfig.Resources != nil {
d.Spec.Template.Spec.Containers[i].Resources = *f.config.ClusterMonitoringConfiguration.TelemeterClientConfig.Resources
}

if f.config.ClusterMonitoringConfiguration.TelemeterClientConfig.ClusterID != "" {
setContainerEnvironmentVariable(&d.Spec.Template.Spec.Containers[i], "ID", f.config.ClusterMonitoringConfiguration.TelemeterClientConfig.ClusterID)
}
Expand Down

0 comments on commit 3bcce4e

Please sign in to comment.