NAME

gcloud alpha compute images import - import an image into Compute Engine

SYNOPSIS

gcloud alpha compute images import IMAGE_NAME (--aws-access-key-id=AWS_ACCESS_KEY_ID --aws-region=AWS_REGION --aws-secret-access-key=AWS_SECRET_ACCESS_KEY --aws-session-token=AWS_SESSION_TOKEN (--aws-source-ami-file-path=AWS_SOURCE_AMI_FILE_PATH | --aws-ami-export-location=AWS_AMI_EXPORT_LOCATION --aws-ami-id=AWS_AMI_ID) | --source-file=SOURCE_FILE | --source-image=SOURCE_IMAGE) [--no-address] [--async] [--compute-service-account=COMPUTE_SERVICE_ACCOUNT] [--description=DESCRIPTION] [--family=FAMILY] [--no-guest-environment] [--guest-os-features=[GUEST_OS_FEATURE,...]] [--log-location=LOG_LOCATION] [--network=NETWORK] [--storage-location=STORAGE_LOCATION] [--subnet=SUBNET] [--timeout=TIMEOUT; default="2h"] [--zone=ZONE] [--data-disk | --byol --os=OS] [GCLOUD_WIDE_FLAG ...]

DESCRIPTION

(ALPHA) gcloud alpha compute images import imports Virtual Disk images, such as VMWare VMDK files and VHD files, into Compute Engine.

Importing images involves four steps:

To override the detected OS, specify the --os flag. You can omit the translation step using the --data-disk flag.

If you exported your disk from Compute Engine then you don't need to re-import it. Instead, use gcloud alpha compute images create to create more images from the disk.

Files stored on Cloud Storage and images in Compute Engine incur charges. See https://cloud.google.com/compute/docs/images/importing-virtual-disks#resource_cleanup.

EXAMPLES

To import a centos-7 VMDK file, run:

$ gcloud alpha compute images import myimage-name --os=centos-7 \ --source-file=mysourcefile

To import a data disk without operating system, run:

$ gcloud alpha compute images import myimage-name --data-disk \ --source-file=mysourcefile

POSITIONAL ARGUMENTS

IMAGE_NAME

Name of the disk image to create.

REQUIRED FLAGS

Exactly one of these must be specified:
Image import from AWS.
--aws-access-key-id=AWS_ACCESS_KEY_ID

Access key ID for a temporary AWS credential. This ID must be generated using the AWS Security Token Service.

This flag argument must be specified if any of the other arguments in this group are specified.

--aws-region=AWS_REGION

AWS region of the image that you want to import.

This flag argument must be specified if any of the other arguments in this group are specified.

--aws-secret-access-key=AWS_SECRET_ACCESS_KEY

Secret access key for a temporary AWS credential. This key must be generated using the AWS Security Token Service.

This flag argument must be specified if any of the other arguments in this group are specified.

--aws-session-token=AWS_SESSION_TOKEN

Session token for a temporary AWS credential. This session token must be generated using the AWS Security Token Service.

This flag argument must be specified if any of the other arguments in this group are specified.

Specify whether to import from an AMI or disk image.

Exactly one of these must be specified:

If importing a disk image, specify the following:
--aws-source-ami-file-path=AWS_SOURCE_AMI_FILE_PATH

S3 resource path of the exported image file that you want to import.

If importing an AMI, specify the following two flags:
--aws-ami-export-location=AWS_AMI_EXPORT_LOCATION

An AWS S3 bucket location where the converted image file can be temporarily exported to before the import to Cloud Storage.

This flag argument must be specified if any of the other arguments in this group are specified.

--aws-ami-id=AWS_AMI_ID

AWS AMI ID of the image to import.

This flag argument must be specified if any of the other arguments in this group are specified.

Image import from local file, Cloud Storage or Compute Engine image.

At most one of these can be specified:

--source-file=SOURCE_FILE

A local file, or the Cloud Storage URI of the virtual disk file to import. For example: gs://my-bucket/my-image.vmdk or ./my-local-image.vmdk. For more information about Cloud Storage URIs, see https://cloud.google.com/storage/docs/request-endpoints#json-api.

--source-image=SOURCE_IMAGE

An existing Compute Engine image from which to import.

OPTIONAL FLAGS

--no-address

Temporary VMs are created in your project during image import. Set this flag so that these temporary VMs are not assigned external IP addresses.

Note: The image import process requires package managers to be installed on the operating system for the virtual disk. These package managers might need to make requests to package repositories that are outside Google Cloud. To allow access for these updates, you need to configure Cloud NAT and Private Google Access. For more information, see https://cloud.google.com/compute/docs/import/importing-virtual-disks#no-external-ip.

--async

Return immediately, without waiting for the operation in progress to complete.

--compute-service-account=COMPUTE_SERVICE_ACCOUNT

