Cloud Deployment Manager will reach end of support on December 31, 2025. If you currently use Deployment Manager, please migrate to Infrastructure Manager or an alternative deployment technology by December 31, 2025 to ensure your services continue without interruption.
Stay organized with collections
Save and categorize content based on your preferences.
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:
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.
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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eA configuration file is mandatory for creating a deployment, defining the structure, resource types, properties, and templates involved.\u003c/p\u003e\n"],["\u003cp\u003eConfigurations support a wide array of Google Cloud resources, including Compute Engine, Kubernetes Engine, BigQuery, Cloud Storage, and Cloud SQL, all within a single file.\u003c/p\u003e\n"],["\u003cp\u003eConfiguration files must be written using YAML syntax, and they can import templates for enhanced functionality using Jinja or Python.\u003c/p\u003e\n"],["\u003cp\u003eDeployment Manager expands configurations on the server-side, with limitations such as a 1 MB size limit for both original and expanded configurations.\u003c/p\u003e\n"],["\u003cp\u003ePython templates cannot make system or network calls, and exceeding time or power usage limits can require splitting or simplifying the configuration.\u003c/p\u003e\n"]]],[],null,["# Configurations Overview\n\nA configuration defines the structure of your deployment, including the\ntype and properties of the resources that are part of the deployment, any\ntemplates the configuration should use, and additional subfiles that can be\nexecuted to create your final configuration. You must always specify a\nconfiguration in order to create a deployment.\n\nIn your configuration, you can define a variety of supported Google Cloud\nplatform resources from different services in a single configuration file.\nSome example resources include:\n\n- All [Compute Engine](/compute/docs) resources including:\n - [Autoscaler](/compute/docs/autoscaler)\n - [Instance groups](/compute/docs/instance-groups) and [managed instance groups](/compute/docs/instance-groups/manager)\n- [Kubernetes Engine](/kubernetes-engine)\n- [BigQuery](/bigquery)\n- [Cloud Storage](/storage)\n- [Cloud SQL](/cloud-sql)\n\nFor a full list of resources, consult this table of\n[Supported resource types](/deployment-manager/docs/configuration/supported-resource-types)\nor make a\n[`list()`](/deployment-manager/docs/reference/latest/types/list) request to the\n[Types collection](/deployment-manager/docs/reference/latest/types).\n\nConfiguration language\n----------------------\n\nYou must write configuration files using\n[YAML](http://en.wikipedia.org/wiki/YAML) syntax. To learn\nhow to create a configuration file, see\n[Create a Configuration](/deployment-manager/docs/configuration/create-basic-configuration).\n\nTemplate languages\n------------------\n\nA configuration can import one or more template files that Deployment Manager\nwill expand during deployment to create the final configuration. You can\nwrite templates in either Jinja or Python. It is possible to mix and match\ntemplates. A single configuration can import both Jinja and Python templates. A\ntemplate can be a local file or a file hosted at a third-party URL.\n\nTemplates offer additional functionality, like the ability to use\nenvironment variables, the ability to define custom variables, the ability\nto use Python libraries, and so on.\n\nFor more information about templates, read\n[Creating a Basic Template](/deployment-manager/docs/configuration/templates/create-basic-template).\n\nConfiguration limits\n--------------------\n\nAll configurations are expanded on the server side within a controlled\nenvironment that Deployment Manager maintains. In order to prevent abuse,\nthis environment is closely managed by the Deployment Manager team\nand has some limitations:\n\n- Neither your original configuration nor your expanded configuration can exceed 1 MB.\n- 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.\n- Any Python templates you use cannot make any system or network calls. These templates will automatically be rejected.\n\nWhat's next\n-----------\n\n- Create a [simple configuration](/deployment-manager/docs/configuration/create-basic-configuration).\n- Decide if you want to use [templates](/deployment-manager/docs/configuration/templates/create-basic-template).\n- If you are exposing your configuration to other users, consider [creating a schema](/deployment-manager/docs/configuration/templates/using-schemas).\n- Learn how you can [host templates externally](/deployment-manager/docs/configuration/templates/hosting-templates-externally)."]]