Design standard application templates

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), or
Application 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:

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

  1. From the navigation menu, click Templates.

    Go to Templates

  2. Click Create Template.

  3. The Template ID field is automatically populated. Alternatively, enter a unique identifier for the template. This field is required.

  4. 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.

  5. In the Description field, enter a brief explanation of the application's purpose.

  6. 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.

A three-tier web application in the design canvas. The application includes frontend, backend, and database components.

You can design your template by adding components to the following starting points:

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.tf and outputs.tf files.

  • 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

  1. From the design canvas, select Design to view the canvas.

  2. 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.

  3. 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.

  4. To remove a component or connection, do the following:

    1. In the canvas, click the component or connection.

    2. In the