Description
Convert the rover from a Docker container-based solution to a Golang executable. This will improve performance, reduce resource overhead, and provide a more lightweight deployment option for the Terraform platform engineering toolset.
Current State
The rover is currently implemented as a Docker container with:
- 88% Shell scripts
- 8.3% Dockerfile
- 2% Python
- 1.5% HCL
- 0.2% Makefile
Benefits of Migration to Go
- Performance: Faster execution and lower memory footprint
- Portability: Single binary distribution across platforms
- Reduced dependencies: No Docker runtime requirement
- Simplified deployment: Direct executable without container orchestration
- Better resource utilization: Lower overhead compared to containerized solution
- Cross-platform support: Native binaries for different OS/architectures
Migration Tasks
Technical Considerations
- CLI Framework: Consider using cobra/viper for command-line interface
- Configuration: Migrate existing configuration formats
- Azure SDK: Leverage Azure SDK for Go
- Terraform Integration: Use Terraform Go SDK or exec approach
- Logging: Implement structured logging
- Error Handling: Robust error handling and user feedback
Acceptance Criteria
Additional Context
This migration represents a significant architectural change that will modernize the rover toolset and align with current Go ecosystem practices for infrastructure tooling.
Review Note (2026-01-12): Current branch shows migration to Rust (001-shell-to-rust-migration) rather than Go. This issue should be updated to reflect the actual migration strategy or closed if Rust is the chosen path.
Description
Convert the rover from a Docker container-based solution to a Golang executable. This will improve performance, reduce resource overhead, and provide a more lightweight deployment option for the Terraform platform engineering toolset.
Current State
The rover is currently implemented as a Docker container with:
Benefits of Migration to Go
Migration Tasks
Technical Considerations
Acceptance Criteria
Additional Context
This migration represents a significant architectural change that will modernize the rover toolset and align with current Go ecosystem practices for infrastructure tooling.
Review Note (2026-01-12): Current branch shows migration to Rust (001-shell-to-rust-migration) rather than Go. This issue should be updated to reflect the actual migration strategy or closed if Rust is the chosen path.