Viewing a Manifest

Each deployment has a corresponding manifest. A manifest is a read-only property that describes all the resources in your deployment and is automatically created with each new deployment. Manifests are not modifiable after they have been created. A manifest is not the same as a configuration file, but is created based on the configuration file.

Before you begin

Manifest structure

A manifest provides three views of a deployment:

  • The initial configuration
  • The fully-evaluated configuration after all templates and imports have been expanded
  • The layout of the deployment, which describes all the resources for the deployment in a hierarchical structure.

Original configuration

The original configuration is the configuration you provided to the deployment, before any template expansion. The initial configuration is indicated by the config property:

  config 
 : 
  
 | 
  
 imports 
 : 
  
 - 
  
 path 
 : 
  
 vm 
 - 
 template 
 . 
 jinja 
  
 - 
  
 path 
 : 
  
 network 
 - 
 template 
 . 
 jinja 
  
 - 
  
 path 
 : 
  
 firewall 
 - 
 template 
 . 
 jinja 
  
 - 
  
 path 
 : 
  
 compute 
 - 
 engine 
 - 
 template 
 . 
 jinja 
  
 resources 
 : 
  
 - 
  
 name 
 : 
  
 compute 
 - 
 engine 
 - 
 setup 
  
 type 
 : 
  
 compute 
 - 
 engine 
 - 
 template 
 . 
 jinja 
 

Expanded configuration

The expanded configuration is a full description of your deployment, including all resources and their properties, after processing all your templates. This is the final state of your configuration.

The expanded configuration portion of your manifest is indicated by the expandedConfig property:

 expandedConfig 
 : 
  
 | 
  
 resources 
 : 
  
 - 
  
 name 
 : 
  
 datadisk 
 - 
 example 
 - 
 config 
 - 
 with 
 - 
 templates 
  
 properties 
 : 
  
 sizeGb 
 : 
  
 100 
  
 type 
 : 
  
 https 
 : 
 //www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/diskTypes/pd-standard 
  
 zone 
 : 
  
 us 
 - 
 central1 
 - 
 a 
  
 type 
 : 
  
 compute 
 . 
 v1 
 . 
 disk 
  
 - 
  
 name 
 : 
  
 vm 
 - 
 example 
 - 
 config 
 - 
 with 
 - 
 templates 
  
 properties 
 : 
  
 disks 
 : 
  
 - 
  
 autoDelete 
 : 
  
 true 
  
 boot 
 : 
  
 true 
  
 deviceName 
 : 
  
 boot 
  
 initializeParams 
 : 
  
 diskName 
 : 
  
 disk 
 - 
 example 
 - 
 config 
 - 
 with 
 - 
 templates 
  
 sourceImage 
 : 
  
 https 
 : 
 //www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619 
  
 type 
 : 
  
 PERSISTENT 
  
 - 
  
 autoDelete 
 : 
  
 true 
  
 deviceName 
 : 
  
 datadisk 
 - 
 example 
 - 
 config 
 - 
 with 
 - 
 templates 
  
 source 
 : 
  
 $ 
 ( 
 ref 
 . 
 datadisk 
 - 
 example 
 - 
 config 
 - 
 with 
 - 
 templates 
 . 
 selfLink 
 ) 
  
 type 
 : 
  
 PERSISTENT 
  
 machineType 
 : 
  
 https 
 : 
 //www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro 
  
 metadata 
 : 
  
 items 
 : 
  
 - 
  
 key 
 : 
  
 startup 
 - 
 script 
  
 value 
 : 
  
 | 
  
 # 
 ! 
 / 
 bin 
 / 
 bash 
  
 python 
  
 - 
 m 
  
 http 
 . 
 server 
  
 8080 
  
 networkInterfaces 
 : 
  
 - 
  
 accessConfigs 
 : 
  
 - 
  
 name 
 : 
  
 External 
  
 NAT 
  
 type 
 : 
  
 ONE_TO_ONE_NAT 
  
 network 
 : 
  
 https 
 : 
 //www.googleapis.com/compute/v1/projects/myproject/global/networks/default 
  
 zone 
 : 
  
 us 
 - 
 central1 
 - 
 a 
  
 type 
 : 
  
 compute 
 . 
 v1 
 . 
 instance 

Imported templates

