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

Commit 7c4372a

Browse files
author
bcurrerb
committed
Added unit tests for ensuring server image default
1 parent 45f59ab commit 7c4372a

File tree

3 files changed

+42
-7
lines changed

3 files changed

+42
-7
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: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ 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"
2325
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -221,3 +223,35 @@ func TestClusterWithTolerations(t *testing.T) {
221223
}
222224
}
223225
}
226+
227+
func TestClusterEnterpriseImage(t *testing.T) {
228+
cluster := &v1alpha1.Cluster{
229+
Spec: v1alpha1.ClusterSpec{
230+
MySQLServerImage: "some/image/path",
231+
ImagePullSecret: &v1.LocalObjectReference{
232+
Name: "someSecretName",
233+
},
234+
},
235+
}
236+
cluster.EnsureDefaults()
237+
238+
statefulSet := NewForCluster(cluster, mockOperatorConfig().Images, "mycluster")
239+
240+
pullSecrets := statefulSet.Spec.Template.Spec.ImagePullSecrets
241+
ps := pullSecrets[len(pullSecrets)-1]
242+
si := statefulSet.Spec.Template.Spec.Containers[0].Image
243+
244+
assert.Equal(t, "someSecretName", ps.Name)
245+
assert.Equal(t, "some/image/path:"+v1alpha1.DefaultVersion, si)
246+
}
247+
248+
func TestClusterNoImage(t *testing.T) {
249+
cluster := &v1alpha1.Cluster{}
250+
cluster.EnsureDefaults()
251+
252+
statefulSet := NewForCluster(cluster, mockOperatorConfig().Images, "mycluster")
253+
254+
si := statefulSet.Spec.Template.Spec.Containers[0].Image
255+
256+
assert.Equal(t, v1alpha1.MysqlServer+":"+v1alpha1.DefaultVersion, si)
257+
}

0 commit comments

Comments
 (0)