Skip to content
This repository was archived by the owner on May 28, 2021. It is now read-only.

Commit d5d2694

Browse files
author
bcurrerb
committed
Added unit tests for ensuring server image default
1 parent ce721f9 commit d5d2694

File tree

3 files changed

+27
-58
lines changed

3 files changed

+27
-58
lines changed

pkg/apis/mysql/v1alpha1/cluster_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ func TestDefaultVersion(t *testing.T) {
8585
cluster := &Cluster{}
8686
cluster.EnsureDefaults()
8787

88-
if cluster.Spec.Version != defaultVersion {
89-
t.Errorf("Expected default version to be %s but got %s", defaultVersion, cluster.Spec.Version)
88+
if cluster.Spec.Version != DefaultVersion {
89+
t.Errorf("Expected default version to be %s but got %s", DefaultVersion, cluster.Spec.Version)
9090
}
9191
}
9292

pkg/apis/mysql/v1alpha1/helpers.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ import (
2020
)
2121

2222
const (
23-
// The default MySQL version to use if not specified explicitly by user
24-
defaultVersion = "8.0.12"
23+
// DefaultVersion is the MySQL version to use if not specified explicitly by user
24+
DefaultVersion = "8.0.12"
2525
defaultMembers = 3
2626
defaultBaseServerID = 1000
2727
// maxBaseServerID is the maximum safe value for BaseServerID calculated
2828
// as max MySQL server_id value - max Replication Group size.
2929
maxBaseServerID uint32 = 4294967295 - 9
30-
mysqlServer = "mysql/mysql-server"
30+
// MysqlServer is the image to use if no image is specified explicitly by the user.
31+
MysqlServer = "mysql/mysql-server"
3132
)
3233

3334
const (
@@ -65,11 +66,11 @@ func (c *Cluster) EnsureDefaults() *Cluster {
6566
}
6667

6768
if c.Spec.Version == "" {
68-
c.Spec.Version = defaultVersion
69+
c.Spec.Version = DefaultVersion
6970
}
7071

7172
if c.Spec.MySQLServerImage == "" {
72-
c.Spec.MySQLServerImage = mysqlServer
73+
c.Spec.MySQLServerImage = MysqlServer
7374
}
7475

7576
return c

pkg/resources/statefulsets/statefulset_test.go

Lines changed: 19 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@ import (
1818
"reflect"
1919
"testing"
2020

21+
"k8s.io/api/core/v1"
22+
2123
"github.com/stretchr/testify/assert"
2224
corev1 "k8s.io/api/core/v1"
23-
"k8s.io/apimachinery/pkg/api/resource"
2425
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2526

2627
"github.com/oracle/mysql-operator/pkg/apis/mysql/v1alpha1"
@@ -223,67 +224,34 @@ func TestClusterWithTolerations(t *testing.T) {
223224
}
224225
}
225226

226-
func TestClusterWithResourceRequirements(t *testing.T) {
227-
mysqlServerResourceRequirements := corev1.ResourceRequirements{
228-
Limits: corev1.ResourceList{
229-
corev1.ResourceCPU: resource.MustParse("2"),
230-
corev1.ResourceMemory: resource.MustParse("2Gi"),
231-
},
232-
Requests: corev1.ResourceList{
233-
corev1.ResourceCPU: resource.MustParse("500m"),
234-
corev1.ResourceMemory: resource.MustParse("1Gi"),
235-
},
236-
}
237-
238-
mysqlAgentResourceRequirements := corev1.ResourceRequirements{
239-
Limits: corev1.ResourceList{
240-
corev1.ResourceCPU: resource.MustParse("500m"),
241-
corev1.ResourceMemory: resource.MustParse("512Mi"),
242-
},
243-
Requests: corev1.ResourceList{
244-
corev1.ResourceCPU: resource.MustParse("100m"),
245-
corev1.ResourceMemory: resource.MustParse("128Mi"),
246-
},
247-
}
248-
227+
func TestClusterEnterpriseImage(t *testing.T) {
249228
cluster := &v1alpha1.Cluster{
250229
Spec: v1alpha1.ClusterSpec{
251-
Resources: &v1alpha1.Resources{
252-
Server: &mysqlServerResourceRequirements,
253-
Agent: &mysqlAgentResourceRequirements,
230+
MySQLServerImage: "some/image/path",
231+
ImagePullSecret: &v1.LocalObjectReference{
232+
Name: "someSecretName",
254233
},
255234
},
256235
}
236+
cluster.EnsureDefaults()
257237

258238
statefulSet := NewForCluster(cluster, mockOperatorConfig().Images, "mycluster")
259239

260-
assert.Equal(t, mysqlServerResourceRequirements, statefulSet.Spec.Template.Spec.Containers[0].Resources, "MySQL-Server container resource requirements do not match expected.")
261-
assert.Equal(t, mysqlAgentResourceRequirements, statefulSet.Spec.Template.Spec.Containers[1].Resources, "MySQL-Agent container resource requirements do not match expected.")
262-
}
240+
pullSecrets := statefulSet.Spec.Template.Spec.ImagePullSecrets
241+
ps := pullSecrets[len(pullSecrets)-1]
242+
si := statefulSet.Spec.Template.Spec.Containers[0].Image
263243

264-
func TestClusterWithOnlyMysqlServerResourceRequirements(t *testing.T) {
265-
mysqlServerResourceRequirements := corev1.ResourceRequirements{
266-
Limits: corev1.ResourceList{
267-
corev1.ResourceCPU: resource.MustParse("2"),
268-
corev1.ResourceMemory: resource.MustParse("2Gi"),
269-
},
270-
Requests: corev1.ResourceList{
271-
corev1.ResourceCPU: resource.MustParse("500m"),
272-
corev1.ResourceMemory: resource.MustParse("1Gi"),
273-
},
274-
}
244+
assert.Equal(t, "someSecretName", ps.Name)
245+
assert.Equal(t, "some/image/path:"+v1alpha1.DefaultVersion, si)
246+
}
275247

276-
cluster := &v1alpha1.Cluster{
277-
Spec: v1alpha1.ClusterSpec{
278-
Resources: &v1alpha1.Resources{
279-
Server: &mysqlServerResourceRequirements,
280-
},
281-
},
282-
}
248+
func TestClusterNoImage(t *testing.T) {
249+
cluster := &v1alpha1.Cluster{}
250+
cluster.EnsureDefaults()
283251

284252
statefulSet := NewForCluster(cluster, mockOperatorConfig().Images, "mycluster")
285253

286-
assert.Equal(t, mysqlServerResourceRequirements, statefulSet.Spec.Template.Spec.Containers[0].Resources, "MySQL-Server container resource requirements do not match expected.")
287-
assert.Nil(t, statefulSet.Spec.Template.Spec.Containers[1].Resources.Limits, "MySQL-Agent container has resource limits set which were not initially defined in the spec")
288-
assert.Nil(t, statefulSet.Spec.Template.Spec.Containers[1].Resources.Requests, "MySQL-Agent container has resource requests set which were not initially defined in the spec")
254+
si := statefulSet.Spec.Template.Spec.Containers[0].Image
255+
256+
assert.Equal(t, v1alpha1.MysqlServer+":"+v1alpha1.DefaultVersion, si)
289257
}

0 commit comments

Comments
 (0)