Skip to content

Commit 86b20f7

Browse files
ZiyangLinScalityhervedombya
authored andcommitted
Add Service creation and reconciliation to ScalityUIComponent controller
1 parent 7cf119c commit 86b20f7

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

internal/controller/scalityuicomponent_controller.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,37 @@ func (r *ScalityUIComponentReconciler) Reconcile(ctx context.Context, req ctrl.R
8585

8686
logger.Info("Deployment reconciled", "result", deploymentResult)
8787

88+
// Service
89+
service := &corev1.Service{
90+
ObjectMeta: metav1.ObjectMeta{
91+
Name: scalityUIComponent.Name,
92+
Namespace: scalityUIComponent.Namespace,
93+
},
94+
}
95+
96+
serviceResult, err := ctrl.CreateOrUpdate(ctx, r.Client, service, func() error {
97+
service.Spec = corev1.ServiceSpec{
98+
Selector: map[string]string{
99+
"app": scalityUIComponent.Name,
100+
},
101+
Ports: []corev1.ServicePort{
102+
{
103+
Name: "http",
104+
Protocol: corev1.ProtocolTCP,
105+
Port: 80,
106+
},
107+
},
108+
}
109+
return nil
110+
})
111+
112+
if err != nil {
113+
logger.Error(err, "Failed to create or update Service")
114+
return ctrl.Result{}, err
115+
}
116+
117+
logger.Info("Service reconciled", "result", serviceResult)
118+
88119
return ctrl.Result{}, nil
89120
}
90121

@@ -93,5 +124,6 @@ func (r *ScalityUIComponentReconciler) SetupWithManager(mgr ctrl.Manager) error
93124
return ctrl.NewControllerManagedBy(mgr).
94125
For(&uiv1alpha1.ScalityUIComponent{}).
95126
Owns(&appsv1.Deployment{}).
127+
Owns(&corev1.Service{}).
96128
Complete(r)
97129
}

internal/controller/scalityuicomponent_controller_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/controller-runtime/pkg/reconcile"
2727

2828
appsv1 "k8s.io/api/apps/v1"
29+
corev1 "k8s.io/api/core/v1"
2930
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3031

3132
uiv1alpha1 "github.com/scality/ui-operator/api/v1alpha1"
@@ -94,6 +95,17 @@ var _ = Describe("ScalityUIComponent Controller", func() {
9495

9596
Expect(deployment.Spec.Template.ObjectMeta.Labels["app"]).To(Equal(resourceName))
9697
Expect(deployment.Spec.Selector.MatchLabels["app"]).To(Equal(resourceName))
98+
99+
By("Checking if Service was created with correct specifications")
100+
service := &corev1.Service{}
101+
err = k8sClient.Get(ctx, typeNamespacedName, service)
102+
Expect(err).NotTo(HaveOccurred())
103+
104+
Expect(service.Spec.Selector["app"]).To(Equal(resourceName))
105+
Expect(service.Spec.Ports).To(HaveLen(1))
106+
Expect(service.Spec.Ports[0].Name).To(Equal("http"))
107+
Expect(service.Spec.Ports[0].Protocol).To(Equal(corev1.ProtocolTCP))
108+
Expect(service.Spec.Ports[0].Port).To(Equal(int32(80)))
97109
})
98110
})
99111
})

0 commit comments

Comments
 (0)