Configurations Overview

A configuration defines the structure of your deployment, including the type and properties of the resources that are part of the deployment, any templates the configuration should use, and additional subfiles that can be executed to create your final configuration. You must always specify a configuration in order to create a deployment.

In your configuration, you can define a variety of supported Google Cloud platform resources from different services in a single configuration file. Some example resources include:

For a full list of resources, consult this table of Supported resource types or make a list() request to the Types collection.

Configuration language

You must write configuration files using YAML syntax. To learn how to create a configuration file, see Create a Configuration.

Template languages

A configuration can import one or more template files that Deployment Manager will expand during deployment to create the final configuration. You can write templates in either Jinja or Python. It is possible to mix and match templates. A single configuration can import both Jinja and Python templates. A template can be a local file or a file hosted at a third-party URL.

Templates offer additional functionality, like the ability to use environment variables, the ability to define custom variables, the ability to use Python libraries, and so on.

For more information about templates, read Creating a Basic Template.

Configuration limits

All configurations are expanded on the server side within a controlled environment that Deployment Manager maintains. In order to prevent abuse, this environment is closely managed by the Deployment Manager team and has some limitations:

  • Neither your original configuration nor your expanded configuration can exceed 1 MB.
  • Any configurations uploaded to Deployment Manager are limited in the amount of time the configuration can take to run and the amount of processing power the configuration consumes during expansion. If you run into this limitation, consider splitting your configuration into smaller templates, or simplify complex structures such as recursion and nested loops.
  • Any Python templates you use cannot make any system or network calls. These templates will automatically be rejected.

What's next