Giter VIP home page Giter VIP logo

rovergo's Introduction

๐Ÿถ 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:

  • 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

๐Ÿฅ‡ 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

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:

  • 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

๐Ÿ”Œ Extending Rover

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

๐Ÿ‘ฉโ€๐Ÿ’ป Developing and Contributing

rovergo's People

Contributors

benc-uk avatar hadwaabdelhalem avatar hattan avatar nepomuceno avatar pauldfoster avatar polatengin avatar sebastus avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.