aztfmod / rovergo

The next version of Rover, the command line tool for Azure CAF Landingzones. Developed in Go
MIT License
10 stars 7 forks source link
azure cli golang terraform

🐶 Rover v2

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:

Note. This version is not backwards compatible with the previous Rover v1 tool

🥇 Intro To Rover

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

🚦 Project Status

last commit commit activity release checks status ci build status workflow status license

Board: aztfmod/projects

Estimated stability level: ⬛⬛⬛⬛⬛⬛⬛⬛⬜⬜ 85%


✨ Getting Started

📦 Installation

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

🏃‍♂️ Running

This is a very basic introduction into running Rover v2

Firstly Rover v2 relies on some external tools and dependencies:

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:

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

See the user guide for more details on how to use rover

🔌 Extending Rover

Rover v2 is extensible with;

see the user guide for details for more details

👩‍💻 Developing and Contributing

See the developer guide