Releases: cloud-barista/cm-beetle
v0.3.10
Related components
- cm-model v0.0.14
- Indirectly related via cm-model v0.0.14, please refer to the following
- CM-Honeybee releases (available in v0.3.6)
- CM-Damselfly releases (available in v0.3.6)
- CB-Tumblebug v0.11.13
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.10/api/swagger.yaml
How to run and use the CM-Beetle
Note
- (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
- VM Image and Spec Compatibility in CM-Beetle (Best Efforts)
- Infra Migration Test Status on Beetle
What's Changed
- fix(compat): improve NVMe compatibility for CSP migrations by @yunkon-kim in #204
- feat(test): add SSH connectivity testing with access support for VMs by @yunkon-kim in #207
- Enhance multi-cloud compatibility and testing infrastructure by @yunkon-kim in #209
- release: staging v0.3.10 with testing on 5 CSPs by @yunkon-kim in #211
Full Changelog: v0.3.9...v0.3.10
v0.3.9
Related components
- cm-model v0.0.14
- Indirectly related via cm-model v0.0.14, please refer to the following
- CM-Honeybee releases (available in v0.3.6+)
- CM-Damselfly releases (available in v0.3.6+)
- CB-Tumblebug v0.11.13
Breaking Changes ⚠️
These breaking changes are expected to have a minimal impact on the entire platform.
-
Updated infra model
Click to see the diff between cm-model v0.0.13 and v0.0.14
git diff v0.0.13..v0.0.14 infra/ warning: refname 'v0.0.13' is ambiguous. warning: refname 'v0.0.14' is ambiguous. diff --git a/infra/cloud-model/copied-tb-model.go b/infra/cloud-model/copied-tb-model.go index 89b37ee..755635e 100644 --- a/infra/cloud-model/copied-tb-model.go +++ b/infra/cloud-model/copied-tb-model.go @@ -2,8 +2,8 @@ package cloudmodel // * To avoid circular dependencies, the following structs are copied from the cb-tumblebug framework. // TODO: When the cb-tumblebug framework is updated, we should synchronize these structs. -// * Version: CB-Tumblebug v0.11.9 (commit: 8ae6bd46f3c44afa538c87bdd6a59b4fbd32da6a) -// * Synchronized: 2025-09-03 +// * Version: CB-Tumblebug v0.11.13 (commit: 0df66b37d0ddd3fab920f810abef5ad2bfb645d0) +// * Synchronized: 2025-09-25 (S3-standard auth for Object Storage APIs) // MciReq is struct for requirements to create MCI type MciReq struct { @@ -152,6 +152,65 @@ type MciCmdReq struct { Command []string `json:"command" validate:"required" example:"client_ip=$(echo $SSH_CLIENT | awk '{print $1}'); echo SSH client IP is: $client_ip"` } +// CommandExecutionStatus represents the status of command execution +type CommandExecutionStatus string + +const ( + // CommandStatusQueued indicates the command has been requested but not started + CommandStatusQueued CommandExecutionStatus = "Queued" + + // CommandStatusHandling indicates the command is currently being processed + CommandStatusHandling CommandExecutionStatus = "Handling" + + // CommandStatusCompleted indicates the command execution completed successfully + CommandStatusCompleted CommandExecutionStatus = "Completed" + + // CommandStatusFailed indicates the command execution failed + CommandStatusFailed CommandExecutionStatus = "Failed" + + // CommandStatusTimeout indicates the command execution timed out + CommandStatusTimeout CommandExecutionStatus = "Timeout" +) + +// CommandStatusInfo represents a single remote command execution record +type CommandStatusInfo struct { + // Index is sequential identifier for this command execution (1, 2, 3, ...) + Index int `json:"index" example:"1"` + + // XRequestId is the request ID from X-Request-ID header when the command was executed + XRequestId string `json:"xRequestId,omitempty" example:"req-12345678-abcd-1234-efgh-123456789012"` + + // CommandRequested is the original command as requested by the user + CommandRequested string `json:"commandRequested" example:"ls -la"` + + // CommandExecuted is the actual SSH command executed on the VM (may be adjusted) + CommandExecuted string `json:"commandExecuted" example:"ls -la"` + + // Status represents the current status of the command execution + Status CommandExecutionStatus `json:"status" example:"Completed"` + + // StartedTime is when the command execution started + StartedTime string `json:"startedTime" example:"2024-01-15 10:30:00" default:""` + + // CompletedTime is when the command execution completed (success or failure) + CompletedTime string `json:"completedTime,omitempty" example:"2024-01-15 10:30:05"` + + // ElapsedTime is the duration of command execution in milliseconds + ElapsedTime int64 `json:"elapsedTime,omitempty" example:"5000"` + + // ResultSummary provides a brief summary of the execution result + ResultSummary string `json:"resultSummary,omitempty" example:"Command executed successfully"` + + // ErrorMessage contains error details if the execution failed + ErrorMessage string `json:"errorMessage,omitempty" example:"SSH connection failed"` + + // Stdout contains the standard output from command execution (truncated for history) + Stdout string `json:"stdout,omitempty" example:"total 8\ndrwxr-xr-x 2 user user 4096 Jan 15 10:30 ."` + + // Stderr contains the standard error from command execution (truncated for history) + Stderr string `json:"stderr,omitempty" example:""` +} + // MciInfo is struct for MCI info type MciInfo struct { // ResourceType is the type of the resource @@ -344,6 +403,9 @@ type VmInfo struct { VmUserName string `json:"vmUserName,omitempty"` VmUserPassword string `json:"vmUserPassword,omitempty"` + // CommandStatus stores the status and history of remote commands executed on this VM + CommandStatus []CommandStatusInfo `json:"commandStatus,omitempty"` + AddtionalDetails []KeyValue `json:"addtionalDetails,omitempty"` }
- Updated Beetle migration API responses
Note - If necessary, please clean the Tumblebug metadata and then initialize Tumblebug.
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.9/api/swagger.yaml
How to run and use the CM-Beetle
Note
- (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
- VM Image and Spec Compatibility in CM-Beetle (Best Efforts)
- Infra Migration Test Status on Beetle
What's Changed
- build(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #198
- chore: Update dependencies and improve VM recommendation system by @yunkon-kim in #200
- feat(experimental): Add data migration API with transx integration by @yunkon-kim in #201
- release: staging v0.3.9 with testing on 4 CSPs by @yunkon-kim in #202
Full Changelog: v0.3.8...v0.3.9
v0.3.8
Integrated or tested with
- cm-model v0.0.13 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.4+ (Used always-running server)
- CB-Tumblebug v0.11.9
Breaking Changes ⚠️
- There are significant changes to
cloudmodel
and related API request and response bodies. - This has been reflected in cm-model v0.0.13 and Beetle v0.3.8.
- Significant changes were made in Tumblebug v0.11.9.
- Improved object hierarchy and naming.
- Improved CSP naming convention
- Improved GCP price info
- Improved infra review functionality, and so on
- Reference: https://github.com/cloud-barista/cb-tumblebug/blob/main/docs/migration_guide_0.11.8_to_0.11.9.md
Important
Tumblebug's credentials and utilized CSP information (e.g., spec, image, naming) have changed.
Please follow the steps below carefully:
- Safely delete any previously managed resources.
- Clean Tumblebug and Spider metadata (see
init/cleanDB.sh
). - Initialize Tumblebug and Spider (see
init/init.sh
).
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.8/api/swagger.yaml
How to run and use the CM-Beetle
Note
- (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
- VM Image and Spec Compatibility in CM-Beetle (Best Efforts)
- Infra Migration Test Status on Beetle
What's Changed
- feat: Upgrade to CB-Tumblebug v0.11.9 and address breaking changes by @yunkon-kim in #196
- [Workflow] Update Swagger REST API doc by @cb-github-robot in #197
Full Changelog: v0.3.7...v0.3.8
v0.3.7
Integrated or tested with
- cm-model v0.0.11 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.3 (Used always-running server)
- CB-Tumblebug v0.11.3
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.7/api/swagger.yaml
How to run and use the CM-Beetle
Note
- (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
- VM Image and Spec Compatibility in CM-Beetle (Best Efforts)
- Infra Migration Test Status on Beetle
What's Changed
- release: assign
sourceMachineId
label to VM and staging v0.3.7 by @yunkon-kim in #193
Full Changelog: v0.3.6...v0.3.7
v0.3.6
Integrated or tested with
- cm-model v0.0.11 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.3 (Used always-running server)
- CB-Tumblebug v0.11.3
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.6/api/swagger.yaml
How to run and use the CM-Beetle
Note
- (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
- VM Image and Spec Compatibility in CM-Beetle (Best Efforts)
- Infra Migration Test Status on Beetle
What's Changed
- feat: enhance multi-cloud compatibility and VM recommendation with proximity matching by @yunkon-kim in #191
- release: staging v0.3.6 by @yunkon-kim in #192
Full Changelog: v0.3.5...v0.3.6
v0.3.5
Integrated or tested with
- cm-model v0.0.11 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.3 (Used always-running server)
- CB-Tumblebug v0.11.3
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.5/api/swagger.yaml
How to run and use the CM-Beetle
Note
- (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
- VM Image and Spec Compatibility in CM-Beetle (Best Efforts)
What's Changed
- upgrade: Update Go version from 1.23.0 to 1.24 by @yunkon-kim in #187
- fix(aws-compat): mitigate strict AWS spec-image compatibility checks by @yunkon-kim in #189
Full Changelog: v0.3.4...v0.3.5
v0.3.4
Integrated or tested with
- cm-model v0.0.11 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.1
- CB-Tumblebug v0.11.3
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.4/api/swagger.yaml
How to run and use the CM-Beetle
Note
- (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
- VM Image and Spec Compatibility in CM-Beetle (Best Efforts)
What's Changed
- Set a longer API request timeout by @yunkon-kim in #182
- feat: improve VM spec-image compatibility and test on 5 CSPs by @yunkon-kim in #184
- feat: refactor compatibility checks into extensible
compat
package by @yunkon-kim in #185 - Staging v0.3.4 by @yunkon-kim in #186
Full Changelog: v0.3.3...v0.3.4
v0.3.3
Integrated or tested with
- cm-model v0.0.11 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.1
- CB-Tumblebug v0.11.3
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.3/api/swagger.yaml
How to run and use the CM-Beetle
- How to deploy CM-Beetle, along with its related components
- Note - (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
What's Changed
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #179
- feat: Enhance VM recommendation logic and upgrade dependencies by @yunkon-kim in #180
- release: staging v0.3.3 by @yunkon-kim in #181
Full Changelog: v0.3.2...v0.3.3
v0.3.2
Integrated or tested with
- cm-model v0.0.10 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.1
- CB-Tumblebug v0.11.2
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.2/api/swagger.yaml
How to run and use the CM-Beetle
- How to deploy CM-Beetle, along with its related components
- Note - (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
What's Changed
- fix(alibaba): No AvailableInstanceType issue by improving recommendation logic by @yunkon-kim in #167
- temporary fix(ncp): Limit memory upper bound to 8GiB by @yunkon-kim in #169
- feat: Add filter for VM spec selection by @yunkon-kim in #170
- feat: Update dependencies and enhance firewall rule handling by @yunkon-kim in #171
- enhance: improve logging and VM image search by @yunkon-kim in #174
- feat: add targetMachineId filtering and enhance VM recommendation system by @yunkon-kim in #176
- feat: add multi-CSP test CLI with automated reporting by @yunkon-kim in #177
- release: staging v0.3.2 by @yunkon-kim in #178
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Integrated or tested with
- cm-model v0.0.8 (To be integrated on the next Damselfly release)
- CM-Honeybee v0.3.1
- CB-Tumblebug v0.11.1
API docs
- Swagger UI URL: https://cloud-barista.github.io/api/?url=https://raw.githubusercontent.com/cloud-barista/cm-beetle/v0.3.1/api/swagger.yaml
How to run and use the CM-Beetle
- How to deploy CM-Beetle, along with its related components
- Note - (WIP) Beetle v0.4.0: Integration and Testing with Tumblebug, Honeybee, and model
Breaking Changes (analyzed by Claude Sonnet 4)
Click to see the breaking changes
Beetle v0.3.0과 v0.3.1 간의 Breaking Changes 분석 결과
git diff 분석을 통해 확인된 주요 Breaking Changes는 다음과 같습니다:
🔴 Major Breaking Changes
- API 엔드포인트 변경
# v0.3.0 → v0.3.1 변경사항
- POST /recommendation/mci → POST /recommendation/mci (RecommendVMInfra로 함수명 변경)
+ POST /recommendation/mciWithDefaults (새로운 엔드포인트 추가)
+ POST /recommendation/containerInfra (새로운 엔드포인트 추가)
# 새로운 리소스 추천 API 추가
+ POST /recommendation/resources/vNet
+ POST /recommendation/resources/securityGroups
+ POST /recommendation/resources/vmOsImages
+ POST /recommendation/resources/vmSpecs
# 새로운 마이그레이션 리소스 API 추가
+ POST /migration/ns/{nsId}/mciWithDefaults
+ GET/POST/DELETE /migration/ns/{nsId}/resources/vNet/{vNetId}
+ GET/POST/DELETE /migration/ns/{nsId}/resources/securityGroup/{sgId}
+ GET/POST/DELETE /migration/ns/{nsId}/resources/sshKey/{sshKeyId}
- 요청/응답 모델 구조 대폭 변경
// v0.3.0
type RecommendInfraRequest struct {
DesiredProvider string `json:"desiredProvider"`
DesiredRegion string `json:"desiredRegion"`
inframodel.OnpremiseInfraModel
}
// v0.3.1 - BREAKING CHANGE
type RecommendVmInfraRequest struct {
DesiredCspAndRegionPair recommendation.CspRegionPair `json:"desiredCspAndRegionPair"`
OnpremiseInfraModel onpremmodel.OnpremInfra // 패키지 변경
}
type MigrateInfraRequest struct {
// v0.3.0: tbmodel.TbMciDynamicReq
// v0.3.1: cloudmodel.RecommendedVmInfra - BREAKING CHANGE
cloudmodel.RecommendedVmInfra
}
- 함수 시그니처 변경
// v0.3.0
func CreateVMInfra(nsId string, infraModel *tbmodel.TbMciDynamicReq) (tbmodel.TbMciInfo, error)
func RecommendInfra(c echo.Context) error
// v0.3.1 - BREAKING CHANGES
func CreateVMInfra(nsId string, targetInfraModel *cloudmodel.RecommendedVmInfra) (cloudmodel.VmInfraInfo, error)
func RecommendVMInfra(c echo.Context) error // 함수명 변경
func CreateVMInfraWithDefaults(nsId string, infraModel *cloudmodel.TbMciDynamicReq) (cloudmodel.VmInfraInfo, error) // 새로운 함수
- 패키지 의존성 변경
// v0.3.0 → v0.3.1 주요 버전 업그레이드
- github.com/cloud-barista/cb-tumblebug v0.10.3 → v0.11.1
- github.com/cloud-barista/cm-model v0.0.3 → v0.0.8
- github.com/labstack/echo/v4 v4.12.0 → v4.13.3
- github.com/mattn/go-sqlite3 v1.14.22 → v1.14.24
- 쿼리 파라미터 변경
# v0.3.0
?desiredProvider=aws&desiredRegion=ap-northeast-2
# v0.3.1 - BREAKING CHANGE
?desiredCsp=aws&desiredRegion=ap-northeast-2 # Provider → Csp로 변경
- API 클라이언트: 모든 API 요청/응답 구조 변경으로 인한 완전한 재작업 필요
- 데이터 모델: cloudmodel 패키지로 마이그레이션 필요
- 함수 호출: 내부 API 사용 시 함수 시그니처 변경 대응 필요
- 설정: 쿼리 파라미터 이름 변경 대응 필요
📋 마이그레이션 가이드
v0.3.0에서 v0.3.1으로 업그레이드 시 다음 사항들을 필수로 수정해야 합니다:
- API 요청 구조체의 필드명 변경 (desiredProvider → desiredCsp)
- 응답 모델 타입 변경 (tbmodel.* → cloudmodel.*)
- 새로운 엔드포인트 활용 (/mciWithDefaults, /resources/*)
- 의존성 패키지 버전 업데이트
이러한 변경사항들이 Major Breaking Changes로 분류되며, 기존 클라이언트 코드의 수정이 필요합니다.
What's Changed
- Bump golang.org/x/crypto from 0.25.0 to 0.31.0 by @dependabot[bot] in #147
- Update dependencies by @yunkon-kim in #148
- Bump golang.org/x/net from 0.33.0 to 0.36.0 by @dependabot[bot] in #149
- Bump jpmcb/prow-github-actions from 1.1.3 to 2.0.0 by @dependabot[bot] in #150
- Add Container Infrastructure Recommendation API by @hanizang77 in #152
- [Workflow] Update Swagger REST API doc by @cb-github-robot in #153
- Bump golang.org/x/net from 0.36.0 to 0.38.0 by @dependabot[bot] in #151
- Recommend multiple target infrastructure consisting of VMs by @yunkon-kim in #155
- [Workflow] Update Swagger REST API doc by @cb-github-robot in #156
- Bump golang.org/x/oauth2 from 0.21.0 to 0.27.0 by @dependabot[bot] in #159
- feat(vm-infrastructure): Enhance VM Infrastructure Recommendation and Migration Functionalities by @yunkon-kim in #158
- feat: improve security group rule generation by @yunkon-kim in #160
- feat: recommend VM specs using vCPU:memory ratio and prime numbers by @yunkon-kim in #161
- docs: Add integration and testing documentation for infra migration by @yunkon-kim in #162
- Staging v0.3.1 by @yunkon-kim in #164
New Contributors
- @hanizang77 made their first contribution in #152
Full Changelog: v0.3.0...v0.3.1