Code Monkey home page Code Monkey logo

pallet's Introduction

pallet logo

Pallet is used to provision and maintain compute nodes, and aims to solve the problem of providing a consistently configured running image across a range of clouds. It is designed for use from the Clojure REPL, and from clojure scripts.

It uses jclouds to gain portable access to different cloud providers. While jclouds solves the issue of creating, destroying and configuring cloud level access to nodes, it does not address the differences in images used across providers. This is what Pallet adds.

defnode is used to decalre node types, specifying the image template and possibly bootstrap and other configuration. The converge function can then be used to control the number of nodes of each type that are running in your cloud, and applies the declared configuration as required. The lift function can also be used to apply configuration without adjusting node counts. Both converge and lift accept inline definiton of configuration actions that should be run.

In pallet, low level resources can be combined in clojure functions, known as crates, that are used to specify configuration. Crates are clojure functions that have an initial request argument, and can call other crates, with arguments, as required. The request argument is used to carry the configuration request state, and is updated, and returned by each reasource function. The request map must be threaded through each resource or crate call.

Crates can be packaged and distributed as clojure jar files.

Some basic documentation is available.

Usage

See demo documentation.

There is an introductory screencast, showing a basic node configuration, and starting and stopping a node.

Support

On the group, or #pallet on freenode irc.

Installation

Pallet is distributed as a jar, and is available in the clojars repository.

Installation is with Leiningen, maven, or your favourite maven repository aware build tool.

Quickstart

If you just want to try out pallet, then you can follow these instructions:

  • Download the tarfile or zipfile, and unpack.

  • Install Leiningen.

  • In a shell, go to the directory containing the pallet source code and enter

      $ lein deps
      $ lein repl
    

You should now have a working repl, which you can use to explore pallet. You might want to make the basic pallet commands available without namespace prefix by typing the following at the repl.

    user> (use 'pallet.repl)
user> (use-pallet)

See also

jclouds, chef, crane

License

Licensed under EPL

pallet's People

Contributors

cemerick avatar emonty avatar hugoduncan avatar otfrom avatar tbatchelli avatar

Stargazers

 avatar

Watchers

 avatar  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.