The imports property in your manifest shows the content of any templates you imported for this configuration. The imports section of your manifest is indicated by the imports section:

 imports 
 : 
 - 
  
 content 
 : 
  
 | 
  
 resources 
 : 
  
 - 
  
 name 
 : 
  
 {{ 
  
 env 
 [ 
 "name" 
 ] 
  
 }} 
  
 type 
 : 
  
 compute 
 . 
 v1 
 . 
 instance 
  
 properties 
 : 
  
 disks 
 : 
  
 - 
  
 autoDelete 
 : 
  
 true 
  
 type 
 : 
  
 PERSISTENT 
  
 boot 
 : 
  
 true 
  
 deviceName 
 : 
  
 boot 
  
 initializeParams 
 : 
  
 sourceImage 
 : 
  
 https 
 : 
 // 
 www 
 . 
 googleapis 
 . 
 com 
 / 
 compute 
 / 
 v1 
 / 
 projects 
 / 
 debian 
 - 
 cloud 
 / 
 global 
 / 
 images 
 / 
 debian 
 - 
 7 
 - 
 wheezy 
 - 
 v20140619 
  
 machineType 
 : 
  
 https 
 : 
 // 
 www 
 . 
 googleapis 
 . 
 com 
 / 
 compute 
 / 
 v1 
 / 
 projects 
 / 
 {{ 
  
 env 
 [ 
 "project" 
 ] 
  
 }} 
 / 
 zones 
 / 
 {{ 
  
 properties 
 [ 
 "zone" 
 ] 
  
 }} 
 / 
 machineTypes 
 / 
 {{ 
  
 properties 
 [ 
 "machineType" 
 ] 
  
 }} 
  
 networkInterfaces 
 : 
  
 - 
  
 network 
 : 
  
$ ( 
 ref 
 .{{ 
  
 properties 
 [ 
 "network" 
 ] 
  
 }}. 
 selfLink 
 ) 
  
 accessConfigs 
 : 
  
 - 
  
 name 
 : 
  
 External 
  
 NAT 
  
 type 
 : 
  
 ONE_TO_ONE_NAT 
  
 zone 
 : 
  
 {{ 
  
 properties 
 [ 
 "zone" 
 ] 
  
 }} 
  
 metadata 
 : 
  
 items 
 : 
  
 - 
  
 key 
 : 
  
 startup 
 - 
 script 
  
 value 
 : 
  
 | 
  
#! / 
 bin 
 / 
 bash 
  
 INSTANCE 
 = 
$ ( 
 curl 
  
 http 
 : 
 // 
 metadata 
 . 
 google 
 . 
 internal 
 / 
 computeMetadata 
 / 
 v1 
 / 
 instance 
 / 
 hostname 
  
 - 
 H 
  
 "Metadata-Flavor: Google" 
 ) 
  
 echo 
  
 "<html><header><title>Hello from Deployment Manager!</title></header> 
 <body><h2>Hello from $INSTANCE</h2> 
 <p>Deployment Manager bids you good day!</p> 
 </body> 
 </html>" 
 > 
 index 
 . 
 html 
  
 python 
  
 - 
 m 
  
 http 
 . 
 server 
  
 80 
  
 name 
 : 
  
 vm 
 - 
 template 
 . 
 jinja 
 - 
  
 content 
 : 
  
 | 
  
 resources 
 : 
  
 - 
  
 name 
 : 
  
 {{ 
  
 env 
 [ 
 "name" 
 ] 
  
 }} 
  
 type 
 : 
  
 compute 
 . 
 v1 
 . 
 network 
  
 properties 
 : 
  
 IPv4Range 
 : 
  
 10.0 
 . 
 0.1 
 / 
 16 
  
 name 
 : 
  
 network 
 - 
 template 
 . 
 jinja 
 - 
  
 content 
 : 
  
 | 
  
 resources 
 : 
  
 - 
  
 name 
 : 
  
 {{ 
  
 env 
 [ 
 "name" 
 ]}} 
  
 type 
 : 
  
 compute 
 . 
 v1 
 . 
 firewall 
  
 properties 
 : 
  
 network 
 : 
  
$ ( 
 ref 
 .{{ 
  
 properties 
 [ 
 "network" 
 ] 
  
 }}. 
 selfLink 
 ) 
  
 sourceRanges 
 : 
  
 [ 
 "0.0.0.0/0" 
 ] 
  
 allowed 
 : 
  
 - 
  
 IPProtocol 
 : 
  
 TCP 
  
 ports 
 : 
  
 [ 
 "80" 
 ] 
  
 name 
 : 
  
 firewall 
 - 
 template 
 . 
 jinja 
 - 
  
 content 
 : 
  
 | 
  
