Bird
Raised Fist0
GCPcloud~30 mins

Deployment Manager as native IaC in GCP - Mini Project: Build & Apply

Choose your learning style10 modes available
Deployment Manager as native IaC
📖 Scenario: You are working as a cloud engineer for a company that wants to automate the creation of a simple Google Cloud Storage bucket using Deployment Manager. This will help the team avoid manual steps and keep infrastructure consistent.
🎯 Goal: Build a Deployment Manager configuration that defines a Google Cloud Storage bucket as infrastructure as code (IaC). You will create the initial configuration data, add a property for the bucket name, define the resource, and complete the configuration for deployment.
📋 What You'll Learn
Create a dictionary called resources to hold the deployment resources.
Add a variable called bucket_name with the exact value my-sample-bucket-123.
Define a resource dictionary for a storage bucket using the type storage.v1.bucket and the name my-bucket.
Complete the configuration by adding the name and properties keys correctly inside the resource.
💡 Why This Matters
🌍 Real World
Automating cloud infrastructure creation helps teams deploy resources quickly and consistently without manual errors.
💼 Career
Cloud engineers and DevOps professionals use Deployment Manager or similar IaC tools daily to manage cloud resources efficiently.
Progress0 / 4 steps
1
Create the initial resources dictionary
Create a variable called resources and set it to an empty list to hold deployment resources.
GCP
Hint

Think of resources as a list where you will add your cloud components.

2
Add the bucket name variable
Add a variable called bucket_name and set it to the string "my-sample-bucket-123".
GCP
Hint

This variable will hold the exact name of the storage bucket.

3
Define the storage bucket resource
Add a dictionary to the resources list with keys: name set to "my-bucket", type set to "storage.v1.bucket", and properties as an empty dictionary.
GCP
Hint

This dictionary describes the bucket resource for Deployment Manager.

4
Complete the bucket properties with the bucket name
Inside the properties dictionary of the first resource in resources, add the key name with the value from the variable bucket_name.
GCP
Hint

This sets the actual bucket name in the deployment configuration.

Practice

(1/5)
1. What is the main purpose of Google Cloud Deployment Manager?
easy
A. To define and manage cloud resources using code
B. To manually create resources through the console
C. To monitor cloud resource usage in real-time
D. To provide a graphical interface for cloud billing

Solution

  1. Step 1: Understand Deployment Manager's role

    Deployment Manager lets you write code to define cloud resources instead of manual setup.
  2. Step 2: Compare options

    Only To define and manage cloud resources using code describes defining and managing resources using code, which matches Deployment Manager's purpose.
  3. Final Answer:

    To define and manage cloud resources using code -> Option A
  4. Quick Check:

    Deployment Manager = Infrastructure as Code [OK]
Hint: Deployment Manager = write code for cloud setup [OK]
Common Mistakes:
  • Confusing Deployment Manager with monitoring tools
  • Thinking it is a manual console tool
  • Mixing it with billing or cost tools
2. Which of the following is the correct way to start a Deployment Manager YAML configuration file?
easy
A. services:
B. resources:
C. instances:
D. deployments:

Solution

  1. Step 1: Recall YAML structure for Deployment Manager

    The root key to list cloud resources is resources:.
  2. Step 2: Check other options

    Options like deployments:, instances:, and services: are not valid root keys in Deployment Manager YAML.
  3. Final Answer:

    resources: -> Option B
  4. Quick Check:

    YAML starts with resources: [OK]
Hint: Deployment Manager YAML always starts with resources: [OK]
Common Mistakes:
  • Using wrong root keys like deployments or instances
  • Confusing resource types with YAML structure
  • Starting with service names instead of resources
3. Given this Deployment Manager snippet:
resources:
- name: my-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: zones/us-central1-a/machineTypes/n1-standard-1

What resource is being created?
medium
A. A network firewall rule
B. A storage bucket in us-central1-a
C. A SQL database instance
D. A virtual machine instance in zone us-central1-a

Solution

  1. Step 1: Identify resource type

    The type compute.v1.instance means a virtual machine (VM) instance.
  2. Step 2: Check properties

    The zone and machineType confirm it's a VM in zone us-central1-a with a standard machine type.
  3. Final Answer:

    A virtual machine instance in zone us-central1-a -> Option D
  4. Quick Check:

    compute.v1.instance = VM instance [OK]
Hint: compute.v1.instance means VM instance [OK]
Common Mistakes:
  • Confusing instance with storage or database
  • Ignoring the type field
  • Assuming default zone without checking properties
4. You wrote this Deployment Manager YAML:
resources:
- name: my-vm
  type: compute.v1.instance
  properties:
    zone: us-central1-a
    machineType: n1-standard-1

Why does deployment fail?
medium
A. name property cannot be my-vm
B. zone property is invalid
C. machineType property is missing zone prefix
D. type compute.v1.instance is deprecated

Solution

  1. Step 1: Check machineType format

    machineType must include full path with zone prefix like zones/us-central1-a/machineTypes/n1-standard-1.
  2. Step 2: Validate other fields

    zone is valid, name is allowed, and type is current. Only machineType format is wrong.
  3. Final Answer:

    machineType property is missing zone prefix -> Option C
  4. Quick Check:

    machineType needs full path [OK]
Hint: machineType needs full zone path like zones/zone/machineTypes/type [OK]
Common Mistakes:
  • Using short machineType without zone prefix
  • Changing name to fix error
  • Assuming type is deprecated
5. You want to create two VM instances in Deployment Manager using one YAML file. Which approach is best?
hard
A. List two separate resource entries under resources with different names
B. Create one resource with two names separated by commas
C. Use a loop inside YAML to repeat the resource
D. Write two separate YAML files and deploy them separately

Solution

  1. Step 1: Understand YAML resource listing

    Deployment Manager YAML supports multiple resources by listing each with a unique name under resources:.
  2. Step 2: Evaluate options

    List two separate resource entries under resources with different names correctly lists two resources separately. Create one resource with two names separated by commas is invalid syntax. Use a loop inside YAML to repeat the resource is not supported natively in YAML. Write two separate YAML files and deploy them separately works but is less efficient and not best practice.
  3. Final Answer:

    List two separate resource entries under resources with different names -> Option A
  4. Quick Check:

    Multiple resources = multiple entries [OK]
Hint: Multiple resources = multiple entries under resources: [OK]
Common Mistakes:
  • Trying to name one resource with multiple names
  • Expecting loops inside YAML
  • Splitting into multiple files unnecessarily
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard