Skip to content

Commit e3cc52a

Browse files
drivebyercndoit18
authored andcommitted
Support default resource of init container
1 parent 828cc9b commit e3cc52a

File tree

3 files changed

+44
-1
lines changed

3 files changed

+44
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
99

1010
### Added
1111
* Add `KeepAfterDelete` in `.Spec.VolumeSpec` to keep pvc after mysql cluster been deleted.
12+
* Add default resource to init container.
1213

1314
### Changed
1415
### Removed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ func (s *sfsSyncer) ensureInitContainersSpec() []core.Container {
351351
s.cluster.GetSidecarImage(),
352352
[]string{"clone-and-init"},
353353
)
354+
cloneInit.Resources = s.ensureResources(containerCloneAndInitName)
354355
initCs = append(initCs, cloneInit)
355356

356357
// add init container for MySQL if docker image supports this
@@ -676,7 +677,7 @@ func (s *sfsSyncer) ensureResources(name string) core.ResourceRequirements {
676677
case containerExporterName:
677678
return s.cluster.Spec.PodSpec.MetricsExporterResources
678679

679-
case containerMySQLInitName, containerMysqlName:
680+
case containerMySQLInitName, containerCloneAndInitName, containerMysqlName:
680681
return s.cluster.Spec.PodSpec.Resources
681682

682683
case containerHeartBeatName:

pkg/controller/mysqlcluster/mysqlcluster_controller_test.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"math/rand"
2222
"time"
2323

24+
"k8s.io/apimachinery/pkg/api/resource"
25+
2426
. "github.com/onsi/ginkgo"
2527
. "github.com/onsi/ginkgo/extensions/table"
2628
. "github.com/onsi/gomega"
@@ -439,6 +441,18 @@ var _ = Describe("MysqlCluster controller", func() {
439441
Spec: api.MysqlClusterSpec{
440442
Replicas: &two,
441443
SecretName: secret.Name,
444+
PodSpec: api.PodSpec{
445+
Resources: corev1.ResourceRequirements{
446+
Requests: corev1.ResourceList{
447+
corev1.ResourceCPU: resource.MustParse("100m"),
448+
corev1.ResourceMemory: resource.MustParse("100Mi"),
449+
},
450+
Limits: corev1.ResourceList{
451+
corev1.ResourceCPU: resource.MustParse("100m"),
452+
corev1.ResourceMemory: resource.MustParse("100Mi"),
453+
},
454+
},
455+
},
442456
},
443457
})
444458

@@ -478,13 +492,40 @@ var _ = Describe("MysqlCluster controller", func() {
478492
)))
479493
})
480494

495+
It("should have default resource", func() {
496+
cluster.Spec.VolumeSpec = api.VolumeSpec{
497+
EmptyDir: &corev1.EmptyDirVolumeSource{},
498+
}
499+
500+
// crete cluster
501+
Expect(c.Create(context.TODO(), cluster.Unwrap())).To(Succeed())
502+
Eventually(requests, timeout).Should(Receive(Equal(expectedRequest)))
503+
Eventually(requests, timeout).Should(Receive(Equal(expectedRequest)))
504+
505+
sts := &appsv1.StatefulSet{}
506+
stsKey := types.NamespacedName{
507+
Name: cluster.GetNameForResource(mysqlcluster.StatefulSet),
508+
Namespace: cluster.Namespace,
509+
}
510+
511+
Expect(c.Get(context.TODO(), stsKey, sts)).To(Succeed())
512+
513+
// test default resource of sts.Spec.Template.Spec.InitContainers should be set
514+
Expect(sts.Spec.Template.Spec.InitContainers[0].Resources.Requests[corev1.ResourceCPU]).To(Equal(resource.MustParse("100m")))
515+
Expect(sts.Spec.Template.Spec.InitContainers[0].Resources.Requests[corev1.ResourceMemory]).To(Equal(resource.MustParse("100Mi")))
516+
Expect(sts.Spec.Template.Spec.InitContainers[0].Resources.Limits[corev1.ResourceCPU]).To(Equal(resource.MustParse("100m")))
517+
Expect(sts.Spec.Template.Spec.InitContainers[0].Resources.Limits[corev1.ResourceMemory]).To(Equal(resource.MustParse("100Mi")))
518+
})
519+
481520
})
482521

483522
Context("testing defaults", func() {
484523
It("should set the defaults", func() {
485524
newCl := &api.MysqlCluster{}
486525
scheme.Default(newCl)
487526
Expect(newCl.Spec.Replicas).To(PointTo(Equal(int32(1))))
527+
528+
// test default resource of spec.podSpec
488529
})
489530
})
490531
})

0 commit comments

Comments
 (0)