deploy_tools#
A set of tools used for deploying applications to a shared filesystem.
This is used for deploying containerised desktop applications to many users who have access to a shared filesystem. We use the Environment Modules package to make these applications available to the end user.
What |
Where |
|---|---|
Source |
|
PyPI |
|
Docker |
|
Documentation |
|
Releases |
The demo_configuration folder in this repository can be passed as the config_folder to the deploy-tools commands. The deployment_root needs to be a writeable location for all files to get deployed under.
In normal use these commands are not run by hand: they act on a shared deployment area and belong in a CI pipeline, gated by change review. Running them manually against the demo configuration, as below, is just the quickest way to see what each does — the documentation has a hands-on tutorial and a guide to driving them from CI.
The examples below use the deploy-tools console script; python -m deploy_tools is
equivalent if you prefer to invoke the module directly.
deployment_root = /path/to/deployment/root
config_folder = /path/to/config/folder
# Validate the deployment configuration files, also ensuring that the required updates
# are compatible with the previous deployments.
deploy-tools validate $deployment_root $config_folder
# Synchronise the deployment area with the configuration files. This will first run
# validation as part of determining the required changes
deploy-tools sync $deployment_root $config_folder
# Compare the current deployment snapshot against what is actually deployed in the
# deployment area. CI/CD should run this before a deploy to confirm a healthy state.
deploy-tools compare $deployment_root
Generating the JSON schema files with deploy-tools schema <folder> is a separate,
occasional task: it produces the schemas that editors use to validate configuration files,
and is not part of a deployment. See the schema reference in the documentation.
How the documentation is structured#
Documentation is split into four categories, also accessible from links in the top bar.