@@ -83,6 +83,12 @@ func (o *ResourceOrganizer) OrganizeByFunction() map[string][]*unstructured.Unst
8383 groups ["other" ] = o .resources .Other
8484 }
8585
86+ // Generic Services - Services that are neither webhook nor metrics
87+ genericServices := o .collectGenericServices ()
88+ if len (genericServices ) > 0 {
89+ groups ["services" ] = genericServices
90+ }
91+
8692 return groups
8793}
8894
@@ -150,6 +156,18 @@ func (o *ResourceOrganizer) collectMetricsResources() []*unstructured.Unstructur
150156 return metricsResources
151157}
152158
159+ // collectGenericServices gathers all other service resources
160+ func (o * ResourceOrganizer ) collectGenericServices () []* unstructured.Unstructured {
161+ var generic []* unstructured.Unstructured
162+
163+ for _ , service := range o .resources .Services {
164+ if o .isGenericService (service ) {
165+ generic = append (generic , service )
166+ }
167+ }
168+ return generic
169+ }
170+
153171// collectPrometheusResources gathers prometheus related resources
154172func (o * ResourceOrganizer ) collectPrometheusResources () []* unstructured.Unstructured {
155173 var prometheusResources []* unstructured.Unstructured
@@ -171,3 +189,9 @@ func (o *ResourceOrganizer) isMetricsService(service *unstructured.Unstructured)
171189 serviceName := service .GetName ()
172190 return strings .Contains (serviceName , "metrics" )
173191}
192+
193+ // isGenericService determines if a service is a generic service to
194+ // include all remaining Services that are not webhook or metrics
195+ func (o * ResourceOrganizer ) isGenericService (service * unstructured.Unstructured ) bool {
196+ return ! o .isWebhookService (service ) && ! o .isMetricsService (service )
197+ }
0 commit comments