Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about name, id, uuid #1780

Closed
yunkon-kim opened this issue Aug 27, 2024 · 6 comments
Closed

Question about name, id, uuid #1780

yunkon-kim opened this issue Aug 27, 2024 · 6 comments
Labels
question Further information is requested

Comments

@yunkon-kim
Copy link
Member

yunkon-kim commented Aug 27, 2024

@seokho-son

최근 업데이트 사항을 확인하다보니 Tumblebug에서 관리하는 객체에 name, id, uuid가 포함되어 있는 것을 확인하였습니다.

제 생각에는 id, uuid 중 하나만 유지하면 될 것 같다는 생각이 들어서요. 둘다 유지하시는 특별한 의도가 있으신지 궁금합니다.

@yunkon-kim yunkon-kim added the question Further information is requested label Aug 27, 2024
@seokho-son
Copy link
Member

@yunkon-kim

일단 현재 의도를 공유 드립니다.


오브젝트의 uuid는 오브젝트에 다른 개념없이 플랫하게 접근하기 위한 id의 형태로 고안하였습니다.
(labelSelector 등을 통해서, 모든 오브젝트를 플랫하게 끌어올리기 위해서)
그리고, 이 uuid는 CSP 리소스 생성 요청시 활용하는 값이 됩니다. (spider에 요청시 사용하는 identifier)

이와는 다르게, 현재 오브젝트의 id의 경우 uuid와는 다르게 여러 개념의 의해 이름 공간이 나눠져 있습니다.
예를들어, vm의 id는 mci 내부에서는 유니크하지만, 서로다른 mci에 포함된 vm은 동일한 값의 id를 가질 수 있습니다.


여러 종류의 id가 도입되어 혼란이 있으실 것 같습니다.

말씀하신 것과 같이, 기존 id의 방식을 변경하고, 신규 uuid 없이 하나만 유지하면 좋을 것 같은데,

아직, 이름 형태의 id 활용에 익숙한 사용자/클라이언트 등이 있을 수 있는 상황이라서,

함부로 변경하기가 까다로운 상황이네요. (CB-TB의 경우, testScripts 도 대부분 변경 필요)

그래도. 필요하다면, 정리해버리면 좋을 것 같습니다.

그렇게 하면,
CB-TB의 오브젝트 ID == CB-SP의 오브젝트 ID == CSP 오브젝트의 (사용자) ID
!= CSP 오브젝트의 (시스템 생성) ID

이렇게 만들어버릴 수 있습니다.

고려하여 의견 주십시오. :)

@yunkon-kim
Copy link
Member Author

vNet과 Subnet을 함께 생성할 때 uuid을 부여로 인해 조금 복잡하게 구현된 부분이 있었습니다. vNet과 subnet이 연관되는 자원이라서 이런 상황에 놓이게 된 것 같습니다. 일단 이를 공유해 놓겠습니다.

#1720 (comment)

@seokho-son
Copy link
Member

seokho-son commented Sep 5, 2024

@yunkon-kim #1789 를 통해서, 아래와 같이 정리하였습니다.

  • Id is unique identifier for the object
    Id string json:"id" example:"aws-ap-southeast-1"

  • Uid is universally unique identifier for the object, used for labelSelector
    Uid string json:"uid,omitempty" example:"wef12awefadf1221edcf"

  • CspResourceName is name assigned to the CSP resource. This name is internally used to handle the resource.
    CspResourceName string json:"cspResourceName,omitempty" example:"we12fawefadf1221edcf"

  • CspResourceId is resource identifier managed by CSP
    CspResourceId string json:"cspResourceId,omitempty" example:"csp-06eb41e14121c550a"

크게 변경된 것은 없지만, API에 해당 설명이 노출되도록 주석 보완에 신경을 썼습니다.


참고, Assets으로써의 spec, image 의 경우, 혼동을 줄이기 위해서 CspResourceId 는 포함하지 않음.

  • Id is unique identifier for the object
  • Uid is universally unique identifier for the object, used for labelSelector
  • CspSpecName is name assigned to the CSP resource. This name is internally used to handle the resource.

  • Id is unique identifier for the object
  • Uid is universally unique identifier for the object, used for labelSelector
  • CspImageName is name assigned to the CSP resource. This name is internally used to handle the resource.

@yunkon-kim
Copy link
Member Author

@seokho-son ID 관리 체계 개선하시느라 고생이 많으십니다.

많은 고민이 들어간 개선사항인 만큼 직접 활용하면서 익숙해져야 할 것 같습니다. Parent-child 관계에 놓인 vNet-subnets를 개선하면서 의견이 있으면 공유드리겠습니다.

@seokho-son
Copy link
Member

@seokho-son
Copy link
Member

/close

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants