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

[Cloudit Driver] Creating a VPC, Need to enhance the naming convention of the subnet. #319

Closed
powerkimhub opened this issue Dec 7, 2020 · 4 comments
Assignees
Labels
bug Something isn't working enhancement New feature or request

Comments

@powerkimhub
Copy link
Member

[AS IS]

  • All user's requests of VPC creation tries to create a subnet with the same naming convention.
  • Creating a new VPC after somebody done it, makes the error of 'subnet already exists'.

[TO BE]

  • Need to enhance the naming convention of the subnet creation.
@powerkimhub powerkimhub added bug Something isn't working enhancement New feature or request labels Dec 7, 2020
@powerkimhub
Copy link
Member Author

@hyokyungk

  • 관련 시험 결과가 아래와 같습니다.
  • CASE-1, CASE-2는 알고 있는 상황입니다.
    • 입력 CIDR 값과 무관한 CIDR 배정 및 제공
  • CASE-3은 오류 메시지 수정이 필요해 보입니다.
  • 그리고, 아래 전제 조건이 사실과 다른 부분이 있는지도 확인 부탁 드립니다.

[전제 조건]

  • VPC
    • 단일 VPC만 제공
    • 내부 Default-VPC를 사용자가 요청한 vpc-01 등으로 맵핑하여 제공
    • VPC CIDR: 요청 값에 관련 없이 CloudIt 내부에서 지정된 CIDR를 할당 및 제공함.
  • Subnet
    • Default-VPC의 subnet 여유가 있을 때까지 생성 가능함.
    • Subnet CIDR: 요청 값에 관련 없이 CloudIt 내부에서 지정된 CIDR를 할당 및 제공함.
  • 단일 VPC 개념이므로 2개 이상의 VPC 생성을 요청할 수 없음.

[시험 항목 및 결과]

  • CASE-1. vpc-01 생성

    • 다음 그림에서 1: 입력 값
    • 다음 그림에서 2: 생성 결과
      image
  • CASE-2. 추가된 vpc-01에 subnet-02 추가

    • 다음 그림에서 1: 입력 값
    • 다음 그림에서 2: 생성 결과
      image
  • CASE-3. vpc-02 생성 시도

    • 예상 오류: 1개 이상의 VPC 생성은 지원하지 않습니다.
    • 실제 오류: virtualNetwork with name subnet-01 already exist
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 CCMRest.go:232, github.com/cloud-barista/cb-spider/api-runtime/rest-runtime.createVPC() - call createVPC()
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 CCMCommon.go:477, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.CreateVPC() - call CreateVPC()
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 ConnectionConfigInfoManager.go:93, github.com/cloud-barista/cb-spider/cloud-info-manager/connection-config-info-manager.GetConnectionConfig() - call GetConnectionConfig()
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 nutsdb-driver.go:159, github.com/cloud-barista/cb-store/store-drivers/nutsdb-driver.(*NUTSDBDriver).GetList() - Key:/cloud-info-spaces/connection-configs/cloudit-config01
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 DriverInfoManager.go:83, github.com/cloud-barista/cb-spider/cloud-info-manager/driver-info-manager.GetCloudDriver() - call GetCloudDriver()
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 nutsdb-driver.go:159, github.com/cloud-barista/cb-store/store-drivers/nutsdb-driver.(*NUTSDBDriver).GetList() - Key:/cloud-info-spaces/drivers/cloudit-driver01
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 CloudDriverHandler_static.go:290, github.com/cloud-barista/cb-spider/cloud-control-manager.getStaticCloudDriver() - CloudDriverHandler: called getStaticCloudDriver() - cloudit-driver01
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 CredentialInfoManager.go:109, github.com/cloud-barista/cb-spider/cloud-info-manager/credential-info-manager.GetCredentialDecrypt() - call GetCredential()
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 nutsdb-driver.go:159, github.com/cloud-barista/cb-store/store-drivers/nutsdb-driver.(*NUTSDBDriver).GetList() - Key:/cloud-info-spaces/credentials/cloudit-credential01
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 RegionInfoManager.go:77, github.com/cloud-barista/cb-spider/cloud-info-manager/region-info-manager.GetRegion() - call GetRegion()
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 nutsdb-driver.go:159, github.com/cloud-barista/cb-store/store-drivers/nutsdb-driver.(*NUTSDBDriver).GetList() - Key:/cloud-info-spaces/regions/cloudit-region01
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 Cloudit_CloudConnection.go:41, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit/connect.(*ClouditCloudConnection).CreateVPCHandler() - Cloudit Cloud Driver: called CreateVNetworkHandler()!
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 nutsdb-driver.go:159, github.com/cloud-barista/cb-store/store-drivers/nutsdb-driver.(*NUTSDBDriver).GetList() - Key:/resource-info-spaces/iids/cloudit-config01/vpc/vpc-02
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 CommonClouditFunc.go:55, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit/resources.GetCallLogScheme() - Call CLOUDIT CreateVPC()
[CB-SPIDER].[INFO]: 2021-05-17 12:44:35 Request.go:43, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit/client/dna/subnet.List() - http://182.252.135.121:9090/cloudit/v4.0/dna/v1.0/tnt0003/subnets
[CB-SPIDER].[ERROR]: 2021-05-17 12:44:35 CommonClouditFunc.go:44, github.com/cloud-barista/cb-spider/cloud-control-manager/cloud-driver/drivers/cloudit/resources.LoggingError() - virtualNetwork with name subnet-01 already exist
[CB-SPIDER].[ERROR]: 2021-05-17 12:44:35 CCMCommon.go:506, github.com/cloud-barista/cb-spider/api-runtime/common-runtime.CreateVPC() - virtualNetwork with name subnet-01 already exist