{ % set  NETWORK_NAME = "a-new-network" %} 
  
 resources 
 : 
  
 - 
  
 name 
 : 
  
 the 
 - 
 first 
 - 
 vm 
  
 type 
 : 
  
 vm 
 - 
 template 
 . 
 jinja 
  
 properties 
 : 
  
 machineType 
 : 
  
 f1 
 - 
 micro 
  
 zone 
 : 
  
 us 
 - 
 central1 
 - 
 f 
  
 network 
 : 
  
 {{ 
  
 NETWORK_NAME 
  
 }} 
  
 - 
  
 name 
 : 
  
 the 
 - 
 second 
 - 
 vm 
  
 type 
 : 
  
 vm 
 - 
 template 
 . 
 jinja 
  
 properties 
 : 
  
 machineType 
 : 
  
 g1 
 - 
 small 
  
 zone 
 : 
  
 us 
 - 
 central1 
 - 
 f 
  
 network 
 : 
  
 {{ 
  
 NETWORK_NAME 
  
 }} 
  
 - 
  
 name 
 : 
  
 {{ 
  
 NETWORK_NAME 
  
 }} 
  
 type 
 : 
  
 network 
 - 
 template 
 . 
 jinja 
  
 - 
  
 name 
 : 
  
 {{ 
  
 NETWORK_NAME 
  
 }} 
 - 
 firewall 
  
 type 
 : 
  
 firewall 
 - 
 template 
 . 
 jinja 
  
 properties 
 : 
  
 network 
 : 
  
 {{ 
  
 NETWORK_NAME 
  
 }} 
  
 name 
 : 
  
 compute 
 - 
 engine 
 - 
 template 
 . 
 jinja 

Layout

The layout is an outline of your deployment and its resources, and shows the resource names and types.

Use the layout to visualize the structure of your deployment, view template properties that were set during the initial deployment, and other information about your configuration before it was expanded.

In your manifest, you can see the layout in the layout property:

  layout 
 : 
  
 | 
  
 resources: 
  
 - name: compute-engine-setup 
  
 resources: 
  
 - name: the-first-vm 
  
 properties: 
  
 machineType: f1-micro 
  
 network: a-new-network 
  
 zone: us-central1-f 
  
 resources: 
  
 - name: the-first-vm 
  
 type: compute.v1.instance 
  
 type: vm-template.jinja 
  
 - name: the-second-vm 
  
 properties: 
  
 machineType: g1-small 
  
 network: a-new-network 
  
 zone: us-central1-f 
  
 resources: 
  
 - name: the-second-vm 
  
 type: compute.v1.instance 
  
 type: vm-template.jinja 
  
 - name: a-new-network 
  
 resources: 
  
 - name: a-new-network 
  
 type: compute.v1.network 
  
 type: network-template.jinja 
  
 - name: a-new-network-firewall 
  
 properties: 
  
 network: a-new-network 
  
 resources: 
  
 - name: a-new-network-firewall 
  
 type: compute.v1.firewall 
  
 type: firewall-template.jinja 
  
 type: compute-engine-template.jinja 
 

Identify a manifest

You can identify a manifest by its unique ID, in the format manifest-TIMESTAMP . For example:

 manifest-1436393348324 

Usually, you can get the manifest ID by getting information about the corresponding deployment, or by listing manifests for a deployment.

gcloud

With the Google Cloud CLI, use the deployments describe sub-command:

 gcloud deployment-manager deployments describe example-deployment 

gcloud returns a response similar to the following:

id: '7428522736135856060'
manifest: https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments/example-deployment/manifests/manifest-1436393348324
name: example-deployment
resources:
NAME    TYPE      ID     STATE   ERRORS
...

API

In the API, make a GET request, providing the deployment name in the request:

 GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments/example-deployment-with-config 

You should receive a response similar to the following:

{
 "id": "5899501332770090517",
 "creationTimestamp": "2015-03-30T15:40:58.809-07:00",
 "name": "example-deployment-with-config",
 "fingerprint": "",
 "manifest": "https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-deployment-with-config/manifests/manifest-1427755258810-2b3498d9-530b-4f8e-b014-0342d3c9c66b",
 "state": "DEPLOYED"
}

View a manifest

You can view a manifest by making a get() request to a Manifest resource or through the Google Cloud console or gcloud .

Console

To view a manifest of a deployment in the Google Cloud console :

  1. Go to the Deployments page in the Google Cloud console.
  2. From the list, click the deployment that you want to view.
  3. In the deployment's details, click Overview.

gcloud

