diff --git a/pkg/object/objmetadata.go b/pkg/object/objmetadata.go index bc46cc38..d8046426 100644 --- a/pkg/object/objmetadata.go +++ b/pkg/object/objmetadata.go @@ -91,10 +91,6 @@ func ParseObjMetadata(s string) (ObjMetadata, error) { // Finally, second field name. Name may contain colon transcoded as double underscore. name := s[:index] name = strings.ReplaceAll(name, colonTranscoded, ":") - // Check that there are no extra fields by search for fieldSeparator. - if strings.Contains(name, fieldSeparator) { - return NilObjMetadata, fmt.Errorf("too many fields within: %s", s) - } // Create the ObjMetadata object from the four parsed fields. id := ObjMetadata{ Namespace: namespace, diff --git a/pkg/object/objmetadata_test.go b/pkg/object/objmetadata_test.go index 8c6fb681..7346bf68 100644 --- a/pkg/object/objmetadata_test.go +++ b/pkg/object/objmetadata_test.go @@ -97,10 +97,29 @@ func TestParseObjMetadata(t *testing.T) { inventory: &ObjMetadata{}, isError: true, }, - "Too many fields": { - invStr: "test-namespace_test-name_apps_foo_Deployment", - inventory: &ObjMetadata{}, - isError: true, + "Name can contain underscores": { + invStr: "test-namespace_test_name_apps_Deployment", + inventory: &ObjMetadata{ + Namespace: "test-namespace", + Name: "test_name", + GroupKind: schema.GroupKind{ + Group: "apps", + Kind: "Deployment", + }, + }, + isError: false, + }, + "Name can contain multiple underscores": { + invStr: "test-namespace_test_name_with_underscores_apps_Deployment", + inventory: &ObjMetadata{ + Namespace: "test-namespace", + Name: "test_name_with_underscores", + GroupKind: schema.GroupKind{ + Group: "apps", + Kind: "Deployment", + }, + }, + isError: false, }, }