Skip to content

Commit 7e9f0db

Browse files
committed
Add more unit tests for TestGetOverrideReplicasFor
and use k8s.io/utils/ptr as pointer type in it
1 parent e2614b5 commit 7e9f0db

File tree

1 file changed

+62
-12
lines changed

1 file changed

+62
-12
lines changed

pkg/controller/deployment/deployment_helper_test.go

Lines changed: 62 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import (
1818
"k8s.io/apimachinery/pkg/watch"
1919
clienttesting "k8s.io/client-go/testing"
2020
"k8s.io/client-go/tools/cache"
21+
"k8s.io/utils/ptr"
2122
)
2223

2324
func TestMergeContainerResources(t *testing.T) {
@@ -946,8 +947,6 @@ func TestGetOverrideSchedulingFor(t *testing.T) {
946947
}
947948

948949
func TestGetOverrideReplicasFor(t *testing.T) {
949-
ptr := func(i int32) *int32 { return &i }
950-
951950
tests := []struct {
952951
name string
953952
certManagerObj v1alpha1.CertManager
@@ -962,27 +961,27 @@ func TestGetOverrideReplicasFor(t *testing.T) {
962961
},
963962
Spec: v1alpha1.CertManagerSpec{
964963
ControllerConfig: &v1alpha1.DeploymentConfig{
965-
OverrideReplicas: ptr(2),
964+
OverrideReplicas: ptr.To(int32(3)),
966965
},
967966
},
968967
},
969968
deploymentName: certmanagerControllerDeployment,
970-
expectedOverrideReplicas: ptr(2),
969+
expectedOverrideReplicas: ptr.To(int32(3)),
971970
},
972971
{
973-
name: "get override scheduling of cert manager webhook config",
972+
name: "get override replicas of cert manager webhook config",
974973
certManagerObj: v1alpha1.CertManager{
975974
ObjectMeta: metav1.ObjectMeta{
976975
Name: "cluster",
977976
},
978977
Spec: v1alpha1.CertManagerSpec{
979978
WebhookConfig: &v1alpha1.DeploymentConfig{
980-
OverrideReplicas: ptr(0),
979+
OverrideReplicas: ptr.To(int32(4)),
981980
},
982981
},
983982
},
984983
deploymentName: certmanagerWebhookDeployment,
985-
expectedOverrideReplicas: ptr(0),
984+
expectedOverrideReplicas: ptr.To(int32(4)),
986985
},
987986
{
988987
name: "get override replicas of cert manager cainjector config",
@@ -992,23 +991,69 @@ func TestGetOverrideReplicasFor(t *testing.T) {
992991
},
993992
Spec: v1alpha1.CertManagerSpec{
994993
CAInjectorConfig: &v1alpha1.DeploymentConfig{
995-
OverrideReplicas: ptr(2),
994+
OverrideReplicas: ptr.To(int32(2)),
996995
},
997996
},
998997
},
999998
deploymentName: certmanagerCAinjectorDeployment,
1000-
expectedOverrideReplicas: ptr(2),
999+
expectedOverrideReplicas: ptr.To(int32(2)),
1000+
},
1001+
{
1002+
name: "get nil override replicas when config exists but replicas field is nil for controller",
1003+
certManagerObj: v1alpha1.CertManager{
1004+
ObjectMeta: metav1.ObjectMeta{
1005+
Name: "cluster",
1006+
},
1007+
Spec: v1alpha1.CertManagerSpec{
1008+
ControllerConfig: &v1alpha1.DeploymentConfig{
1009+
OverrideArgs: []string{"--v=3"},
1010+
OverrideReplicas: nil,
1011+
},
1012+
},
1013+
},
1014+
deploymentName: certmanagerControllerDeployment,
1015+
expectedOverrideReplicas: nil,
1016+
},
1017+
{
1018+
name: "get nil override replicas when config exists but replicas field is nil for webhook",
1019+
certManagerObj: v1alpha1.CertManager{
1020+
ObjectMeta: metav1.ObjectMeta{
1021+
Name: "cluster",
1022+
},
1023+
Spec: v1alpha1.CertManagerSpec{
1024+
WebhookConfig: &v1alpha1.DeploymentConfig{
1025+
OverrideEnv: []corev1.EnvVar{{Name: "TEST", Value: "value"}},
1026+
OverrideReplicas: nil,
1027+
},
1028+
},
1029+
},
1030+
deploymentName: certmanagerWebhookDeployment,
1031+
expectedOverrideReplicas: nil,
10011032
},
10021033
{
1003-
name: "no override replicas configured",
1034+
name: "get nil override replicas when config exists but replicas field is nil for cainjector",
10041035
certManagerObj: v1alpha1.CertManager{
10051036
ObjectMeta: metav1.ObjectMeta{
10061037
Name: "cluster",
10071038
},
10081039
Spec: v1alpha1.CertManagerSpec{
1009-
// no configs set
1040+
CAInjectorConfig: &v1alpha1.DeploymentConfig{
1041+
OverrideLabels: map[string]string{"test": "label"},
1042+
OverrideReplicas: nil,
1043+
},
10101044
},
10111045
},
1046+
deploymentName: certmanagerCAinjectorDeployment,
1047+
expectedOverrideReplicas: nil,
1048+
},
1049+
{
1050+
name: "get nil override replicas when cert manager config is not set",
1051+
certManagerObj: v1alpha1.CertManager{
1052+
ObjectMeta: metav1.ObjectMeta{
1053+
Name: "cluster",
1054+
},
1055+
Spec: v1alpha1.CertManagerSpec{},
1056+
},
10121057
deploymentName: certmanagerControllerDeployment,
10131058
expectedOverrideReplicas: nil,
10141059
},
@@ -1085,7 +1130,12 @@ func TestGetOverrideReplicasFor(t *testing.T) {
10851130

10861131
actualOverrideReplicas, err := getOverrideReplicasFor(certManagerInformers, tc.deploymentName)
10871132
assert.NoError(t, err)
1088-
require.Equal(t, tc.expectedOverrideReplicas, actualOverrideReplicas)
1133+
if tc.expectedOverrideReplicas == nil {
1134+
assert.Nil(t, actualOverrideReplicas)
1135+
} else {
1136+
require.NotNil(t, actualOverrideReplicas)
1137+
assert.Equal(t, *tc.expectedOverrideReplicas, *actualOverrideReplicas)
1138+
}
10891139

10901140
// Delete the cert manager object using the fake client.
10911141
err = fakeClient.OperatorV1alpha1().CertManagers().Delete(ctx, tc.certManagerObj.Name, metav1.DeleteOptions{})

0 commit comments

Comments
 (0)