Skip to content

Commit d912898

Browse files
authored
Annotate imported EndpointSlices with multicluster label (#56)
1 parent 45bc9e2 commit d912898

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

pkg/controllers/cloudmap_controller.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@ const (
2424
// TODO move to configuration
2525
syncPeriod = 2 * time.Second
2626

27+
// DerivedServiceAnnotation annotates a ServiceImport with derived Service name
2728
DerivedServiceAnnotation = "multicluster.k8s.aws/derived-service"
29+
30+
// LabelServiceName is used to indicate the name of multi-cluster service
31+
// that an EndpointSlice belongs to.
32+
LabelServiceImportName = "multicluster.kubernetes.io/service-name"
2833
)
2934

3035
// CloudMapReconciler reconciles state of Cloud Map services with local ServiceImport objects
@@ -148,7 +153,7 @@ func (r *CloudMapReconciler) reconcileService(ctx context.Context, svc *model.Se
148153
return err
149154
}
150155

151-
err = r.updateEndpointSlices(ctx, svc, existingService)
156+
err = r.updateEndpointSlices(ctx, svcImport, svc, existingService)
152157
if err != nil {
153158
return err
154159
}
@@ -203,7 +208,7 @@ func (r *CloudMapReconciler) createDerivedService(ctx context.Context, svc *mode
203208
return nil
204209
}
205210

206-
func (r *CloudMapReconciler) updateEndpointSlices(ctx context.Context, cloudMapService *model.Service, svc *v1.Service) error {
211+
func (r *CloudMapReconciler) updateEndpointSlices(ctx context.Context, svcImport *v1alpha1.ServiceImport, cloudMapService *model.Service, svc *v1.Service) error {
207212
existingSlicesList := v1beta1.EndpointSliceList{}
208213
var existingSlices []*v1beta1.EndpointSlice
209214
if err := r.Client.List(ctx, &existingSlicesList,
@@ -212,7 +217,7 @@ func (r *CloudMapReconciler) updateEndpointSlices(ctx context.Context, cloudMapS
212217
}
213218
if len(existingSlicesList.Items) == 0 {
214219
// create new endpoint slice
215-
existingSlices = createEndpointSlicesStruct(cloudMapService, svc)
220+
existingSlices = createEndpointSlicesStruct(svcImport, cloudMapService, svc)
216221
for _, slice := range existingSlices {
217222
if err := r.Client.Create(ctx, slice); err != nil {
218223
return err
@@ -252,7 +257,7 @@ func createDerivedServiceStruct(svc *model.Service, svcImport *v1alpha1.ServiceI
252257
}
253258
}
254259

255-
func createEndpointSlicesStruct(cloudMapSvc *model.Service, svc *v1.Service) []*v1beta1.EndpointSlice {
260+
func createEndpointSlicesStruct(svcImport *v1alpha1.ServiceImport, cloudMapSvc *model.Service, svc *v1.Service) []*v1beta1.EndpointSlice {
256261
slices := make([]*v1beta1.EndpointSlice, 0)
257262

258263
t := true
@@ -279,7 +284,10 @@ func createEndpointSlicesStruct(cloudMapSvc *model.Service, svc *v1.Service) []*
279284

280285
slices = append(slices, &v1beta1.EndpointSlice{
281286
ObjectMeta: metav1.ObjectMeta{
282-
Labels: map[string]string{v1beta1.LabelServiceName: svc.Name},
287+
Labels: map[string]string{
288+
v1beta1.LabelServiceName: svc.Name, // derived Service name
289+
LabelServiceImportName: svcImport.Name, // original ServiceImport name
290+
},
283291
GenerateName: svc.Name + "-",
284292
OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(svc, schema.GroupVersionKind{
285293
Version: svc.TypeMeta.APIVersion,

0 commit comments

Comments
 (0)