Syntax

A google_project is used to test a Google Project resource

Examples

describe google_project(project: 'chef-gcp-inspec') do
  it { should exist }
  its('project_id') { should cmp 'chef-gcp-inspec' }
  its('lifecycle_state') { should cmp 'ACTIVE' }
end

Test that a GCP project has the expected project number

describe google_project(project: 'chef-inspec-gcp') do
  its('project_number') { should eq 12345678 }
end

Test that a GCP project has the expected lifecycle state e.g. “ACTIVE”

describe google_project(project: 'chef-inspec-gcp') do
  its('lifecycle_state') { should eq "ACTIVE" }
end

Validate that a GCP project has some arbitrary label with expected content (for example defined by regexp )

describe google_project(project: 'chef-inspec-gcp').label_value_by_key('season') do
  it {should match '^(winter|spring|summer|autumn)$' }
end

Properties

Properties that can be accessed from the google_project resource:

  • number: Number uniquely identifying the project.

  • lifecycle_state: The Project lifecycle state. Possible values:

    • LIFECYCLESTATEUNSPECIFIED
    • ACTIVE
    • DELETE_REQUESTED
    • DELETEINPROGRESS
  • name: The user-assigned display name of the Project. It must be 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point.

  • create_time: Time of creation

  • labels: The labels associated with this Project. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: [a-z]([-a-z0-9]*[a-z0-9])?. Label values must be between 0 and 63 characters long and must conform to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?. No more than 256 labels can be associated with a given resource. Clients should store labels in a representation such as JSON that does not depend on specific characters being disallowed

  • parent: A parent organization

    • type: Must be organization.
    • id: Id of the organization
  • project_id: The unique, user-assigned ID of the Project. It must be 6 to 30 lowercase letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited.

GCP Permissions

Ensure the Cloud Resource Manager API is enabled for the current project.