@@ -24,6 +24,7 @@ import (
2424 "github.com/presslabs/controller-util/mergo/transformers"
2525 apps "k8s.io/api/apps/v1"
2626 core "k8s.io/api/core/v1"
27+ "k8s.io/apimachinery/pkg/api/resource"
2728 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2829 "k8s.io/apimachinery/pkg/runtime"
2930 "k8s.io/apimachinery/pkg/util/intstr"
@@ -364,6 +365,7 @@ func (s *sfsSyncer) ensureContainersSpec() []core.Container {
364365 Name : HelperXtrabackupPortName ,
365366 ContainerPort : HelperXtrabackupPort ,
366367 })
368+ helper .Resources = ensureResources (containerSidecarName )
367369
368370 // HELPER container
369371 helper .ReadinessProbe = ensureProbe (30 , 5 , 5 , core.Handler {
@@ -388,6 +390,9 @@ func (s *sfsSyncer) ensureContainersSpec() []core.Container {
388390 Name : ExporterPortName ,
389391 ContainerPort : ExporterPort ,
390392 })
393+
394+ exporter .Resources = ensureResources (containerExporterName )
395+
391396 exporter .LivenessProbe = ensureProbe (30 , 30 , 30 , core.Handler {
392397 HTTPGet : & core.HTTPGetAction {
393398 Path : ExporterPath ,
@@ -409,6 +414,7 @@ func (s *sfsSyncer) ensureContainersSpec() []core.Container {
409414 "--defaults-file" , fmt .Sprintf ("%s/client.cnf" , ConfVolumeMountPath ),
410415 },
411416 )
417+ heartbeat .Resources = ensureResources (containerHeartBeatName )
412418
413419 containers := []core.Container {
414420 mysql ,
@@ -431,6 +437,9 @@ func (s *sfsSyncer) ensureContainersSpec() []core.Container {
431437 s .opt .HelperImage ,
432438 command ,
433439 )
440+
441+ killer .Resources = ensureResources (containerKillerName )
442+
434443 containers = append (containers , killer )
435444 }
436445
@@ -631,3 +640,24 @@ func ensureProbe(delay, timeout, period int32, handler core.Handler) *core.Probe
631640func ensurePorts (ports ... core.ContainerPort ) []core.ContainerPort {
632641 return ports
633642}
643+
644+ func ensureResources (name string ) core.ResourceRequirements {
645+ limits := core.ResourceList {
646+ core .ResourceCPU : resource .MustParse ("50m" ),
647+ }
648+ requests := core.ResourceList {
649+ core .ResourceCPU : resource .MustParse ("10m" ),
650+ }
651+
652+ switch name {
653+ case containerExporterName :
654+ limits = core.ResourceList {
655+ core .ResourceCPU : resource .MustParse ("100m" ),
656+ }
657+ }
658+
659+ return core.ResourceRequirements {
660+ Limits : limits ,
661+ Requests : requests ,
662+ }
663+ }
0 commit comments