Skip to main content

CLI tool for managing Google Cloud Managed Instance Groups

Project description

migs - Google Cloud MIG CLI Tool

A command-line tool that wraps the gcloud CLI to provide an easier experience for managing Google Cloud Managed Instance Groups.

Features

  • List MIGs in your project
  • Spin up/down VMs with custom names
  • Track your personal VMs
  • Automatic SSH config management for VS Code Remote Explorer
  • Easy file/directory uploads

Installation

pip install -e .

Prerequisites

  • Python 3.8+
  • gcloud CLI installed and authenticated (gcloud auth login)
  • SSH keys configured for Google Compute Engine

Usage

List all MIGs

migs list

Spin up a VM

migs up my-mig --name my-dev-vm
migs up my-mig --name my-dev-vm --async  # Don't wait for creation
migs up my-mig --name my-dev-vm -d 2h  # Auto-delete after 2 hours
migs up my-mig --name my-dev-vm --duration=2h  # Alternative syntax

List your VMs

migs vms

Sync VM state

migs sync  # Sync local VM list with GCP state
migs sync --discover  # Also discover and claim untracked VMs

Check VM connectivity

migs check my-dev-vm  # Test SSH connectivity

SSH into a VM

migs ssh my-dev-vm
migs ssh my-dev-vm -- tmux attach  # Pass additional SSH arguments

Run scripts

migs run my-dev-vm ./setup.sh  # Runs in tmux session
migs run my-dev-vm ./deploy.sh --session deploy  # Custom session name
migs run my-dev-vm ./script.sh arg1 arg2  # Pass arguments to script

Environment Variables (.env files)

Both ssh and run commands automatically detect and use .env files from your current directory:

# If .env exists in current directory, it will be uploaded and sourced
migs ssh my-dev-vm  # Variables from .env available in shell
migs run my-dev-vm ./app.sh  # Script runs with .env variables

The .env file is uploaded to /tmp/.env on the VM and sourced using set -a; source /tmp/.env; set +a to export all variables.

Upload files

migs upload my-dev-vm ./myfile.txt
migs upload my-dev-vm ./mydir/ /home/user/

Download files

migs download my-dev-vm /remote/file.txt
migs download my-dev-vm /remote/dir/ ./local/

Spin down a VM

migs down my-dev-vm

SSH Config

The tool automatically updates your ~/.ssh/config file with entries for your VMs, making them accessible in VS Code Remote Explorer.

Release Instructions

python3 -m build
twine upload --repository testpypi dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

migs-0.1.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

migs-0.1.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file migs-0.1.1.tar.gz.

File metadata

  • Download URL: migs-0.1.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for migs-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a1f95d86ba0bd79ae899dac7d32221e82a432e74dfc93e3b3ff39314af2f14c5
MD5 cb7252605d425592d305e8c043a5c1a9
BLAKE2b-256 5e76e5b957d01ba95e2f1772baa3b950a6af61fe31894ec8e96562e5518e7ac5

See more details on using hashes here.

File details

Details for the file migs-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: migs-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for migs-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2446bde985009d2e01bf0334072022b0e324c3b89c40b496bdb312ce01e9a322
MD5 2f1c3313bca71f981531b69f895b7a1a
BLAKE2b-256 cf3305a25359b8a936ebbf53b8ee10ea69d5ef73e62dab443550fa0ecbf0e64c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page