Bird
Raised Fist0
GCPcloud~5 mins

Configuration properties in GCP - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Configuration properties let you set values that control how your Google Cloud services behave. They help you customize your cloud resources without changing code.
When you want to set the region for your cloud resources to control where they run.
When you need to specify the project ID to tell gcloud which project to work with.
When you want to set default output formats for easier reading of command results.
When you want to configure authentication settings for your cloud commands.
When you want to switch between different configurations for different projects or environments.
Commands
This command shows the current configuration properties set in your gcloud environment.
Terminal
gcloud config list
Expected OutputExpected
[core] account = user@example.com disable_usage_reporting = true project = example-project Your active configuration is: default
This command sets the active project to 'example-project' so that all future commands use this project by default.
Terminal
gcloud config set project example-project
Expected OutputExpected
Updated property [core/project].
This command sets the default compute region to 'us-east1' so resources will be created there unless specified otherwise.
Terminal
gcloud config set compute/region us-east1
Expected OutputExpected
Updated property [compute/region].
This command creates a new named configuration called 'test-config' to manage different sets of properties separately.
Terminal
gcloud config configurations create test-config
Expected OutputExpected
Created configuration [test-config].
This command switches the active configuration to 'test-config' so you can work with its specific settings.
Terminal
gcloud config configurations activate test-config
Expected OutputExpected
Activated configuration [test-config].
Key Concept

If you remember nothing else from this pattern, remember: configuration properties let you control your cloud environment settings easily without changing code.

Common Mistakes
Not setting the project property before running commands.
Commands may fail or run in the wrong project, causing confusion or errors.
Always set the project property with 'gcloud config set project your-project-id' before running commands.
Forgetting to activate the correct configuration when switching projects or environments.
You might run commands with the wrong settings, affecting unintended resources.
Use 'gcloud config configurations activate config-name' to switch to the right configuration before working.
Summary
Use 'gcloud config set' to set properties like project and region for your cloud commands.
Use 'gcloud config list' to see your current configuration settings.
Create and switch between configurations to manage different environments easily.

Practice

(1/5)
1. What is the purpose of configuration properties in Google Cloud Platform (GCP)?
easy
A. To define settings that control how cloud resources behave
B. To write application code for cloud functions
C. To store user data in databases
D. To monitor network traffic in real-time

Solution

  1. Step 1: Understand configuration properties

    Configuration properties are settings that control the behavior of cloud resources like virtual machines, storage, or services.
  2. Step 2: Differentiate from other cloud tasks

    Writing code, storing data, or monitoring traffic are different tasks not directly related to configuration properties.
  3. Final Answer:

    To define settings that control how cloud resources behave -> Option A
  4. Quick Check:

    Configuration properties = settings control behavior [OK]
Hint: Think of configuration as setting rules for cloud resources [OK]
Common Mistakes:
  • Confusing configuration with coding
  • Mixing configuration with data storage
  • Assuming configuration monitors traffic
2. Which of the following is the correct way to specify a configuration property in a GCP YAML deployment file?
easy
A. config: instanceType = n1-standard-1
B. properties: instanceType: n1-standard-1
C. settings: instanceType: 'n1-standard-1'
D. parameters: instanceType -> n1-standard-1

Solution

  1. Step 1: Identify correct YAML syntax for properties

    In GCP deployment manager, configuration properties are under 'properties:' with key-value pairs using colon and indentation.
  2. Step 2: Check each option's syntax

    properties: instanceType: n1-standard-1 uses 'properties:' and colon syntax correctly. Options B, C, and D use incorrect keys or invalid syntax like '=' or '->'.
  3. Final Answer:

    properties: instanceType: n1-standard-1 -> Option B
  4. Quick Check:

    YAML properties use colon and indentation [OK]
Hint: YAML uses colon and indentation for key-value pairs [OK]
Common Mistakes:
  • Using '=' instead of ':' in YAML
  • Wrong top-level key like 'config' or 'settings'
  • Using symbols like '->' which are invalid in YAML
3. Given this snippet of a GCP deployment YAML:
resources:
- name: my-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-10
What is the machine type configured for the VM?
medium
A. n1-standard-1
B. us-central1-a
C. debian-10
D. PERSISTENT

Solution

  1. Step 1: Locate machineType property

    The machineType is set under properties as 'zones/us-central1-a/machineTypes/n1-standard-1'. The last part after the last slash is the machine type.
  2. Step 2: Extract machine type value

    The machine type is 'n1-standard-1', which defines the VM size and resources.
  3. Final Answer:

    n1-standard-1 -> Option A
  4. Quick Check:

    Machine type is the last part of the path [OK]
Hint: Machine type is the last segment in the machineTypes path [OK]
Common Mistakes:
  • Confusing zone with machine type
  • Picking image name as machine type
  • Selecting disk type as machine type
4. You have this GCP deployment YAML snippet:
resources:
- name: my-storage
  type: storage.v1.bucket
  properties:
    location: us-east1
    storageClass: STANDARD
    versioning:
      enabled: true
    accessControl:
      - entity: allUsers
        role: READER
What is the error in this configuration?
medium
A. location must be a zone, not a region
B. versioning.enabled must be false for public buckets
C. accessControl should be acl
D. storageClass must be lowercase

Solution

  1. Step 1: Check property names for storage bucket

    The correct property for access control in GCP storage buckets is 'acl', not 'accessControl'.
  2. Step 2: Validate other properties

    Versioning can be true or false regardless of public access. StorageClass is case-insensitive but usually uppercase is accepted. Location is a region, which is correct.
  3. Final Answer:

    accessControl should be acl -> Option C
  4. Quick Check:

    Property names must match GCP specs exactly [OK]
Hint: Check exact property names in GCP docs [OK]
Common Mistakes:
  • Using incorrect property name 'accessControl' instead of 'acl'
  • Assuming versioning must be false for public buckets
  • Confusing region and zone names
5. You want to configure a GCP Compute Engine instance with a startup script and custom metadata. Which configuration properties should you use in your deployment YAML to achieve this?
hard
A. startupScript: | #!/bin/bash echo Hello World
B. scripts: startup: '#!/bin/bash\necho Hello World'
C. customMetadata: startup-script: '#!/bin/bash\necho Hello World'
D. metadata: items: - key: startup-script value: |- #!/bin/bash echo Hello World

Solution

  1. Step 1: Identify correct metadata property for startup scripts

    GCP Compute Engine uses 'metadata' with 'items' list containing key-value pairs for custom metadata like 'startup-script'.
  2. Step 2: Verify syntax for multiline script

    Using '|-' in YAML allows multiline script values correctly under 'value'. Other options use incorrect property names or formats.
  3. Final Answer:

    metadata: items: - key: startup-script value: |- #!/bin/bash echo Hello World -> Option D
  4. Quick Check:

    Use metadata.items with key startup-script [OK]
Hint: Startup scripts go under metadata.items with key 'startup-script' [OK]
Common Mistakes:
  • Using wrong property names like startupScript or scripts
  • Not formatting multiline scripts properly in YAML
  • Placing script outside metadata block