in internal/controllers/watch/kind.go [247:267]
func findRefKey(comp *apiv1.Composition, synth *apiv1.Synthesizer, meta *metav1.PartialObjectMetadata) string {
var bindingKey string
for _, binding := range comp.Spec.Bindings {
if binding.Resource.Name == meta.GetName() && binding.Resource.Namespace == meta.GetNamespace() {
bindingKey = binding.Key
break
}
}
for _, ref := range synth.Spec.Refs {
gvk := meta.GetObjectKind().GroupVersionKind()
matchesGVK := ref.Resource.Group == gvk.Group && ref.Resource.Version == gvk.Version && ref.Resource.Kind == gvk.Kind
matchesKey := bindingKey == ref.Key
matchesNSN := ref.Resource.Name == meta.GetName() && ref.Resource.Namespace == meta.GetNamespace()
if matchesGVK && (matchesKey || matchesNSN) {
return ref.Key
}
}
return ""
}