A temporary virtual machine instance is created in your project during image import. Image import tooling on this temporary instance must be authenticated.

A Compute Engine service account is an identity attached to an instance. Its access tokens can be accessed through the instance metadata server and can be used to authenticate image import tooling on the instance.

To set this option, specify the email address corresponding to the required Compute Engine service account. If not provided, the image import on the temporary instance uses the project's default Compute Engine service account.

At minimum, the specified Compute Engine service account needs to have the following roles assigned:

roles/compute.storageAdmin

roles/storage.objectViewer

--description=DESCRIPTION

Description to set for the imported image.

--family=FAMILY

Family to set for the imported image.

--guest-environment

Installs the guest environment on the image. See https://cloud.google.com/compute/docs/images/guest-environment. Enabled by default, use --no-guest-environment to disable.

--guest-os-features=[GUEST_OS_FEATURE,...]

Enables one or more features for VM instances that use the image for their boot disks. See the descriptions of supported features at: https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features. GUEST_OS_FEATURE must be (currently only one value is supported): UEFI_COMPATIBLE.

--log-location=LOG_LOCATION

Directory in Cloud Storage to hold build logs. If not set, gs://<project num>.cloudbuild-logs.googleusercontent.com/ is created and used.

--network=NETWORK

Name of the network in your project to use for the image import. When you import an image, the import tool creates and uses temporary VMs in your project for the import process. Use this flag to specify the network to use for these temporary VMs.

--storage-location=STORAGE_LOCATION

Specifies a Cloud Storage location, either regional or multi-regional, where image content is to be stored. If not specified, the multi-region location closest to the source is chosen automatically.

--subnet=SUBNET

Name of the subnetwork in your project to use for the image import. When you import an image, the import tool creates and uses temporary VMs in your project for the import process. Use this flag to specify the subnetwork to use for these temporary VMs.

If the network resource is in legacy mode, do not provide this property.

If the network is in auto subnet mode, specifying the subnetwork is optional.

If the network is in custom subnet mode, then this field must be specified.

--timeout=TIMEOUT; default="2h"

Maximum time an import can last before it fails as "TIMEOUT". For example, if you specify 2h, the process fails after 2 hours. See $ gcloud topic datetimes for information about duration formats.

This timeout option has a maximum value of 24 hours.

If you are importing a large image that takes longer than 24 hours to import, either use the RAW disk format to reduce the time needed for converting the image, or split the data into several smaller images.

--zone=ZONE

Zone to use when importing the image. When you import an image, the import tool creates and uses temporary VMs in your project for the import process. Use this flag to specify the zone to use for these temporary VMs. Overrides the default compute/zone property value for this command invocation.

At most one of these can be specified:
--data-disk

Specifies that the disk has no bootable OS installed on it. Imports the disk without making it bootable or installing Google tools on it.

--byol

Specifies that you want to import an image with an existing license. Importing an image with an existing license is known as bring your own license (BYOL).

--byol can be specified in any of the following ways:

+ `--byol --os=rhel-8`: imports a RHEL 8 image with an existing license. + `--os=rhel-8-byol`: imports a RHEL 8 image with an existing license. + `--byol`: detects the OS contained on the disk, and imports the image with an existing license.

For more information about BYOL, see: https://cloud.google.com/compute/docs/nodes/bringing-your-own-licenses

--os=OS

Specifies the OS of the disk image being imported. OS must be one of: centos-7, debian-10, debian-11, debian-8, debian-9, opensuse-15, rhel-6, rhel-6-byol, rhel-7, rhel-7-byol, rhel-8, rhel-8-byol, rhel-9, rhel-9-byol, rocky-8, sles-12, sles-12-byol, sles-15, sles-15-byol, sles-sap-12, sles-sap-12-byol, sles-sap-15, sles-sap-15-byol, ubuntu-1404, ubuntu-1604, ubuntu-1804, ubuntu-2004, ubuntu-2204, windows-10-x64-byol, windows-10-x86-byol, windows-11-x64-byol, windows-2008r2, windows-2008r2-byol, windows-2012, windows-2012-byol, windows-2012r2, windows-2012r2-byol, windows-2016, windows-2016-byol, windows-2019, windows-2019-byol, windows-2022, windows-2022-byol, windows-7-x64-byol, windows-7-x86-byol, windows-8-x64-byol, windows-8-x86-byol.

GCLOUD WIDE FLAGS

These flags are available to all commands: --access-token-file, --account, --billing-project, --configuration, --flags-file, --flatten, --format, --help, --impersonate-service-account, --log-http, --project, --quiet, --trace-token, --user-output-enabled, --verbosity.

Run $ gcloud help for details.

NOTES

This command is currently in alpha and might change without notice. If this command fails with API permission errors despite specifying the correct project, you might be trying to access an API with an invitation-only early access allowlist. These variants are also available:

$ gcloud compute images import

$ gcloud beta compute images import