Skip to main content

Utility to generate service deploy configurations

Project description


Utility for generating deployment configs for a service

Basic usage

The below command will generate the required deployment config files for the specified service in the current directory.

$ deploy-config-generator path/to/service/repo

You can specify the environment to generate configuration for.

$ deploy-config-generator path/to/service/repo -e stage

You can specify the output directory using the --output-dir option.

$ deploy-config-generator path/to/service/repo --output-dir /tmp

You can increase the verbosity level to see what the script is doing.

$ deploy-config-generator path/to/service/repo -vvv

You can specify the path to a site config file.

$ deploy-config-generator path/to/service/repo --config path/to/site/config.yml

The dirty details

Site config

The optional site config file is expected to be a YAML file with the following basic structure.

some_global_option: foo
another_global_option: bar
    some_plugin_option: baz
      <field definitions>

The field definitions should have the following basic structure (continued from above).

        type: str
        type: bool
        default: false

Global options

The following global options are available.

Name Default Description
default_output The default output plugin to use (probably to be removed)
deploy_dir deploy Directory within service dir where deploy config is located
deploy_config_file config.yml Name of deploy config file
vars_dir var Directory within deploy dir to look for vars files
defaults_vars_file_patterns ['defaults.var'] Patterns for finding "defaults" vars files
env_vars_file_patterns ['{{ env }}.var', 'env_{{ env }}.var'] Patterns for finding env-specific vars files
use_env_vars True Whether to read vars from environment
plugin_dirs [] Additional dirs where plugins can be found


Variables are read from shell-compatible .var files (by default) located in the deploy directory. Variable definitions referencing other variables (using the $FOO or ${FOO} notation) are supported. Vars are read in the following order.

  • vars from site config (the default_vars key)
  • vars from environment - useful for running in a CI job
  • "defaults" vars file(s) - default values for all environments
  • env-specific vars files - values specific to a particular application environment

Deploy config

The deploy config is read from deploy/config.yml (by default) from the directory specified on the commandline. It is expected to be a YAML file with the following basic structure.

  <app definitions>
  <job definitions>

The available top-level sections and the keys allowed for them are defined by the individual output plugins.


This tool uses a plugin system for handling the generation of deploy files for various backends.

The following output plugins are available:


Running tests

This tool comes with unit and integration test suites, which can be run with the commands:

$ python test
$ python integration

You can run the full test suite in multiple python versions using tox by running:

$ tox

Regenerating plugin docs

The docs for the individual plugins are generated from the code of the plugins. You can regenerate the plugin docs with the following command:

$ scripts/

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for deploy-config-generator, version 2.8.0
Filename, size File type Python version Upload date Hashes
Filename, size deploy-config-generator-2.8.0.tar.gz (29.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page