Bundle the Chaos Toolkit CLI and all the drivers/plugins into one standalone binary
Bundle the Chaos Toolkit CLI and all the drivers/plugins into one
standalone binary for Linux, MacOSX and Windows platforms.
Basically, it’s useful when you want to run the Chaos Toolkit without having
to install it from its packages. It’s handy when you cannot install Python 3 for
instance.
The bundle gathers all the latest releases of the Chaos Toolkit and well-known
drivers and plugins. Please have a look at the the bundled packages.
All projects part of this bundle should trigger automatically a new release
of the bundle when they have been released themselves so that the bundle
remains up-to-date.
Simply download one of the binary for your platform and copy it
into your PATH
. Rename the file to chaos
then make it executable withchmod a+x chaos
and simply use it as you would use the
Chaos Toolkit.
If your platform is not supported, please see other means of
installing the Chaos Toolkit.
If you need to create a standalone bundle of the Chaos Toolkit with all its
drivers and plugins (except reporting for now) for your own use case,
please do as follows:
$ python3 -m venv .bundler
$ source .bundler/bin/activate
(.bundler) $ pip install -U -r requirements.txt
(.bundler) $ export CHAOSTOOLKIT_PATH=`which chaos`
(.bundler) $ pyinstaller chaos.spec
You need to do that on all the platforms you want to target. Once generated,
a chaos
binary will be found in the dist
directory. You can copy and
run this binary without having to create a virtual environment or install
the drivers any more.
Be aware that the generated binary does not keep the drivers up-to-date by
itself. You need to regenerate it whenever a new release of the toolkit or a
driver is made.
A bundle is automatically created and released whenever a new tag is pushed.
$ VERSION=`date +%Y.%m.%d`
$ git tag $VERSION
$ git push origin $VERSION
Note that the release will be created as soon as either the Linux or MacOSX
build is completed, the other will simply add the asset to the release.
All known drivers, plugins should create a new tag of this repository when they
pushe their own tags so new bundle release is triggered.
The versioning follows calendar versioning as it makes more sense
than a semantic version here. Note, this is not the version of the chaostoolkit
CLI itself. But a generic indication of when this was released. Do not draw
any semantic meaning from the version.
If you wish to contribute more functions to this package, you are more than
welcome to do so. Please fork this project, make your changes following the
usual PEP 8 code style, add appropriate tests and submit a PR for
review.
The Chaos Toolkit projects require all contributors must sign a
Developer Certificate of Origin on each commit they would like to merge
into the master branch of the repository. Please, make sure you can abide by
the rules of the DCO before submitting a PR.