0
0
GCPcloud~7 mins

Deployment Manager as native IaC in GCP - Commands & Configuration

Choose your learning style9 modes available
Introduction
When you want to create and manage Google Cloud resources automatically, Deployment Manager helps you write a file that describes what you want. It then builds and updates those resources for you, so you don't have to click around manually.
When you want to create a virtual machine and a network together in Google Cloud without clicking in the console.
When you need to update your cloud resources safely and keep track of changes over time.
When you want to share your cloud setup with teammates as a simple file.
When you want to recreate the same cloud environment multiple times easily.
When you want to avoid mistakes from manual setup by automating resource creation.
Config File - vm-deployment.yaml
vm-deployment.yaml
resources:
- name: example-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1
    disks:
    - deviceName: boot
      type: PERSISTENT
      boot: true
      autoDelete: true
      initializeParams:
        sourceImage: projects/debian-cloud/global/images/family/debian-11
    networkInterfaces:
    - network: global/networks/default
      accessConfigs:
      - name: External NAT
        type: ONE_TO_ONE_NAT

This file tells Deployment Manager to create one virtual machine named example-vm.

The type specifies a Compute Engine instance.

The properties section sets the zone, machine type, disk image, and network settings.

This file is complete and can be used to deploy a VM in Google Cloud.

Commands
This command creates a deployment named 'example-deployment' using the configuration file. It tells Google Cloud to build the VM as described.
Terminal
gcloud deployment-manager deployments create example-deployment --config vm-deployment.yaml
Expected OutputExpected
Create operation operation-1234567890abcdef started... Waiting for operation to complete... Create operation operation-1234567890abcdef completed successfully.
--config - Specifies the YAML file that describes the resources to create.
This command shows details about the deployment, including the resources created and their status.
Terminal
gcloud deployment-manager deployments describe example-deployment
Expected OutputExpected
name: example-deployment id: 1234567890123456789 operation: status: DONE operationType: insert targetLink: https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/example-vm resources: - name: example-vm type: compute.v1.instance state: COMPLETED
This command lists the VM instances filtered by the name 'example-vm' to verify the VM is running.
Terminal
gcloud compute instances list --filter="name=example-vm"
Expected OutputExpected
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS example-vm us-central1-a n1-standard-1 10.128.0.2 34.68.123.45 RUNNING
--filter - Filters the list to show only the VM with the specified name.
This command deletes the deployment and all resources it created, cleaning up the VM and related resources.
Terminal
gcloud deployment-manager deployments delete example-deployment
Expected OutputExpected
Delete operation operation-abcdef1234567890 started... Waiting for operation to complete... Delete operation operation-abcdef1234567890 completed successfully.
Key Concept

If you remember nothing else from this pattern, remember: Deployment Manager lets you describe your cloud resources in a file and then creates or updates them automatically.

Common Mistakes
Using incorrect indentation or syntax in the YAML file.
YAML is sensitive to spaces and structure; wrong indentation causes deployment errors.
Always use two spaces per indentation level and validate YAML syntax before deploying.
Not specifying the full machine type path in the properties.
Deployment Manager requires the full path like 'zones/us-central1-a/machineTypes/n1-standard-1' to find the machine type.
Always include the zone and full machine type path exactly as required.
Trying to deploy without enabling the Deployment Manager API in the Google Cloud project.
The API must be enabled to use Deployment Manager; otherwise, commands fail.
Enable the Deployment Manager API in the Google Cloud Console before deploying.
Summary
Write a YAML file describing the cloud resources you want to create.
Use 'gcloud deployment-manager deployments create' with the config file to deploy resources.
Check deployment status and resource details with 'gcloud deployment-manager deployments describe'.
Verify resources like VMs with specific gcloud commands such as 'gcloud compute instances list'.
Clean up resources by deleting the deployment with 'gcloud deployment-manager deployments delete'.