This repository has been archived by the owner on Jun 1, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moving to reStructuredText README, and updated setup.py for PyPI
- Loading branch information
Showing
3 changed files
with
99 additions
and
68 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
launchbox | ||
========= | ||
|
||
Bundle cookbooks for use by chef-solo. | ||
|
||
Launchbox supports transitive dependency resolution, chef version | ||
contraints and exclusions (for those misbehaved cookbooks that depend on | ||
more than they should). | ||
|
||
Input | ||
----- | ||
|
||
launchbox will look for YAML files under the ``roles`` and ``mixins`` in | ||
the input directory (which defaults to ``./src``). | ||
|
||
An example role will look like: | ||
|
||
:: | ||
|
||
ci: | ||
include_mixins: [java] | ||
jenkins: | ||
http_proxy: | ||
variant: nginx | ||
cookbooks: | ||
java: "1.5.1" | ||
nginx: "0.101.1" | ||
jenkins: "0.6.3" | ||
run_list: | ||
- java | ||
- jenkins | ||
|
||
Think of mixins as partial roles for reusability. At run-time launchbox | ||
will apply all mixins in order and then override any values with the | ||
data in the role itself. | ||
|
||
Cookbooks | ||
--------- | ||
|
||
The cookbooks specified for a role will be downloaded from the specified | ||
web server or S3 bucket. | ||
|
||
S3 | ||
~~ | ||
|
||
To use an S3 remote use ``launchbox --bucket your.bucket.name`` | ||
|
||
In the case of an S3 remote ``launchbox`` will look for keys of the form | ||
``cookbooks/<cookbook>/<version>/<cookbook>.tar.gz`` for the cookbook | ||
contents, and ``cookbooks/<cookbook>/<version>/<cookbook>.json`` for the | ||
metadata. For determining the available versions ``launchbox`` will list | ||
the bucket and find all available versions. | ||
|
||
HTTP | ||
~~~~ | ||
|
||
To use an HTTP(S) remote use | ||
``lauchbox --url http://your/bucket/server`` | ||
|
||
In the case of an HTTP(s) remote ``launchbox`` will download cookbook | ||
data from | ||
``http://example.com/cookbooks/<cookbook>/<version>/<cookbook>.tar.gz``, | ||
cookbook metadata from | ||
``http://example.com/cookbooks/<cookbook>/<version>/<cookbook>.tar.gz`` | ||
and the list of available cookbook versions from | ||
``http://example.com/cookbooks/<cookbook>/versions.json`` | ||
|
||
Output | ||
------ | ||
|
||
After running launchbox the target folder will contain a JSON file with | ||
the role metadata and tar.gz containing all the necessary cookbooks for | ||
that role. | ||
|
||
Usage | ||
----- | ||
|
||
For detailed used information run | ||
|
||
:: | ||
|
||
launchbox -h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,27 @@ | ||
import os | ||
from setuptools import setup | ||
|
||
def read(fname): | ||
return open(os.path.join(os.path.dirname(__file__), fname)).read() | ||
|
||
setup(name='launchbox', | ||
version='0.1', | ||
description='Packager for chef-solo', | ||
description='Packaging and dependency resolution for chef-solo cookbooks', | ||
long_description=read('README.rst'), | ||
keywords="chef chef-solo dependency package bundle", | ||
url='http://github.com/SimpleFinance/launchbox', | ||
author='Cosmin Stejerean', | ||
author_email='cosmin@offbytwo.com', | ||
license='Apache License 2.0', | ||
url='http://github.com/SimpleFinance/launchbox', | ||
packages=['launchbox'], | ||
scripts=['bin/launchbox', 'bin/publish-cookbook'], | ||
scripts=['bin/launchbox'], | ||
tests_require=open('test-requirements.txt').readlines(), | ||
install_requires=open('requirements.txt').readlines() | ||
install_requires=open('requirements.txt').readlines(), | ||
classifiers=[ | ||
'Development Status :: 3 - Alpha', | ||
'Environment :: Console', | ||
'License :: OSI Approved :: Apache Software License', | ||
'Topic :: System :: Software Distribution', | ||
'Topic :: Utilities' | ||
] | ||
) |