You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2022/11/23 09:02:17 UTC

[camel-k] branch release-1.10.x updated: fix(GC): Default to APIResourceList group when APIResource group is empty

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

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


The following commit(s) were added to refs/heads/release-1.10.x by this push:
     new a0628b0e6 fix(GC): Default to APIResourceList group when APIResource group is empty
a0628b0e6 is described below

commit a0628b0e66d29388373c0baea2ce77b9b2f9626b
Author: Antonin Stefanutti <an...@stefanutti.fr>
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 755b51b9a..dd4d7dc64 100644
--- a/pkg/trait/gc.go
+++ b/pkg/trait/gc.go
@@ -221,14 +221,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