mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-09-07 01:26:43 +00:00
115 lines
3.3 KiB
Markdown
115 lines
3.3 KiB
Markdown
---
|
|
layout: "google"
|
|
page_title: "Google: google_compute_image"
|
|
sidebar_current: "docs-google-compute-image"
|
|
description: |-
|
|
Creates a bootable VM image for Google Compute Engine from an existing tarball.
|
|
---
|
|
|
|
# google\_compute\_image
|
|
|
|
Creates a bootable VM image resource for Google Compute Engine from an existing
|
|
tarball. For more information see [the official documentation](https://cloud.google.com/compute/docs/images) and
|
|
[API](https://cloud.google.com/compute/docs/reference/latest/images).
|
|
|
|
|
|
## Example Usage
|
|
|
|
```hcl
|
|
resource "google_compute_image" "bootable-image" {
|
|
name = "my-custom-image"
|
|
|
|
raw_disk {
|
|
source = "https://storage.googleapis.com/my-bucket/my-disk-image-tarball.tar.gz"
|
|
}
|
|
|
|
licenses = [
|
|
"https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx",
|
|
]
|
|
}
|
|
|
|
resource "google_compute_instance" "vm" {
|
|
name = "vm-from-custom-image"
|
|
machine_type = "n1-standard-1"
|
|
zone = "us-east1-c"
|
|
|
|
boot_disk {
|
|
initialize_params {
|
|
image = "${google_compute_image.bootable-image.self_link}"
|
|
}
|
|
}
|
|
|
|
network_interface {
|
|
network = "default"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Argument Reference
|
|
|
|
The following arguments are supported: (Note that one of either source_disk or
|
|
raw_disk is required)
|
|
|
|
* `name` - (Required) A unique name for the resource, required by GCE.
|
|
Changing this forces a new resource to be created.
|
|
|
|
- - -
|
|
|
|
* `description` - (Optional) The description of the image to be created
|
|
|
|
* `family` - (Optional) The name of the image family to which this image belongs.
|
|
|
|
* `labels` - (Optional) A set of key/value label pairs to assign to the image.
|
|
|
|
* `source_disk` - (Optional) The URL of a disk that will be used as the source of the
|
|
image. Changing this forces a new resource to be created.
|
|
|
|
* `project` - (Optional) The ID of the project in which the resource belongs. If it
|
|
is not provided, the provider project is used.
|
|
|
|
* `raw_disk` - (Optional) The raw disk that will be used as the source of the image.
|
|
Changing this forces a new resource to be created. Structure is documented
|
|
below.
|
|
|
|
* `licenses` - (Optional) A list of license URIs to apply to this image. Changing this
|
|
forces a new resource to be created.
|
|
|
|
* `create_timeout` - (Deprecated) Configurable timeout in minutes for creating images. Default is 4 minutes.
|
|
|
|
The `raw_disk` block supports:
|
|
|
|
* `source` - (Required) The full Google Cloud Storage URL where the disk
|
|
image is stored.
|
|
|
|
* `sha1` - (Optional) SHA1 checksum of the source tarball that will be used
|
|
to verify the source before creating the image.
|
|
|
|
* `container_type` - (Optional) The format used to encode and transmit the
|
|
block device. TAR is the only supported type and is the default.
|
|
|
|
## Attributes Reference
|
|
|
|
In addition to the arguments listed above, the following computed attributes are
|
|
exported:
|
|
|
|
* `self_link` - The URI of the created resource.
|
|
|
|
* `label_fingerprint` - The fingerprint of the assigned labels.
|
|
|
|
## Timeouts
|
|
|
|
`google_compute_image` provides the following
|
|
[Timeouts](/docs/configuration/resources.html#timeouts) configuration options:
|
|
|
|
- `create` - Default `4 minutes`
|
|
- `update` - Default `4 minutes`
|
|
- `delete` - Default `4 minutes`
|
|
|
|
## Import
|
|
|
|
VM image can be imported using the `name`, e.g.
|
|
|
|
```
|
|
$ terraform import google_compute_image.web-image my-custom-image
|
|
```
|