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..03cd9fe 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 } + +// 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 +}