Skip to content

Commit c651482

Browse files
committed
Allow user to specify metrics exporter and sidecar resources
1 parent 1f259eb commit c651482

File tree

6 files changed

+38
-6
lines changed

6 files changed

+38
-6
lines changed

Changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
3333
* Add `Volumes` and `VolumesMounts` in `.Spec.PodSpec` to allow the user specifying custom volume
3434
mounts.
3535
* Add `InitContainers` and `Containers` in `.Spec.PodSpec` to allow the user specifying custom containers.
36+
* Add `MetricsExporterResources` and `MySQLOperatorSidecarResrouces` in `.Spec.PodSpec` to allow
37+
the user specifying resources for thos sidecars containers.
3638
### Changed
3739
* [#422](https://github.com/presslabs/mysql-operator/pull/422) adds the `SidecarServerPort` to the
3840
`MasterService` and introduces one new service, HealthyReplicasService, so that we can try to

config/crds/mysql_v1alpha1_mysqlcluster.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,14 @@ spec:
141141
type: array
142142
labels:
143143
type: object
144+
metricsExporterResources:
145+
description: MetricsExporterResources allows you to specify resources
146+
for metrics exporter container
147+
type: object
148+
mysqlOperatorSidecarResources:
149+
description: MySQLOperatorSidecarResources allows you to specify
150+
resources for sidecar container used to take backups with xtrabackup
151+
type: object
144152
nodeSelector:
145153
type: object
146154
priorityClassName:

pkg/apis/mysql/v1alpha1/mysqlcluster_defaults.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,20 @@ func (c *MysqlCluster) setPodSpecDefaults(spec *PodSpec) {
6868
},
6969
}
7070
}
71+
72+
if len(spec.MetricsExporterResources.Requests) == 0 {
73+
spec.MetricsExporterResources.Requests = corev1.ResourceList{
74+
corev1.ResourceCPU: resource.MustParse("10m"),
75+
corev1.ResourceMemory: resource.MustParse("32Mi"),
76+
}
77+
}
78+
79+
if len(spec.MySQLOperatorSidecarResources.Requests) == 0 {
80+
spec.MySQLOperatorSidecarResources.Requests = corev1.ResourceList{
81+
corev1.ResourceCPU: resource.MustParse("10m"),
82+
corev1.ResourceMemory: resource.MustParse("64Mi"),
83+
}
84+
}
7185
}
7286

7387
// SetDefaults for VolumeSpec

pkg/apis/mysql/v1alpha1/mysqlcluster_types.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,15 @@ type PodSpec struct {
194194
// Containers allows for user to specify extra sidecar containers to run along with mysql
195195
// +optional
196196
Containers []core.Container `json:"containers,omitempty"`
197+
198+
// MetricsExporterResources allows you to specify resources for metrics exporter container
199+
// +optional
200+
MetricsExporterResources core.ResourceRequirements `json:"metricsExporterResources,omitempty"`
201+
202+
// MySQLOperatorSidecarResources allows you to specify resources for sidecar container
203+
// used to take backups with xtrabackup
204+
// +optional
205+
MySQLOperatorSidecarResources core.ResourceRequirements `json:"mysqlOperatorSidecarResources,omitempty"`
197206
}
198207

199208
// VolumeSpec is the desired spec for storing mysql data. Only one of its

pkg/apis/mysql/v1alpha1/zz_generated.deepcopy.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/controller/mysqlcluster/internal/syncer/statefullset.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -648,19 +648,16 @@ func (s *sfsSyncer) ensureResources(name string) core.ResourceRequirements {
648648

649649
switch name {
650650
case containerExporterName:
651-
limits = core.ResourceList{
652-
core.ResourceCPU: resource.MustParse("100m"),
653-
core.ResourceMemory: resource.MustParse("128Mi"),
654-
}
651+
return s.cluster.Spec.PodSpec.MetricsExporterResources
652+
655653
case containerMySQLInitName, containerMysqlName:
656654
return s.cluster.Spec.PodSpec.Resources
657655

658656
case containerHeartBeatName:
659657
limits[core.ResourceMemory] = resource.MustParse("64Mi")
660658

661659
case containerSidecarName:
662-
// set same limits as mysql for sidecar container
663-
limits = s.cluster.Spec.PodSpec.Resources.Limits
660+
return s.cluster.Spec.PodSpec.MySQLOperatorSidecarResources
664661
}
665662

666663
return core.ResourceRequirements{

0 commit comments

Comments
 (0)