6.2 KiB
6.2 KiB
Changelog
All notable changes to Tailscale SSH Sync Agent will be documented here.
Format based on Keep a Changelog. Versioning follows Semantic Versioning.
[1.0.0] - 2025-10-19
Added
Core Functionality:
-
sshsync_wrapper.py: Python interface to sshsync CLI operationsget_host_status(): Check online/offline status of hostsexecute_on_all(): Run commands on all configured hostsexecute_on_group(): Run commands on specific groupsexecute_on_host(): Run commands on single hostpush_to_hosts(): Push files to multiple hosts (with groups support)pull_from_host(): Pull files from hostslist_hosts(): List all configured hostsget_groups(): Get group configuration
-
tailscale_manager.py: Tailscale-specific operationsget_tailscale_status(): Get complete network statuscheck_connectivity(): Ping hosts via Tailscaleget_peer_info(): Get detailed peer informationlist_online_machines(): List all online Tailscale machinesvalidate_tailscale_ssh(): Check if Tailscale SSH works for a hostget_network_summary(): Human-readable network summary
-
load_balancer.py: Intelligent task distributionget_machine_load(): Get CPU, memory, disk metrics for a machineselect_optimal_host(): Pick best host based on current loadget_group_capacity(): Get aggregate capacity of a groupdistribute_tasks(): Distribute multiple tasks optimally across hostsformat_load_report(): Format load metrics as human-readable report
-
workflow_executor.py: Common multi-machine workflowsdeploy_workflow(): Full deployment pipeline (staging → test → production)backup_workflow(): Backup files from multiple hostssync_workflow(): Sync files from one host to manyrolling_restart(): Zero-downtime service restart across grouphealth_check_workflow(): Check health endpoints across group
Utilities:
-
utils/helpers.py: Common formatting and parsing functions- Byte formatting (
format_bytes) - Duration formatting (
format_duration) - Percentage formatting (
format_percentage) - SSH config parsing (
parse_ssh_config) - sshsync config parsing (
parse_sshsync_config) - System metrics parsing (
parse_disk_usage,parse_memory_usage,parse_cpu_load) - Load score calculation (
calculate_load_score) - Status classification (
classify_load_status,classify_latency) - Safe command execution (
run_command,safe_execute)
- Byte formatting (
-
utils/validators/: Comprehensive validation systemparameter_validator.py: Input validation (hosts, groups, paths, timeouts, commands)host_validator.py: Host configuration and availability validationconnection_validator.py: SSH and Tailscale connection validation
Testing:
tests/test_integration.py: 11 end-to-end integration teststests/test_helpers.py: 11 helper function teststests/test_validation.py: 7 validation tests- Total: 29 tests covering all major functionality
Documentation:
SKILL.md: Complete skill documentation (6,000+ words)- When to use this skill
- How it works
- Data sources (sshsync CLI, Tailscale)
- Detailed workflows for each operation type
- Available scripts and functions
- Error handling and validations
- Performance and caching strategies
- Usage examples
references/sshsync-guide.md: Complete sshsync CLI referencereferences/tailscale-integration.md: Tailscale integration guideREADME.md: Installation and quick start guideINSTALLATION.md: Detailed setup tutorialDECISIONS.md: Architecture decisions and rationale
Data Sources
sshsync CLI:
- Installation:
pip install sshsync - Configuration:
~/.config/sshsync/config.yaml - SSH config integration:
~/.ssh/config - Group-based host management
- Remote command execution with timeouts
- File push/pull operations (single or recursive)
- Status checking and connectivity validation
Tailscale:
- Zero-config VPN with WireGuard encryption
- MagicDNS for easy host addressing
- Built-in SSH capabilities
- Seamless integration with standard SSH
- Peer-to-peer connections
- Works across NATs and firewalls
Coverage
Operations:
- Host status monitoring and availability checks
- Intelligent load-based task distribution
- Multi-host command execution (all hosts, groups, individual)
- File synchronization workflows (push/pull)
- Deployment pipelines (staging → production)
- Backup and sync workflows
- Rolling restarts with zero downtime
- Health checking across services
Geographic Coverage: All hosts in Tailscale network (global)
Temporal Coverage: Real-time status and operations
Known Limitations
v1.0.0:
- sshsync must be installed separately (
pip install sshsync) - Tailscale must be configured separately
- SSH keys must be set up manually on each host
- Load balancing uses simple metrics (CPU, memory, disk)
- No built-in monitoring dashboards (terminal output only)
- No persistence of operation history (logs only)
- Requires SSH config and sshsync config to be manually maintained
Planned for v2.0
Enhanced Features:
- Automated SSH key distribution across hosts
- Built-in operation history and logging database
- Web dashboard for monitoring and operations
- Advanced load balancing with custom metrics
- Scheduled operations and cron integration
- Operation rollback capabilities
- Integration with configuration management tools (Ansible, Terraform)
- Cost tracking for cloud resources
- Performance metrics collection and visualization
- Alert system for failed operations
- Multi-tenancy support for team environments
Integrations:
- Prometheus metrics export
- Grafana dashboard templates
- Slack/Discord notifications
- CI/CD pipeline integration
- Container orchestration support (Docker, Kubernetes)
[Unreleased]
Planned
- Add support for Windows hosts (PowerShell remoting)
- Improve performance for large host groups (100+)
- Add SSH connection pooling for faster operations
- Implement operation queueing for long-running tasks
- Add support for custom validation plugins
- Expand coverage to Docker containers via SSH
- Add retry strategies with exponential backoff
- Implement circuit breaker pattern for failing hosts