Add an App Image to a Data Store That ZEDEDA Cloud Cannot Reach

Introduction

In some deployments, ZEDEDA Cloud cannot reach your storage repository, but your edge nodes can. This is common when the storage sits behind a private FQDN, a private IP, or a firewall that only your edge nodes can traverse. In this situation, the standard upload path fails because uploading copies the app image through ZEDEDA Cloud to the data store, which requires ZEDEDA Cloud to reach the storage. Uplinking avoids this. When you uplink, you register an app image that is already present in your storage repository by supplying its metadata, so ZEDEDA Cloud never contacts the storage and the edge node pulls the image directly. Follow this procedure when you have placed an app image in a data store that only your edge nodes can reach. This workflow is available only through the ZEDEDA CLI (ZCLI).

Prerequisites

  • You have the SysManager or SysAdmin role in your ZEDEDA Cloud enterprise.
  • You have onboarded an edge node to ZEDEDA Cloud.
  • Your edge nodes can reach the storage repository, even though ZEDEDA Cloud cannot.
  • You have installed and configured the ZEDEDA CLI (ZCLI).
  • You have already placed the app image file in your storage repository.
  • You have the app image SHA-256 value and the image size in bytes. If you have a local copy of the file, you can obtain these with sha256sum IMAGE_FILE and stat -c %s IMAGE_FILE.

Create the Data Store

Create the data store using the standard procedure. You do not need any special settings for this scenario. The data store definition only describes where the image lives and how to authenticate, so you can create it even when ZEDEDA Cloud cannot reach the storage.

  1. From the left panel, go to Library > Data Stores.
  2. Click the Add icon at the top right of the page.
  3. Configure the data store identity and details for your storage type. See Create a Data Store for the full set of fields and storage types. 
  4. Click Add.

Create the Image Entry

Create an app image entry in your enterprise that points to the data store. This step registers the image name, type, format, and target data store, but does not transfer any data. Set --type to Application and --image-format to the format of your app image, such as qcow2. The supported formats are raw, qcow, qcow2, vhd, vmdk, ova, vhdx, and container.

  1. Log in to the ZCLI.
  2. Create the image entry.
zcli image create IMAGE_NAME --arch=AMD64_OR_ARM64 --datastore-name=DATASTORE_NAME --type=Application --image-format=IMAGE_FORMAT --title=IMAGE_NAME

For example:

zcli image create my-app-v1 --arch=AMD64 --datastore-name=My-Private-Store --type=Application --image-format=qcow2 --title=my-app-v1

Uplink the Image

Uplink the app image to associate the image entry with the file already present in your data store. You cannot uplink via the GUI. The following steps are for ZCLI. 

Because uplinking sends only the image metadata to ZEDEDA Cloud, this step works even when ZEDEDA Cloud cannot reach the storage. Supply the SHA-256 value and the size in bytes that you gathered in the prerequisites.

  1. Log in to the ZCLI.
  2. Uplink the image.
zcli image uplink IMAGE_NAME --datastore-name=DATASTORE_NAME --image-sha=SHA_256_VALUE --image-size=IMAGE_SIZE_IN_BYTES

For example:

zcli image uplink my-app-v1 --datastore-name=My-Private-Store --image-sha=629595dda5afec054c5d5fad485da3e6068994a7001534a4eaee5170696aa8f4 --image-size=232476160

Verify the Configuration

Confirm that the app image entry is registered and ready.

  1. Show the image details.
zcli image show IMAGE_NAME

For example:

zcli image show my-app-v1
  1. Look for Status: Ready in the output. This confirms that ZEDEDA Cloud has registered the app image and that your edge nodes can pull it directly from the data store.

Next Steps

Was this article helpful?
0 out of 0 found this helpful