From 42214949eb2769999d078112653dd078e7b09798 Mon Sep 17 00:00:00 2001 From: ffforest Date: Mon, 10 Feb 2025 12:21:57 +0800 Subject: [PATCH 1/2] fix: resource ID should remain 4 parts --- pkg/resources/kubernetes/kubernetes.go | 7 ++----- pkg/resources/terraform/terraform.go | 4 ++-- pkg/resources/terraform/types.go | 5 +++++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/pkg/resources/kubernetes/kubernetes.go b/pkg/resources/kubernetes/kubernetes.go index 1338017..a2d5923 100644 --- a/pkg/resources/kubernetes/kubernetes.go +++ b/pkg/resources/kubernetes/kubernetes.go @@ -27,11 +27,8 @@ import ( // its GroupVersionKind and ObjectMeta. func ToKusionResourceID(gvk schema.GroupVersionKind, objectMeta metav1.ObjectMeta) string { // resource id example: apps/v1:Deployment:nginx:nginx-deployment - if gvk.Group == "" { - gvk.Group = "core" - } - - id := gvk.Group + resources.SegmentSeparator + gvk.Version + resources.SegmentSeparator + gvk.Kind + apiVersion, kind := gvk.ToAPIVersionAndKind() + id := apiVersion + resources.SegmentSeparator + kind if objectMeta.Namespace != "" { id += resources.SegmentSeparator + objectMeta.Namespace } diff --git a/pkg/resources/terraform/terraform.go b/pkg/resources/terraform/terraform.go index 1d47336..dce35c4 100644 --- a/pkg/resources/terraform/terraform.go +++ b/pkg/resources/terraform/terraform.go @@ -70,8 +70,8 @@ func ToKusionResourceID(p Provider, resourceType, resourceName string) (string, return "", err } - tfProviderStr := tfProvider.String() - return strings.Join([]string{tfProviderStr, resourceType, resourceName}, resources.SegmentSeparator), nil + tfProviderIDStr := tfProvider.IDString() + return strings.Join([]string{tfProviderIDStr, resourceType, resourceName}, resources.SegmentSeparator), nil } // NewKusionResource creates a Kusion Resource object with the given resourceType, resourceID, attributes. diff --git a/pkg/resources/terraform/types.go b/pkg/resources/terraform/types.go index b58149c..5519ed0 100644 --- a/pkg/resources/terraform/types.go +++ b/pkg/resources/terraform/types.go @@ -48,3 +48,8 @@ type TFProvider struct { func (tp TFProvider) String() string { return tp.Hostname.ForDisplay() + resources.SegmentSeparator + tp.Namespace + resources.SegmentSeparator + tp.Type } + +// String returns an FQN string, intended for use in machine-readable output. +func (tp TFProvider) IDString() string { + return tp.Namespace + resources.SegmentSeparator + tp.Type +} From 172aa077a10decb732deae232caffe1c40401187 Mon Sep 17 00:00:00 2001 From: ffforest Date: Mon, 10 Feb 2025 14:09:02 +0800 Subject: [PATCH 2/2] fix: typo in comments --- pkg/resources/terraform/types.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/resources/terraform/types.go b/pkg/resources/terraform/types.go index 5519ed0..03cd9fe 100644 --- a/pkg/resources/terraform/types.go +++ b/pkg/resources/terraform/types.go @@ -49,7 +49,7 @@ func (tp TFProvider) String() string { return tp.Hostname.ForDisplay() + resources.SegmentSeparator + tp.Namespace + resources.SegmentSeparator + tp.Type } -// String returns an FQN string, intended for use in machine-readable output. +// IDString returns the ProviderNamespace:ProviderName string, intended for use in a kusion resource ID. func (tp TFProvider) IDString() string { return tp.Namespace + resources.SegmentSeparator + tp.Type }