Giter Site home page Giter Site logo

rigger's Introduction

Rigger

A tool to build OS images in a repeatable fashion.

How It Works

Rigger's primary purpose is to enforce repeatability in the image build process while maintaining ease of use. It maintains specific versions of its own dependencies in an effort to minimize the effects of version changes. It uses Packer for all the heavy lifting and sets constraints around how Packer is called.

Rigger has two directories related to the image build process. These are:

  • sources Image sources are stored in subdirectories of this path. Each source should have a template.json which Packer will execute. Rigger will cd to the sources's directory before calling Packer easing the use of relative paths in the template.json file.

  • artifacts Build outputs are placed in this location. The path to this is passed to the packer template in the artifacts user variable.

Rigger keeps a cache of its dependencies, as well as a log of the last run, in .data. The Packer cache is also kept under this location.

Calling Rigger

Rigger is currently called as follows:

./rigger -s source -v version [-p platforms] [-b branch] [-u name=value [...]]

  • source - This is the name of a subdirectory under sources containing the image source definition. It may also be a git repo in which case it is cloned into a directory under sources. Subsequent calls will stash and fetch changes.

  • version - This is the version of the image to build. This is passed to Packer as the version user variable.

  • platforms - A comma separated list of platforms to build for. Default to all platforms in a source.

  • branch - If source is a git repo then this branch will be checked out.

  • name=value - Additional user variables to pass to Packer.

Source Configuration

Sources are configured in two ways: through the use of an optional sources.cfg file in the Rigger root directory and an optional configure file in source root directory. These are bash files and, if they exist, are sourced by the rigger script. See the CoreOS source for an example of this usage.

License

This software project is licensed under the BSD-derived license and is copyright (c) 2014 Ryan Bourgeois. A copy of the license is included in the LICENSE file. If it is missing then a copy may be found on the project page.

rigger's People

Contributors

rynbrd avatar

Watchers

 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.