delowan.googlecloud.gcp_compute_reservation (1.0.2) — module

Creates a GCP Reservation

Authors: Google Inc. (@googlecloudplatform)

preview | supported by community

Install collection

Install with ansible-galaxy collection install delowan.googlecloud:==1.0.2


Add to requirements.yml

  collections:
    - name: delowan.googlecloud
      version: 1.0.2

Description

Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running.

Reservations apply only to Compute Engine, Cloud Dataproc, and Google Kubernetes Engine VM usage.Reservations do not apply to `f1-micro` or `g1-small` machine types, preemptible VMs, sole tenant nodes, or other services not listed above like Cloud SQL and Dataflow.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: create a reservation
  google.cloud.gcp_compute_reservation:
    name: test_object
    zone: us-central1-a
    specific_reservation:
      count: 1
      instance_properties:
        min_cpu_platform: Intel Cascade Lake
        machine_type: n2-standard-2
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

Inputs

    
name:
    description:
    - Name of the resource. Provided by the client when the resource is created. The name
      must be 1-63 characters long, and comply with RFC1035. Specifically, the name must
      be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
      which means the first character must be a lowercase letter, and all following characters
      must be a dash, lowercase letter, or digit, except the last character, which cannot
      be a dash.
    required: true
    type: str

zone:
    description:
    - The zone where the reservation is made.
    required: true
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description:
    - Whether the given object should exist in GCP
    type: str

scopes:
    description:
    - Array of scopes to be used
    elements: str
    type: list

project:
    description:
    - The Google Cloud Platform project to use.
    type: str

env_type:
    description:
    - Specifies which Ansible environment you're running this module within.
    - This should not be set unless you know what you're doing.
    - This only alters the User Agent string for any API requests.
    type: str

auth_kind:
    choices:
    - application
    - machineaccount
    - serviceaccount
    description:
    - The type of credential used.
    required: true
    type: str

description:
    description:
    - An optional description of this resource.
    required: false
    type: str

service_account_file:
    description:
    - The path of a Service Account JSON file if serviceaccount is selected as type.
    type: path

specific_reservation:
    description:
    - Reservation for instances with specific machine shapes.
    required: true
    suboptions:
      count:
        description:
        - The number of resources that are allocated.
        required: true
        type: int
      instance_properties:
        description:
        - The instance properties for the reservation.
        required: true
        suboptions:
          guest_accelerators:
            description:
            - Guest accelerator type and count.
            elements: dict
            required: false
            suboptions:
              accelerator_count:
                description:
                - The number of the guest accelerator cards exposed to this instance.
                required: true
                type: int
              accelerator_type:
                description:
                - 'The full or partial URL of the accelerator type to attach to this instance.
                  For example: `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100`
                  If you are creating an instance template, specify only the accelerator
                  name.'
                required: true
                type: str
            type: list
          local_ssds:
            description:
            - The amount of local ssd to reserve with each instance. This reserves disks
              of type `local-ssd`.
            elements: dict
            required: false
            suboptions:
              disk_size_gb:
                description:
                - The size of the disk in base-2 GB.
                required: true
                type: int
              interface:
                default: SCSI
                description:
                - The disk interface to use for attaching this disk.
                - 'Some valid choices include: "SCSI", "NVME"'
                required: false
                type: str
            type: list
          machine_type:
            description:
            - The name of the machine type to reserve.
            required: true
            type: str
          min_cpu_platform:
            description:
            - The minimum CPU platform for the reservation. For example, `"Intel Skylake"`.
              See U(https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones)
              for information on available CPU platforms.
            required: false
            type: str
        type: dict
    type: dict

service_account_email:
    description:
    - An optional service account email address if machineaccount is selected and the
      user does not wish to use the default email.
    type: str

service_account_contents:
    description:
    - The contents of a Service Account JSON file, either in a dictionary or as a JSON
      string that represents it.
    type: jsonarg

specific_reservation_required:
    default: 'false'
    description:
    - When set to true, only VMs that target this reservation by name can consume this
      reservation. Otherwise, it can be consumed by VMs with affinity for any reservation.
      Defaults to false.
    required: false
    type: bool

Outputs

commitment:
  description:
  - Full or partial URL to a parent commitment. This field displays for reservations
    that are tied to a commitment.
  returned: success
  type: str
creationTimestamp:
  description:
  - Creation timestamp in RFC3339 text format.
  returned: success
  type: str
description:
  description:
  - An optional description of this resource.
  returned: success
  type: str
id:
  description:
  - The unique identifier for the resource.
  returned: success
  type: int
name:
  description:
  - Name of the resource. Provided by the client when the resource is created. The
    name must be 1-63 characters long, and comply with RFC1035. Specifically, the
    name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
    which means the first character must be a lowercase letter, and all following
    characters must be a dash, lowercase letter, or digit, except the last character,
    which cannot be a dash.
  returned: success
  type: str
specificReservation:
  contains:
    count:
      description:
      - The number of resources that are allocated.
      returned: success
      type: int
    inUseCount:
      description:
      - How many instances are in use.
      returned: success
      type: int
    instanceProperties:
      contains:
        guestAccelerators:
          contains:
            acceleratorCount:
              description:
              - The number of the guest accelerator cards exposed to this instance.
              returned: success
              type: int
            acceleratorType:
              description:
              - 'The full or partial URL of the accelerator type to attach to this
                instance. For example: `projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100`
                If you are creating an instance template, specify only the accelerator
                name.'
              returned: success
              type: str
          description:
          - Guest accelerator type and count.
          returned: success
          type: complex
        localSsds:
          contains:
            diskSizeGb:
              description:
              - The size of the disk in base-2 GB.
              returned: success
              type: int
            interface:
              description:
              - The disk interface to use for attaching this disk.
              returned: success
              type: str
          description:
          - The amount of local ssd to reserve with each instance. This reserves disks
            of type `local-ssd`.
          returned: success
          type: complex
        machineType:
          description:
          - The name of the machine type to reserve.
          returned: success
          type: str
        minCpuPlatform:
          description:
          - The minimum CPU platform for the reservation. For example, `"Intel Skylake"`.
            See U(https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones)
            for information on available CPU platforms.
          returned: success
          type: str
      description:
      - The instance properties for the reservation.
      returned: success
      type: complex
  description:
  - Reservation for instances with specific machine shapes.
  returned: success
  type: complex
specificReservationRequired:
  description:
  - When set to true, only VMs that target this reservation by name can consume this
    reservation. Otherwise, it can be consumed by VMs with affinity for any reservation.
    Defaults to false.
  returned: success
  type: bool
status:
  description:
  - The status of the reservation.
  returned: success
  type: str
zone:
  description:
  - The zone where the reservation is made.
  returned: success
  type: str