@powerkimhub powerkimhub pinned this issue May 17, 2021
@inno-cloudbarista
Copy link
Contributor

@powerkimhub

전제 조건 부분에서 단일 VPC와 관련해 조금 다른 관점으로 봐야할 부분이 있는 것 같습니다.
관련된 내용을 정리해 공유드립니다.

[전제 조건]

VPC
단일 VPC만 제공
내부 Default-VPC를 사용자가 요청한 vpc-01 등으로 맵핑하여 제공
VPC CIDR: 요청 값에 관련 없이 CloudIt 내부에서 지정된 CIDR를 할당 및 제공함.

VPC를 미제공
내부적으로 고정되어 있는 Default-VPC 정보를 제공
defaultVPCName = "Default-VPC", defaultVPCCIDR = "10.0.0.0/16"
해당 값은 Cloudit 모든 테넌트(사용자)에 동일
네트워크 생성 시 VPC 생성 항목을 무시하고, 서브넷 정보만을 가지고 API 호출 (서브넷 생성)

Subnet
Default-VPC의 subnet 여유가 있을 때까지 생성 가능함.
Subnet CIDR: 요청 값에 관련 없이 CloudIt 내부에서 지정된 CIDR를 할당 및 제공함.
단일 VPC 개념이므로 2개 이상의 VPC 생성을 요청할 수 없음.

사용자는 CIDR 값 지정 불가능 (서브넷 생성 API 요청 시 자동으로 CIDR 목록에서 자동 선택 및 할당)
VPC는 내부적으로 고정되어 있다는 전제 하에 서브넷을 생성

@inno-cloudbarista
Copy link
Contributor

@powerkimhub

CASE-3. vpc-02 생성 시도

예상 오류: 1개 이상의 VPC 생성은 지원하지 않습니다.
실제 오류: virtualNetwork with name subnet-01 already exist

해당 값의 경우 VPC 항목의 입력 값을 별도로 체크하지 않고, subnet 정보에 대한 유효성 검증만 하기 때문에 발생하는 이슈 같습니다.
Cloudit 내부적으로는 VPC 리소스를 별도로 조회할 수 있지 않으며, subnet 정보에 대해서만 조회 및 유효성 검증이 가능합니다.
필요하다면, 고정적으로 설정된 VPC 명칭과 다른 값이 입력 될 경우, 에러를 발생시키는 로직을 추가할 수 있을 것 같습니다.
(해당 VPC 정보는 사용자의 입력 값과는 무관하게 지정되기 때문에, 이름을 지정할 수 없는 강제성을 가지고 동작하게 될 것 같습니다.)

@powerkimhub
Copy link
Member Author

@inno-cloudbarista

전제조건 관련

  • Spider (Driver) 입장에서의 조건을 기술하였었습니다. 약간 애매한 설명이긴 하였습니다.
  • Spider 사용자 입장에서는 최초 VPC가 없는 상태에서 생성을 요청하면 1개의 VPC가 만들어 지는 것처럼 사용
    • 실제로는 사용자가 요청한 이름(ex: powerkim-vpc-001)으로 기존에 존재하는 고정된 VPC에 맵핑
    • cloudit에 존재하는 고정된 VPC 이름을 Spider 사용자에게 동일한 이름으로 사용할 수 있게 해준다면 명확하겠지만,
    • RegisterVPC()와 같은 CreateVPC()와는 다른 추가 인터페이스가 필요하게 될것입니다. (CloudIt만을 위한...)
    • 현재는 Spider 사용자 입장에서 제약 조건을 알고 쓰도록 하고자 하는 취지입니다.

에러 메시지 관련

  • 현재는 VPC에 대해서는 처음 생성 요청인지, 두번째 요청인지를 알수가 없겠네요.
  • 일단 현황 이해하였습니다.
  • 아래 링크의 특이사항을 잘 정리해보돌하겠습니다.
  • 감사합니다.

@powerkimhub powerkimhub unpinned this issue May 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants