Creating a Deployment Manager-based solution

When creating Service Catalog solutions for users in your organization, you can create a Deployment Manager (DM) solution, which users launch using a Deployment Manager template. After you create a solution, you can share it with your users by adding it to catalogs .

Before you begin

  • You must have the Catalog Admin ( roles/cloudprivatecatalogproducer.admin ) OR Catalog Manager ( roles/cloudprivatecatalogproducer.manager ) role for the Google Cloud organization associated with the Google Cloud project which has Service Catalog enabled. If you don't have this role, contact your Organization Administrator to request access.

  • Enable the Cloud Deployment Manager and Compute Engine APIs.

    Enable the APIs

Preparing your deployment template

To create a Deployment Manager solution in Service Catalog, you first prepare a Deployment Manager template zip file to upload, which must contain the following files:

  • A Jinja template file ending in the .jinja extension or a Python template file ending in the .py extension.
  • A schema file ending in the .jinja.schema extension for a Jinja template or the py.schema extension for a Python template.

The name of the zip file must match the names of both the schema and Jinja or Python files. For example, if the zip file is named android-dev-environment.zip , the Jinja schema file inside the zip must be named android-dev-environment.jinja.schema and the Jinja template must be named android-dev-environment.jinja .

The following code sample illustrates a schema file to create a deployment form:

  info 
 : 
  
 title 
 : 
  
 Single Google Compute Engine Machine 
  
 author 
 : 
  
 Google Inc. 
  
 description 
 : 
  
 Creates a virtual machine based on zone and machine type selection. 
 required 
 : 
  
 - 
  
 machinetype 
  
 - 
  
 zone 
 properties 
 : 
  
 machinetype 
 : 
  
 title 
 : 
  
 Machine type 
  
 type 
 : 
  
 string 
  
 enum 
 : 
  
 - 
  
 n2-standard-2 
  
 - 
  
 n2-standard-4 
  
 - 
  
 n2-standard-8 
  
 - 
  
 n2-highmem-2 
  
 - 
  
 n2-highmem-4 
  
 - 
  
 n2-highmem-8 
  
 - 
  
 n2-highcpu-2 
  
 - 
  
 n2-highcpu-4 
  
 - 
  
 n2-highcpu-8 
  
 zone 
 : 
  
 title 
 : 
  
 Zone 
  
 type 
 : 
  
 string 
  
 enum 
 : 
  
 - 
  
 us-central1-a 
  
 - 
  
 us-central1-c 
  
 - 
  
 us-east1-b 
  
 - 
  
 us-east1-c 
  
 - 
  
 us-west1-a 
  
 - 
  
 us-west1-b 
  
 - 
  
 us-west1-c 
 

The following code sample illustrates a Jinja file to create a persistent VM:

  # Creates a Persistent VM 
 resources 
 : 
 - 
  
 type 
 : 
  
 compute.v1.instance 
  
 name 
 : 
  
 vm-{{ env["deployment"] }} 
  
 properties 
 : 
  
 zone 
 : 
  
 {{ 
  
 properties 
 [ 
 "zone" 
 ] 
  
 }} 
  
 # Note the machineType definition at the end. n2-custom-4-5120 specifies n2 machine family with 4 CPUs and 5GB (5120 MB) of RAM. For custom machine types, refer to https://cloud.google.com/compute/docs/instances/creating-instance-with-custom-machine-type 
  
 machineType 
 : 
  
 https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/zones/{{ properties["zone"] }}/machineTypes/{{ properties["machinetype"] }} 
  
 disks 
 : 
  
 - 
  
 deviceName 
 : 
  
 boot 
  
 type 
 : 
  
 PERSISTENT 
  
 boot 
 : 
  
 true 
  
 autoDelete 
 : 
  
 true 
  
 initializeParams 
 : 
  
 diskName 
 : 
  
 disk-{{ env["deployment"] }} 
  
 sourceImage 
 : 
  
 https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-9 
  
 networkInterfaces 
 : 
  
 - 
  
 network 
 : 
  
 https://www.googleapis.com/compute/v1/projects/{{ env["project"] }}/global/networks/default 
  
 # Access Config required to give the instance a public IP address 
  
 accessConfigs 
 : 
  
 - 
  
 name 
 : 
  
 External NAT 
  
 type 
 : 
  
 ONE_TO_ONE_NAT 
 

Creating the solution in Service Catalog

To create a Deployment Manager template-based solution:

  1. Go to the Service Catalog Admin Solutionspage in the Google Cloud console.
    Go to the Solutions page

  2. Click Selectto choose the Google Cloud project.

  3. Click CREATE SOLUTION. In the drop-down list, select Create a DM solution.

  4. Enter a name, description, and tagline for your solution. The tagline is a short description of a solution that users see as they browse Service Catalog.

  5. Upload a zip file, containing the files for a deployment configuration .

  6. Optionally, upload an icon for the solution. The recommended dimensions for an icon are 80 by 80 pixels.

  7. Optionally, enter a support link and contact information for the creator.

  8. Optionally, add a link to the documentation for the solution.

  9. Click CREATE.

The following screenshot illustrates creating a DM-based solution:

Create a Cloud Deployment Manager template-based solution

Next steps

  • Assign the solution to a catalog, so that users in your organization can access and deploy the solution.
Create a Mobile Website
View Site in Mobile | Classic
Share by: