hamlet-io / engine

Framework for managing cloud infrastructure via templates. It is part of the broader Hamlet devops framework.
GNU General Public License v3.0
5 stars 5 forks source link

Hamlet Deploy - Engine

This is the Engine component of the Hamlet Deploy application. It contains core logic and internal data models, as well as the Shared provider.

See https://docs.hamlet.io for more info on Hamlet Deploy

Installation

The Hamlet core engine is included as part of the standard hamlet installation. For details on installing hamlet see the install guide on our docs site.

Alternative Methods

If you aren't using the hamlet cli or would like to contribute to the engine development the following local clone method is recommended

Local clone

Clone the repository locally to a path you know will stick around

git clone https://github.com/hamlet-io/engine.git

To manually perform an update on the Engine, simply pull down the latest changes using git.

cd ./path/to/engine
git pull

Set the following environment variable to tell the other hamlet parts with the engine is

Name Value
GENERATION_ENGINE_DIR <clone dir>

Usage

The Hamlet Deploy Engine cannot be invoked on its own and is reliant on other Hamlet Deploy components.

See https://docs.hamlet.io for more information.

Contributing

When contributing to hamlet we recommend installing this plugin using the Local Clone method above using a fork of the repository

Testing

The plugin includes a test suite which generates a collection of deployments and checks that their content aligns with what is expected

To run the test suite locally install the hamlet cli and use the provider testing included


# install cli
pip install hamlet

# run the tests
hamlet -i mock -p shared -p sharedtest -f default deploy test-deployments -o /tmp/results_dir

This will run all of the tests and provide you the results. We also run this on all Pull requests made to the repository

Submitting Changes

Changes to the plugin are made through pull requests to this repo and all commits should use the conventional commit format This allows us to generate changelogs automatically and to understand what changes have been made