-
Notifications
You must be signed in to change notification settings - Fork 48
Cloud Driver Developer Guide
ByoungSeob Kim edited this page Jun 10, 2022
·
10 revisions
- Cloud Driver common interface 기반의 Cloud Driver plugin 구조
- 신규 클라우드 드라이버 연동 방법
- Cloud common interface를 준수하는 Cloud Driver 개발
- CSP 전용 API를 사용한 개발
- Cloud Driver 등록 및 활용
- Cloud common interface를 준수하는 Cloud Driver 개발
-
Cloud Driver Type
- Static Driver
- CB-Spider Server build시에 함께 build
- server와 하나의 binary로 실행 및 운영
- Dynamic Plugin Driver
- Driver를 별도의 Shared Library 형태로 build
- CB-Spider API를 이용하여 Server에 등록 및 활용
- Server On-Line 시 신규 Driver 추가 및 업데이트 가능
- Static Driver
-
Cloud Driver 개발 방법
- Go Interface 및 Dynamic Plugin
-
개발 언어 및 CSP API
- Cloud Driver: Go 언어
- CSP API:
- CSP Go SDK 우선 활용
- CSP REST API 등 활용 가능
-
Cloud Driver Interface(Go)
-
Cloud Driver Examples
- Mock Driver: 시험용 드라이버, 메모리 기반 기능 동작 제공, VM 제어 불가
- Static Driver: https://github.com/cloud-barista/cb-spider/tree/master/cloud-control-manager/cloud-driver/drivers/mock
- Dynamic Plugin Driver: https://github.com/cloud-barista/cb-spider/tree/master/cloud-control-manager/cloud-driver/drivers/mock-plugin
-
CSP별 메타 정보 설정
-
ID Mapping: Spider ID <-> CSP ID
-
VPC 생성 주요 흐름
- VPCHandler.CreateVPC() interface를 구현
- CSP API 이용한 VPC 생성 요청
- 필요시 VPC 내외부 통신이 가능하도록 설정
- CSP별로 추가적인 자원을 생성해야 할수도 있음
- 예시) AWS IGW(Internet Gateway) 생성
- CSP API 이용한 생성된 VPC에 바인딩 된 subnet 생성 요청
- 반환 정보 객체 VPCInfo 생성 및 반환
- 특이사항: VPC를 제공하지 않는 CSP 경우가 존재함
- 기본적으로 VPC 모델을 제공하며,
- 단일 VPC 개념으로 가상으로 내부 처리하여 타 CSP와 동일한 API flow를 제공
-
Security Group 제어 주요 고려 사항
- 설정 규칙 규격 변환: Spider rule spec <-> CSP rule spec
-
KeyPair 제어 주요 고려 사항
- KeyPair를 제공하지 않는 경우: driver 수준에서 관리
- Key 생성 및 VM launch시 VM에 Public Key 삽입 등
- 이를 위한 local public key 관리는 cb-store 활용하는 공통 함수 활용
- 참고
- KeyPair를 제공하지 않는 경우: driver 수준에서 관리
-
VM 제어 주요 고려 사항
- VM 사용자: cb-user
- cloud-init 또는 shell script를 이용한 cb-user 계정 생성 및 설정
- KeyPair 관리에서 생성한 public key 활용
- 참고: https://github.com/cloud-barista/cb-spider/wiki/CB-Spider-VM-User-Guide
- Root Disk Type 및 Size 증가 설정 제공
- VM 사용자: cb-user
-
GetXXX() 호출시 대상 자원이 존재하지 않는 경우 에러 메시지 규칙
-
CallLog for HisCall
- StartVM()
- TerminateVM()
-
Install & Start Guide
-
Features & Usage
-
- AdminWeb Tool Guide
- CLI Tool Guide
- REST API Guide
-
Design
-
Developer Guide
-
Cloud Driver Developer Guide
- Cloud Driver Developer Guide-WIP
- VM SSH Key Development Guide-WIP
- VM User Development Guide
- What is the CSP SDK API Version of drivers
- Region Zone Info and Driver API
- Price Info and Driver API
- (StartVM TerminateVM) API Call Counts and Waiting
- StartVM and TerminateVM Main Flow of drivers
- VM Root Disk Configuration Guide
- Security Group Rules and Driver API
- Network Load Balancer and Driver API
- VM Snapshot, MyImage and Disk Overview
- Kubernetes and Driver API(PMKS, K8S)
- Tag and Cloud Driver API
- AnyCall API Extension Guide
-
Test Reports
- v0.2.8-for-espresso-release
- v0.3.0-espresso-release
- Azure:Terminating VM
- cb-user@VM: ssh login, sudo run
- v0.3.14 test for SG Source
- v0.4.0-cafemocha-release
- Test via REST API Gateway
- Test Reports of v0.4.11 (IID2 initial Version)
- Test Reports of v0.4.12 (Register & Unregister existing Resources)
- Test Reports for v0.6.0 Release
- How to ...
- How to provision GPU VMs
- How to Resolve the 'Failed to Connect to Database' Error
- How to test CB Spider with Mock Driver
- How to install CB Spider on WSL2 under 공유기/사설망
- How to install CB Spider on macOS
- How to run CB Spider Container on macOS
- How to install OpenStack on a VM for CB Spider Testing
- How to get Azure available Regions
- How to profile memory usage in Golang
- Deprecated:How to install protoc and plugins
- [For Cloud-Migrator]