With the Google Cloud CLI, view the full manifest using the manifests describe command. The command lists both the full manifest and the layout:

 gcloud deployment-manager manifests describe manifest-1436393348324 \
    --deployment example-config-with-templates 

gcloud returns a response similar to the following:

  
 config 
 : 
  
 | 
  
 imports 
 : 
  
 [ 
 "vm_template.jinja" 
 ] 
 

resources :

  • name : vm - instance type : vm_template . jinja properties : zone : us - central1 - a project : myproject creationTimestamp : ' 2015 - 03 - 30 T15 : 40 : 58.815 - 07 : 00 ' evaluatedConfig : | resources :
  • name : datadisk - example - config - with - templates properties : sizeGb : 100 type : https : //www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/diskTypes/pd-standard zone : us - central1 - a type : compute . v1 . disk
  • name : vm - example - config - with - templates properties : disks :
    • autoDelete : true boot : true deviceName : boot initializeParams : diskName : disk - example - config - with - templates sourceImage : https : //www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619 type : PERSISTENT
    • autoDelete : true deviceName : datadisk - example - config - with - templates source : $ ( ref . datadisk - example - config - with - templates . selfLink ) type : PERSISTENT machineType : https : //www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro metadata : items :
      • key : startup - script value : | # ! / bin / bash python - m http . server 8080 networkInterfaces :
    • accessConfigs :
      • name : External NAT type : ONE_TO_ONE_NAT network : https : //www.googleapis.com/compute/v1/projects/myproject/global/networks/default zone : us - central1 - a type : compute . v1 . instance id : ' 7174699452487462421 ' layout : | resources :
  • name : vm - instance type : vm_template . jinja properties : project : myproject zone : us - central1 - a resources :
    • name : datadisk - example - config - with - templates type : compute . v1 . disk
    • name : vm - example - config - with - templates type : compute . v1 . instance name : manifest - 1427755258810 - 2 b3498d9 - 530 b - 4 f8e - b014 - 0342 d3c9c66b selfLink : https : //www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-config-with-templates/manifests/manifest-1436393348324

API

In the API, provide the deployment name and the manifest name in a GET request:

 GET https://www.googleapis.com/deploymentmanager/v2beta1/projects/myproject/global/deployments/example-deployment/manifests/manifest-1436393348324 

You should receive a response similar to the following:

 { 
  
 "id" 
 : 
  
 "7174699452487462421" 
 , 
  
 "selfLink" 
 : 
  
 "https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/example-config-with-templates/manifests/manifest-1436393348324" 
 , 
  
 "creationTimestamp" 
 : 
  
 "2015-03-30T15:40:58.815-07:00" 
 , 
  
 "name" 
 : 
  
 "manifest-1427755258810-2b3498d9-530b-4f8e-b014-0342d3c9c66b" 
 , 
  
 "config" 
 : 
  
 "imports: [\"vm_template.jinja\"]\n\nresources:\n- name: vm-instance\n  type: vm_template.jinja\n  properties:\n    zone: us-central1-a\n    project: myproject\n" 
 , 
  
 "evaluatedConfig" 
 : 
  
 "resources:\n- name: datadisk-example-config-with-templates\n  properties:\n    sizeGb: 100\n    type: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/diskTypes/pd-standard\n    zone: us-central1-a\n  type: compute.v1.disk\n- name: vm-example-config-with-templates\n  properties:\n    disks:\n    - autoDelete: true\n      boot: true\n      deviceName: boot\n      initializeParams:\n        diskName: disk-example-config-with-templates\n        sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-7-wheezy-v20140619\n      type: PERSISTENT\n    - autoDelete: true\n      deviceName: datadisk-example-config-with-templates\n      source: $(ref.datadisk-example-config-with-templates.selfLink)\n      type: PERSISTENT\n    machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/machineTypes/f1-micro\n    metadata:\n      items:\n      - key: startup-script\n        value: |\n          #!/bin/bash\n          python -m http.server 8080\n    networkInterfaces:\n    - accessConfigs:\n      - name: External NAT\n        type: ONE_TO_ONE_NAT\n      network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default\n    zone: us-central1-a\n  type: compute.v1.instance\n" 
 , 
  
 "layout" 
 : 
  
 "resources:\n- name: vm-instance\n  properties:\n    project: myproject\n    zone: us-central1-a\n  resources:\n  - name: datadisk-example-config-with-templates\n    type: compute.v1.disk\n  - name: vm-example-config-with-templates\n    type: compute.v1.instance\n  type: vm_template.jinja\n" 
 } 
Design a Mobile Site
View Site in Mobile | Classic
Share by: