The Rover v2 project undertakes re-writing the Rover command line tool in Go and redesigning the running and operation of the tool.
The high level goals & objectives of this project:
- Move away from a bash script based tool to one with solid engineering.
- Provide a maintainable codebase going forward, supported by CI/CD and tests etc.
- Improve the user experience, and simplify the getting started with CAF landingzones.
- Remove dependency on hardcoded paths and other limitations that Rover v1 had.
- Provide standalone binaries (Linux, Windows, MacOS) as well as devcontainer support
Note. This version is not backwards compatible with the previous Rover v1 tool
Rover is a command line tool to assist with the deployment and management of Azure CAF Landing zones. It provides a way to run Terraform and other tools in a structured way and simplify many of the operations. It was designed to be run by end users locally, but also inside of a CI/CD pipeline
Rover v2 provides a way to manage entire environments consisting of any number of CAF Landing zones across multiple CAF levels, this is done with YAML definitions describing your configuration (aka project Symphony) this is how it used
Board: aztfmod/projects
The easiest way to install Rover v2 is directly from GitHub using the install script.
To install into the current directory ./bin/
directory just run:
curl https://raw.githubusercontent.com/aztfmod/rovergo/main/install.sh | bash
Alternatively specify the install location, e.g. a directory on your system path:
export installPath=$HOME/.local/bin
curl https://raw.githubusercontent.com/aztfmod/rovergo/main/install.sh | bash -s -- -b $installPath
If you wish to fetch the binary yourself or install older versions, please refer to the GitHub releases page
This is a very basic introduction into running Rover v2
Firstly Rover v2 relies on some external tools and dependencies:
- Azure CLI for authentication and sign-in to Azure - Install here
- Terraform v0.15+ for deployment of landing zones - Install here
If you want to get up and running and try Rover out, please check out the minimal sample config which has a very simple sample CAF configuration to use, consisting of a level 0 launchpad and a level 1 with some simple resource groups for testing.
A more complex sample is found in the reference sample app
Otherwise:
- You will also require a set of CAF Landingzones on your system
- In addtion you will need a set of of landing zone configurations, this is a complex topic beyond the scope of this readme, see the full user guide for some details.
Run rover with rover --help
to get information about the commands available, e.g.
Usage:
rover [command]
Available Commands:
apply Perform a terraform plan & apply
destroy Perform a terraform destroy
finder List all terraform (example custom action)
fmt Perform a terraform format
help Help about any command
init Perform a terraform init and no other action
landingzone Manage and deploy landing zones
lint Run tflint
plan Perform a terraform plan
validate Perform a terraform validate
Rover v2 is extensible with;
- custom actions which extend it beyond running Terraform
- groups of actions which can be run in sequence
see the user guide for details for more details