Skip to content

Commit ddf4126

Browse files
committed
Implements review comments
1 parent b248e92 commit ddf4126

File tree

5 files changed

+37
-22
lines changed

5 files changed

+37
-22
lines changed

api/operator/v1alpha1/certmanager_types.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,11 @@ type DeploymentConfig struct {
8282
// +optional
8383
OverrideResources CertManagerResourceRequirements `json:"overrideResources,omitempty"`
8484

85-
// Replicas defines the number of replicas to run for an operand
85+
// OverrideReplicas defines the number of replicas to run for an operand
8686
// +kubebuilder:validation:Optional
87+
// +kubebuilder:validation:Minimum=1
8788
// +optional
88-
OverrideReplicas int32 `json:"overrideReplicas,omitempty"`
89+
OverrideReplicas *int32 `json:"overrideReplicas,omitempty"`
8990

9091
// +kubebuilder:validation:Optional
9192
// +optional

pkg/controller/deployment/deployment_helper.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,10 @@ func getOverridePodLabelsFor(certmanagerinformer certmanagerinformer.CertManager
216216

217217
// getOverrideReplicasFor is a helper function that returns the OverrideReplicas provided
218218
// in the operator spec based on the deployment name.
219-
func getOverrideReplicasFor(certmanagerinformer certmanagerinformer.CertManagerInformer, deploymentName string) (int32, error) {
219+
func getOverrideReplicasFor(certmanagerinformer certmanagerinformer.CertManagerInformer, deploymentName string) (*int32, error) {
220220
certmanager, err := certmanagerinformer.Lister().Get("cluster")
221221
if err != nil {
222-
return 0, fmt.Errorf("failed to get certmanager %q due to %v", "cluster", err)
222+
return nil, fmt.Errorf("failed to get certmanager %q due to %v", "cluster", err)
223223
}
224224

225225
switch deploymentName {
@@ -236,9 +236,9 @@ func getOverrideReplicasFor(certmanagerinformer certmanagerinformer.CertManagerI
236236
return certmanager.Spec.CAInjectorConfig.OverrideReplicas, nil
237237
}
238238
default:
239-
return 0, fmt.Errorf("unsupported deployment name %q provided", deploymentName)
239+
return nil, fmt.Errorf("unsupported deployment name %q provided", deploymentName)
240240
}
241-
return 0, nil
241+
return nil, nil
242242
}
243243

244244
// getOverrideResourcesFor is a helper function that returns the OverrideResources provided

pkg/controller/deployment/deployment_helper_test.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -946,11 +946,13 @@ func TestGetOverrideSchedulingFor(t *testing.T) {
946946
}
947947

948948
func TestGetOverrideReplicasFor(t *testing.T) {
949+
ptr := func(i int32) *int32 { return &i }
950+
949951
tests := []struct {
950952
name string
951953
certManagerObj v1alpha1.CertManager
952954
deploymentName string
953-
expectedOverrideReplicas int32
955+
expectedOverrideReplicas *int32
954956
}{
955957
{
956958
name: "get override replicas of cert manager controller config",
@@ -960,12 +962,12 @@ func TestGetOverrideReplicasFor(t *testing.T) {
960962
},
961963
Spec: v1alpha1.CertManagerSpec{
962964
ControllerConfig: &v1alpha1.DeploymentConfig{
963-
OverrideReplicas: 2,
965+
OverrideReplicas: ptr(2),
964966
},
965967
},
966968
},
967969
deploymentName: certmanagerControllerDeployment,
968-
expectedOverrideReplicas: 2,
970+
expectedOverrideReplicas: ptr(2),
969971
},
970972
{
971973
name: "get override scheduling of cert manager webhook config",
@@ -975,12 +977,12 @@ func TestGetOverrideReplicasFor(t *testing.T) {
975977
},
976978
Spec: v1alpha1.CertManagerSpec{
977979
WebhookConfig: &v1alpha1.DeploymentConfig{
978-
OverrideReplicas: 0,
980+
OverrideReplicas: ptr(0),
979981
},
980982
},
981983
},
982984
deploymentName: certmanagerWebhookDeployment,
983-
expectedOverrideReplicas: 0,
985+
expectedOverrideReplicas: ptr(0),
984986
},
985987
{
986988
name: "get override scheduling of cert manager cainjector config",
@@ -990,12 +992,25 @@ func TestGetOverrideReplicasFor(t *testing.T) {
990992
},
991993
Spec: v1alpha1.CertManagerSpec{
992994
CAInjectorConfig: &v1alpha1.DeploymentConfig{
993-
OverrideReplicas: 2,
995+
OverrideReplicas: ptr(2),
994996
},
995997
},
996998
},
997999
deploymentName: certmanagerCAinjectorDeployment,
998-
expectedOverrideReplicas: 2,
1000+
expectedOverrideReplicas: ptr(2),
1001+
},
1002+
{
1003+
name: "no override replicas configured",
1004+
certManagerObj: v1alpha1.CertManager{
1005+
ObjectMeta: metav1.ObjectMeta{
1006+
Name: "cluster",
1007+
},
1008+
Spec: v1alpha1.CertManagerSpec{
1009+
// no configs set
1010+
},
1011+
},
1012+
deploymentName: certmanagerControllerDeployment,
1013+
expectedOverrideReplicas: nil,
9991014
},
10001015
}
10011016

pkg/controller/deployment/deployment_overrides.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"k8s.io/utils/ptr"
1313

1414
operatorv1 "github.com/openshift/api/operator/v1"
15-
v1 "github.com/openshift/api/operator/v1"
1615
"github.com/operator-framework/operator-lib/proxy"
1716

1817
"github.com/openshift/cert-manager-operator/api/operator/v1alpha1"
@@ -59,9 +58,9 @@ type overrideEnvFunc func(certmanagerinformer.CertManagerInformer, string) ([]co
5958
type overrideLabelsFunc func(certmanagerinformer.CertManagerInformer, string) (map[string]string, error)
6059

6160
// overrideReplicasFunc defines a function signature that is accepted by
62-
// withContainerReplicasOverrideHook(). This function returns the override
61+
// withDeploymentReplicasOverrideHook(). This function returns the override
6362
// replicas provided to cert-manager-operator spec.
64-
type overrideReplicasFunc func(certmanagerinformer.CertManagerInformer, string) (int32, error)
63+
type overrideReplicasFunc func(certmanagerinformer.CertManagerInformer, string) (*int32, error)
6564

6665
// overrideResourcesFunc defines a function signature that is accepted by
6766
// withContainerResourcesOverrideHook(). This function returns the override
@@ -143,18 +142,18 @@ func withContainerResourcesOverrideHook(certmanagerinformer certmanagerinformer.
143142
}
144143
}
145144

146-
// withContainerReplicasOverrideHook overrides the deployment replicas with those provided by
145+
// withDeploymentReplicasOverrideHook overrides the deployment replicas with those provided by
147146
// the overrideReplicasFunc function.
148-
func withContainerReplicasOverrideHook(certmanagerinformer certmanagerinformer.CertManagerInformer, deploymentName string, fn overrideReplicasFunc) func(operatorSpec *v1.OperatorSpec, deployment *appsv1.Deployment) error {
149-
return func(operatorSpec *v1.OperatorSpec, deployment *appsv1.Deployment) error {
147+
func withDeploymentReplicasOverrideHook(certmanagerinformer certmanagerinformer.CertManagerInformer, deploymentName string, fn overrideReplicasFunc) func(operatorSpec *operatorv1.OperatorSpec, deployment *appsv1.Deployment) error {
148+
return func(operatorSpec *operatorv1.OperatorSpec, deployment *appsv1.Deployment) error {
150149
overrideReplicas, err := fn(certmanagerinformer, deploymentName)
151150
if err != nil {
152151
return err
153152
}
154153

155-
if overrideReplicas != 0 {
154+
if overrideReplicas != nil {
156155
if deployment.Name == deploymentName {
157-
deployment.Spec.Replicas = &overrideReplicas
156+
deployment.Spec.Replicas = overrideReplicas
158157
}
159158
}
160159
return nil

pkg/controller/deployment/generic_deployment_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func newGenericDeploymentController(
5050
withContainerArgsValidateHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name),
5151
withContainerEnvOverrideHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name, getOverrideEnvFor),
5252
withContainerEnvValidateHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name),
53-
withContainerReplicasOverrideHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name, getOverrideReplicasFor),
53+
withDeploymentReplicasOverrideHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name, getOverrideReplicasFor),
5454
withContainerResourcesOverrideHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name, getOverrideResourcesFor),
5555
withContainerResourcesValidateHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name),
5656
withPodSchedulingOverrideHook(certManagerOperatorInformers.Operator().V1alpha1().CertManagers(), deployment.Name, getOverrideSchedulingFor),

0 commit comments

Comments
 (0)