---
title: "Uploading your own image"
description: "Learn the steps to upload your own images to your project."
url: https://docs.us.ovhcloud.com/en/public-cloud/compute/upload-own-image
lang: en
---
> For AI agents: the complete documentation index is available at https://docs.us.ovhcloud.com/en/llms.txt, the full documentation bundle is available at https://docs.us.ovhcloud.com/en/llms-full.txt.

# Uploading your own image

**Learn the steps to upload your own images to your project.**

OVHcloud offers ready-to-go images for Public Cloud instances. However, we also enable customers to use their own images.

**Note:**

The new version will not be reflected in OVHcloud Control Panel, OVHcloud API, Horizon, or OpenStack API when you upgrade the operating system instead of reinstalling it.

**Warning:**

**NOTE:** At this time, this feature is not supported on Local Zones instances.

 

## Requirements

- A [Public Cloud instance](https://docs.us.ovhcloud.com/en/public-cloud/compute/getting-started.md#step-4-create-the-instance) in your OVHcloud account
- Your own RAW/QCOW2 (recommended formats) image
- An [OpenStack user](https://docs.us.ovhcloud.com/en/public-cloud/cross-functional/create-and-delete-a-user.md)
- An [OpenStack CLI ready environment](https://docs.us.ovhcloud.com/en/public-cloud/cross-functional/compute-prepare-openstack-api-environment.md) (if using CLI)

 

## Instructions

### Before starting

It is advisable to either use cloud-ready images already provided by the distribution vendor or build your own image using solutions such as [Packer OpenStack builder](https://docs.us.ovhcloud.com/en/public-cloud/compute/create-image-from-existing-image-with-packer.md).

Cloud-ready images can be found here:

- [https://cloud.centos.org/centos/](https://cloud.centos.org/centos/)
- [https://cloud.debian.org/images/cloud/](https://cloud.debian.org/images/cloud/)
- [https://cloud-images.ubuntu.com/releases/](https://cloud-images.ubuntu.com/releases/)
- [https://alt.fedoraproject.org/cloud/](https://alt.fedoraproject.org/cloud/)

Other operating systems tend to offer ISO images which are also applicable when [building images with Packer](https://www.packer.io/docs/builders) such as QEMU and VirtualBox builders.

We recommend ensuring the following is installed on your images for them to be cloud-ready:

- _QEMU Guest Agent_: this will provide better snapshot experience as it will allow the host to communicate to the instance for live snapshots. Not all operating systems are compatible with this package but most of them are.
- _cloud-init_: this will allow you to bootstrap your instance on the first boot, such as adding SSH keys and configuring network. Most operating systems are compatible with this.

Finally we recommend images to be either in RAW or QCOW2 format. As best practice, keep the size of the image as small as possible so that you are billed less per month and spawns of your instances are quicker.

 

### Uploading your image

With OpenStack there are two ways of uploading your own image. You can either upload it via the OpenStack command line interface or with the [Horizon web interface](https://horizon.cloud.ovh.us/auth/login/).

 

#### Using CLI

Once your image is ready to upload, you can use the following steps to upload it using the OpenStack CLI. From the [OVHcloud Control Panel](https://manager.us.ovhcloud.com/):

1. Select `Public Cloud` from the top navigation bar.
2. On the left, under **Project Management**, click `Users & Roles`.
3. To the right of your OpenStack user, click the _more options_ `...` button and select `Download OpenStack's RC file`.
4. Select the region you want to upload it to and click `Download`.

Source the openrc file:

```
source openrc.sh
```

Once the file is sourced, you will be asked to enter the password for the OpenStack user. Enter your password.

Now you can upload your image. This example command will do the following:

- Disk format is "RAW"
- Upload an image from the current path called "debian9.raw"
- Call the image "Debian 9 - My Image"
- Set the image to private state
- Set properties which are recommended to set. Set optimal configuration which allow features like _live-snapshot_ and _cloud-init_ to work (requires the username to be used)

```
openstack image create --disk-format raw --container-format bare --file debian9.raw "Debian 9 - My Image" --private --property distribution=debian --property hw_disk_bus=scsi --property hw_scsi_model=virtio-scsi --property hw_qemu_guest_agent=yes --property image_original_user=debian
```

 

#### Using Horizon

Once your image is ready to upload, you can use the following steps to upload it using the OpenStack [Horizon interface](https://horizon.cloud.ovh.us/auth/login/).

At the top left, select the `region` to which you want to upload your image.

In the left-side menu, click `Compute` and then `Images`, and click on `+ Create Image`.

Enter the details of your image and select the file from your computer.

Enter the instance metadata (any custom ones you may have you can also add) and then click `Create Image`.

 

## Go further

Browse all the [Compute guides](https://docs.us.ovhcloud.com/en/public-cloud/compute/landing-page-compute.md).

Browse the rest of the [OVHcloud US documentation](https://docs.us.ovhcloud.com/en/index.md) for guides on our other products and services.

Learn more about [Public Cloud Compute](https://us.ovhcloud.com/public-cloud/compute/) on the OVHcloud US website.
