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

Register all existing CSP resources for each cloudConnection to CB-TB objs #1055

Open
seokho-son opened this issue Apr 5, 2022 · 8 comments
Assignees
Labels
feature request Issue related with new feature

Comments

@seokho-son
Copy link
Member

seokho-son commented Apr 5, 2022

이슈 #918 를 통해 개별 자원에 대한 CSP-native 자원 등록 기능이 추가되었습니다.

일일이 CSP-native 자원의 ID 정보를 읽어서, 등록을 실행하는 것은 사용자에게 너무 어려울 것 같습니다.
따라서, connectionConfig 단위로 관련 리소스 정보를 조회해서, 조회된 리소스들 중 CB-TB가 이미 관리하고 있지 않은 자원을
등록하는 기능 및 API를 만들면 좋을 것 같습니다.

POST ​/inspectResources

로 각 리소스 타입에 대해 조회하고, CB-TB 오브젝트로 관리되지 않는 자원들만 리스팅하여
CB-TB 오브젝트로 등록하기를 수행하도록 구성하면 될 것 같습니다.

@seokho-son seokho-son added the feature request Issue related with new feature label Apr 5, 2022
@jihoon-seo
Copy link
Member

[지금까지 만든 함수를 호출할 때 사용자가 명시해야 하는 값들]

registerExistingVNet 등은

  • NS ID (API path 내에 명시)
  • name (← 이 이름으로 Spider 에 자원 유무를 lookup)
  • connectionName

를 명시해야 하고,

registerCspVm

  • NS ID (API path 내에 명시)
  • MCIS name (API 호출의 JSON body에 명시; 해당 MCIS가 있으면 그 MCIS에 VM을 추가하고, 해당 MCIS가 없으면 신규 MCIS를 생성)
  • connectionName
  • ...

를 명시하도록 되어 있습니다.


새로 만들 함수가 MCIR + VM 등록을 수행하는 함수라고 가정하면
[새로 만들 함수를 호출할 때 사용자가 명시해야 하는 값들 (안)]

  • NS ID (API path 내에 명시)
  • connectionName
  • MCIS name (API 호출의 JSON body에 명시; 해당 MCIS가 있으면 그 MCIS에 VM을 추가하고, 해당 MCIS가 없으면 신규 MCIS를 생성)
  • (MCIR 이름은 NS prefix + Spider NameID 조합하여 자동 생성)
  • (VM 이름은 NS prefix + MCIS name + Spider NameID 조합하여 자동 생성)

@seokho-son
Copy link
Member Author

@jihoon-seo 혹시 해당 이슈 처리 가능하실까요?
어려우시면 제가 처리하겠습니다. :)

@seokho-son
Copy link
Member Author

/assign @seokho-son

@seokho-son
Copy link
Member Author

착수하였습니다. :)

@seokho-son
Copy link
Member Author

seokho-son commented Apr 28, 2022

[이슈]
Spider API 상, SG 등록을 위해서는 VPCName이 필요한데,

해당 VPCName은 TB가 알고 있는 정보가 아니라서, 입력이 어려움.

[방안]
CSP SG ID로 해당 SG와 연계된 CSP VPC ID를 조회한 다음,

TB (및 Spider)에 등록된 vNet 오브젝트(SG에 연계된)를 찾고, 해당 정보를 활용하여, Spider에게 등록 요청이 필요.

여기서 부족한 기능은 CSP SG ID로 해당 SG와 연계된 CSP VPC ID를 조회 해당 조회 방법이 있는지 Spider 확인이 필요.

  • Spider에서 활용하는 정보인지도 확인 필요 (지정된 VPC ID와 무관하게, SG 등록 요청 리턴시 VPC 정보 다시 수집하는 것으로 보임)
  • 일단 파악전까진 임의의 VPC를 할당하도록 처리 예정

[참고]
Spider regsecuritygroup API

curl -sX POST http://localhost:1024/spider/regsecuritygroup -H 'Content-Type: application/json' -d \
	'{
		"ConnectionName": "'${CONN_CONFIG}'", 
		"ReqInfo": { "VPCName": "'${VPC_NAME}'", "Name": "'${SG_NAME}'", "CSPId": "'${SG_CSPID}'"} 
	}' 

@seokho-son
Copy link
Member Author

seokho-son commented May 1, 2022

Todo

  • API return body 구조 개선
  • 자원간 연관관계 및 자원 정보 재구축 필요 (일부 가능한 항목만)
  • SG 등록 관련 임의의 값 임시 지정한 항목 개선 필요
  • 모든 connectionConfig 를 기준으로 등록하는 스크립트 추가 (아마도 기능으로 개발할 필요는 없을 듯..)

@seokho-son
Copy link
Member Author

처리 속도 이슈가 있으나,
Spider의 lock 메커니즘에 의한 것으로 보임.

Spider에서 자원별 lock 에 대한 검토 예정.

#1081 (reply in thread)

@seokho-son
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Issue related with new feature
Projects
None yet
Development

No branches or pull requests

2 participants