This repository provides software Level(e.g., Linux Package, Container Image...) migration features. This is a sub-system on Cloud-Barista platform and utilizes CB-Tumblebug to depoly a multi-cloud Software as a target computing Software.
Software Migration framework (codename: cm-grasshopper) is going to support:
- Include Linux Pacakge and Container Image, Migrating software from source computing to a target computing environment
Terminology
- Source Computing
The source computing, serving as the target for configuration and information collection, for the migration to multi-cloud - Target Computing
The target computing is migration target as multi-cloud
- Tested operating systems (OSs):
- Ubuntu 24.04, Ubuntu 22.04, Ubuntu 18.04, Rocky Linux 9
- Language:
- Go: 1.23.0
- Write the configuration file.
- Configuration file name is 'cm-grasshopper.yaml'
- The configuration file must be placed in one of the following directories.
- .cm-grasshopper/conf directory under user's home directory
- 'conf' directory where running the binary
- 'conf' directory where placed in the path of 'CMGRASSHOPPER_ROOT' environment variable
- .cm-grasshopper/conf directory under user's home directory
- Configuration options
- listen
- port : Listen port of the API.
- honeybee
- server_address : IP address of the honeybee server's API.
- server_port : Port of the honeybee server's API.
- listen
- Configuration file example
cm-grasshopper: listen: port: 8084 honeybee: server_address: 127.0.0.1 server_port: 8081
- Copy honeybee private key file (honeybee.key) to .cm-grasshopper/ directory under user's home directory or the path of 'CMGRASSHOPPER_ROOT' environment variable. You can get honeybee.key from .cm-honeybee/ directory under user's home directory or the path of 'CMHONEYBEE_ROOT' environment variable.
If you are running honeybee within Docker, you can copy it with this command.
docker cp cm-honeybee:/root/.cm-honeybee/honeybee.key .
- Build and run the binary
make run
Or, you can run it within Docker by this command.
make run_docker
Docker container will use the default honeybee private key file.
To use the copied honeybee private key file, uncomment it below in the docker-compose.yaml
file.
#- ./honeybee.key:/root/.cm-grasshopper/honeybee.key:ro
Check if CM-Grasshopper is running
curl http://localhost:8084/grasshopper/readyz
# Output if it's running successfully
# {"message":"CM-Grasshopper API server is ready"}