Skip to content

Commit 4741d1a

Browse files
author
Kenneth Rosario
authored
Exclude orphaned binidngs and dedupe status.urls (#962)
1 parent b881aef commit 4741d1a

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

pkg/apis/kf/v1alpha1/app_lifecycle.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"k8s.io/apimachinery/pkg/api/resource"
2626
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
2727
"k8s.io/apimachinery/pkg/runtime/schema"
28+
"k8s.io/apimachinery/pkg/util/sets"
2829
"knative.dev/pkg/apis"
2930
duckv1beta1 "knative.dev/pkg/apis/duck/v1beta1"
3031
)
@@ -180,7 +181,7 @@ func (status *AppStatus) PropagateServiceAccountStatus(serviceAccount *corev1.Se
180181
func (status *AppStatus) PropagateRouteStatus(bindings []QualifiedRouteBinding, routes []Route, undeclaredBindings []QualifiedRouteBinding) {
181182
var rs []AppRouteStatus
182183
var conditions []apis.Condition
183-
var urls []string
184+
urls := sets.NewString()
184185

185186
// Ensure output is deterministic
186187
sort.Slice(bindings, func(i, j int) bool {
@@ -245,7 +246,7 @@ func (status *AppStatus) PropagateRouteStatus(bindings []QualifiedRouteBinding,
245246

246247
conditions = append(conditions, cond)
247248
rs = append(rs, bindingStatus)
248-
urls = append(urls, bindingStatus.URL)
249+
urls.Insert(bindingStatus.URL)
249250
}
250251

251252
// Add statuses for all bindings that exist but aren't on the App.
@@ -267,12 +268,10 @@ func (status *AppStatus) PropagateRouteStatus(bindings []QualifiedRouteBinding,
267268
Reason: "ExtraRouteBinding",
268269
Message: fmt.Sprintf("The Route %s has an extra binding to this App", binding.Source.String()),
269270
})
270-
urls = append(urls, binding.Source.String())
271271
}
272272

273-
// Sort the URLs for deterministic output.
274-
sort.Strings(urls)
275-
status.URLs = urls
273+
// Sort and dedupe the URLs for deterministic output.
274+
status.URLs = urls.List()
276275

277276
summaryCondition, allConditions := SummarizeChildConditions(conditions)
278277

pkg/apis/kf/v1alpha1/app_lifecycle_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,7 @@ func TestAppStatus_PropagateRouteStatus(t *testing.T) {
841841
buildDesiredStatus(bindingA, true),
842842
buildOrphanedStatus(bindingB),
843843
},
844-
wantURLs: []string{bindingA.Source.String(), bindingB.Source.String()},
844+
wantURLs: []string{bindingA.Source.String()},
845845
},
846846
}
847847

@@ -852,8 +852,8 @@ func TestAppStatus_PropagateRouteStatus(t *testing.T) {
852852
status.PropagateRouteStatus(tc.bindings, tc.routes, tc.extraBindings)
853853

854854
var urls []string
855-
for _, r := range status.Routes {
856-
urls = append(urls, r.URL)
855+
for _, b := range tc.bindings {
856+
urls = append(urls, b.Source.String())
857857
}
858858

859859
actualCond := status.GetCondition(AppConditionRouteReady)

0 commit comments

Comments
 (0)