WilliamLam.com

  • About
    • About
    • Privacy
  • VMware Cloud Foundation
  • VKS
  • Homelab
    • Resources
    • Nested Virtualization
  • VMware Nostalgia
  • Apple
You are here: Home / Automation / Quick Tip - Dynamic OVF input properties using DeploymentOptions

Quick Tip - Dynamic OVF input properties using DeploymentOptions

07.23.2021 by William Lam // Leave a Comment

I first talked about OVF DeploymentOptions back in 2013, which enables an OVF/OVA author to define a set of deployment profiles (e.g. small, medium, large) which then automatically translate to a pre-defined set of compute, network and storage configurations when deploying an OVF/OVA. There are a number VMware Appliances that takes advantage of this OVF capability, the most well known is the vCenter Server Appliance (VCSA) when it prompts you to select the size of the VCSA that you wish to deploy.


Now although the primary driver for DeploymentOptions is for having out of the box resource configurations when deploying an OVF/OVA, it can also be used to control which OVF properties are shown to end users for input based on the selected deployment option.

I recently had a need for this capability and it was only after taking another look at the OVF specification, did I realize this was possible through the use of DeploymentOptions. Below is a quick example on how you can control specific OVF properties. Imagine, we have three deployment options: Development, Stage and Production which maps to the following DeploymentOption IDs: dev, stage and prod

To control whether a specific OVF property is shown for a given deployment option, simply append the following to the Property tag:

ovf:configuration="Id"

Here is an example snippet of various OVF properties which are controlled by specific deployment options:

<Category>Development Settings</Category>
  <Property ovf:key="guestinfo.knative_host" ovf:type="string" ovf:userConfigurable="true" ovf:value="" ovf:configuration="dev">
      <Label>Dev Configuration 1</Label>
      <Description>Dev Configuration 1</Description>
  </Property>
  <Property ovf:key="guestinfo.knative_scheme" ovf:qualifiers="ValueMap{&quot;HTTP&quot;,&quot;HTTPS&quot;}" ovf:userConfigurable="true" ovf:type="string" ovf:value="HTTP" ovf:configuration="dev">
      <Label>Dev Configuration 2</Label>
      <Description>Dev Configuration 2</Description>
  </Property>
  <Property ovf:key="guestinfo.knative_disable_tls_verification" ovf:type="boolean" ovf:userConfigurable="true" ovf:value="false" ovf:configuration="dev">
      <Label>Dev Configuration 3</Label>
      <Description>Dev Configuration 3</Description>
  </Property>
<Category>Stage Configuration</Category>
  <Property ovf:key="guestinfo.openfaas_password" ovf:password="true" ovf:type="string" ovf:userConfigurable="true" ovf:value="" ovf:configuration="stage">
      <Label>Stage Setting 1</Label>
      <Description>Stage Setting 1</Description>
  </Property>
  <Property ovf:key="guestinfo.openfaas_advanced_options" ovf:type="string" ovf:userConfigurable="true" ovf:value="" ovf:configuration="stage">
      <Label>Stage Setting 2</Label>
      <Description>Stage Setting 2</Description>
  </Property>
<Category>Production Settings</Category>
  <Property ovf:key="guestinfo.aws_eb_access_key" ovf:type="string" ovf:userConfigurable="true" ovf:value="" ovf:configuration="prod">
      <Label>Prod Setting 1</Label>
      <Description>Prod Setting 1</Description>
  </Property>
  <Property ovf:key="guestinfo.aws_eb_access_secret" ovf:type="string" ovf:userConfigurable="true" ovf:value="" ovf:configuration="prod">
      <Label>Prod Setting 2</Label>
      <Description>Prod Setting 2</Description>
  </Property>

Here is example of what a user would see when the Development deployment option is selected:


Here is example of what a user would see when the Stage deployment option is selected:

More from my site

  • Deploy a truly dynamic OVF using Deployment Option based on the 4 Computes (CPU, Memory, Storage & Network)
  • Quick Tip - Certificate is not trusted when importing signed OVF/OVA into vCenter Server
  • Auditing vSphere Datastore activities (Download, Upload, Copy, Move, Rename and Delete)
  • Why does Deploy OVF Template operation show vpxd-extension-[uuid]?
  • How to build a customizable Raspberry Pi OS Virtual Appliance (OVA)?

Categories // Automation, OVFTool Tags // DeploymentOptionSection, ova, ovf

Thanks for the comment!Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Search

Thank Author

Author

William is Distinguished Platform Engineering Architect in the VMware Cloud Foundation (VCF) Division at Broadcom. His primary focus is helping customers and partners build, run and operate a modern Private Cloud using the VMware Cloud Foundation (VCF) platform.

Connect

  • Bluesky
  • Email
  • GitHub
  • LinkedIn
  • Mastodon
  • Reddit
  • RSS
  • Twitter
  • Vimeo

Recent

  • Programmatically accessing the Broadcom Compatibility Guide (BCG) 05/06/2025
  • Quick Tip - Validating Broadcom Download Token  05/01/2025
  • Supported chipsets for the USB Network Native Driver for ESXi Fling 04/23/2025
  • vCenter Identity Federation with Authelia 04/16/2025
  • vCenter Server Identity Federation with Kanidm 04/10/2025

Advertisment

Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy

Copyright WilliamLam.com © 2025

 

Loading Comments...