Administrators create standard application templates to help ensure that their preferred architecture is used by each development team. This lets you govern the resources and configurations that developers use in their application deployments. Once you create a standard template, others in your space can access it. You can also add a template to a catalog to share with other spaces.
Developers can use your template to create and deploy an application, or you can embed your template as part of a larger composite template. When developers create an application, they can configure each component from the template, but they can't add or remove any components. The template generates Terraform code, which developers can download or deploy from App Design Center.
This document helps you design, configure, and share a standard application template using App Design Center.
Before you begin
To perform the tasks in this document, ask your administrator to grant you the necessary roles on the app-enabled folder or management project, as listed in the following table:
| Task | Required roles |
|---|---|
| Create, design, and edit standard application templates | Application Design Center Admin (roles/designcenter.admin), orApplication Design Center User ( roles/designcenter.user) |
| Publish or share standard templates to a catalog | Application Design Center Admin (roles/designcenter.admin) |
For more information about roles, see Access control with IAM.
Create a standard application template
Create standard application templates to share your architecture design with development teams. You can add the following components to your template design:
Assets: High-level resources that help you control other resources, such as service accounts.
Services: Network or API interfaces that are consumed over the network, such as Cloud Storage and Vertex AI.
Workloads: Binary deployments that perform business functions, such as Cloud Run and Compute Engine.
You can select from the following components:
- Components designed by Google, incorporating Google Cloud best practices and default security configurations.
- Your own components that you import, based on your own Terraform modules.
As you design your template, App Design Center generates Terraform code to reflect the design and configuration details.
Specify template details
Template details help you categorize your template and help developers decide whether to use your template.
To enter details for your template, do the following:
Design canvas
From the navigation menu, click Templates.
Click Create Template.
The Template ID field is automatically populated. Alternatively, enter a unique identifier for the template. This field is required.
In the Template Name field, enter a human-readable identifier to display in the Google Cloud console.
If you don't provide a name, the Template ID is copied to this field.
In the Description field, enter a brief explanation of the application's purpose.
Click Create template. The design canvas is displayed.
gcloud CLI
Create a new application template.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE \
--display-name=DISPLAY_NAME \
--description=DESCRIPTION
Replace the following:
APPLICATION_TEMPLATE: The template ID for the application template that you want to create.PROJECT: Your management project ID.LOCATION: The application template region.SPACE: Your space ID.DISPLAY_NAME: A name to display in the Google Cloud console.DESCRIPTION: A brief description.
For more information, see gcloud design-center spaces application-templates create.
Design your template
Design your template by adding and connecting components. The following example includes three connected components on the design canvas.
You can design your template by adding components to the following starting points:
- A blank canvas.
- A Google-provided template.
- A template that you generate with Gemini assistance.
To help developers configure an application based on your template, designate specific input and output variables. Variables help you define the following:
Specific inputs that developers must provide when they create an application based on your template. For example, you can provide distinct variable values for each environment when you deploy an application to development, production, and test environments. These variables are automatically exposed in the generated Terraform
variables.tfandoutputs.tffiles.Connections between two standard application templates that are embedded in a composite template. For example, to create a connection in a composite template, a database template might output a database name variable that is used as input for an application logic template.
To design your template, do the following:
Design canvas
From the design canvas, select Design to view the canvas.
Do one of the following to get started:
To start from scratch, from the Components area, click a component to add it to the canvas area.
To start from a Google-provided template, in the Get Started area on the canvas, click the template name.
To use natural language chat to generate a template, click Custom Application with Gemini.
To create a communication channel between components, do one of the following:
To connect two components on the canvas, drag from a blue dot on a component to a blue dot on another component.
To add to an existing component, click Add and select the component to add.
For connection details, see the configuration documentation for each supported resource.
To remove a component or connection, do the following:
In the canvas, click the component or connection.
In the