This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git


The following commit(s) were added to refs/heads/main by this push:
     new fe448dff5 fix(GC): Default to APIResourceList group when APIResource 
group is empty
fe448dff5 is described below

commit fe448dff59b53d9a0cfa67104559a7236155761c
Author: Antonin Stefanutti <[email protected]>
AuthorDate: Tue Nov 22 11:19:04 2022 +0100

    fix(GC): Default to APIResourceList group when APIResource group is empty
---
 pkg/trait/gc.go | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/pkg/trait/gc.go b/pkg/trait/gc.go
index 2ec07f384..500fd7663 100644
--- a/pkg/trait/gc.go
+++ b/pkg/trait/gc.go
@@ -204,14 +204,23 @@ func (t *gcTrait) getDeletableTypes(e *Environment) 
(map[schema.GroupVersionKind
        GVKs := make(map[schema.GroupVersionKind]struct{})
        for _, APIResourceList := range APIResourceLists {
                for _, resource := range APIResourceList.APIResources {
+                       resourceGroup := resource.Group
+                       if resourceGroup == "" {
+                               // Empty implies the group of the containing 
resource list should be used
+                               gv, err := 
schema.ParseGroupVersion(APIResourceList.GroupVersion)
+                               if err != nil {
+                                       return nil, err
+                               }
+                               resourceGroup = gv.Group
+                       }
                rule:
                        for _, rule := range ssrr.Status.ResourceRules {
                                if !util.StringSliceContainsAnyOf(rule.Verbs, 
"delete", "*") {
                                        continue
                                }
-                               for _, group := range rule.APIGroups {
-                                       for _, name := range rule.Resources {
-                                               if (resource.Group == group || 
group == "*") && (resource.Name == name || name == "*") {
+                               for _, ruleGroup := range rule.APIGroups {
+                                       for _, ruleResource := range 
rule.Resources {
+                                               if (resourceGroup == ruleGroup 
|| ruleGroup == "*") && (resource.Name == ruleResource || ruleResource == "*") {
                                                        GVK := 
schema.FromAPIVersionAndKind(APIResourceList.GroupVersion, resource.Kind)
                                                        GVKs[GVK] = struct{}{}
                                                        break rule

Reply via email to