This article explains how to install VCF CLI plugins in environments without internet access (air-gapped networks) using pre-packaged offline bundles, eliminating the need for an OCI registry.
search cancel

This article explains how to install VCF CLI plugins in environments without internet access (air-gapped networks) using pre-packaged offline bundles, eliminating the need for an OCI registry.

book

Article ID: 415112

calendar_today

Updated On:

Products

VMware Cloud Foundation VMware vSphere Foundation

Issue/Introduction

For VCF CLI deployments in air-gapped environments, where external network connectivity is unavailable, efficient plugin management is a key consideration. To support these specific operational needs, we've introduced a new method for installing VCF CLI plugins directly from pre-packaged local bundles.

Environment

VCF 9.0 and 9.0.1

VVF 9.0 and 9.0.1

Resolution

A single "offline bundle" containing all the necessary plugin binaries for the target operating system and architecture can now be downloaded. This bundle enables direct installation, removing the need to fetch OCI images from an online registry. A simple VCF CLI command with a --local-source flag is then used to install these plugins directly from the downloaded bundle.

Prerequisites:

Installation Steps

  1. Download the Offline Plugin Bundle

  2. Extract the Bundle

    • Once downloaded, extract the contents of the bundle to a directory on a local machine. This directory will serve as <PATH_TO_BUNDLE_ROOT>.
    • Example (for .tar.gz bundles on Linux/macOS)
      tar -xvzf VCF-Consumption-CLI-PluginBundle-Darwin_ARM64.tar.gz -C <PATH_TO_BUNDLE_ROOT> 
    • Example (for .zip bundles on Windows):
      Use a decompression tool (e.g., File Explorer's "Extract All…") to extract the .zip file into your chosen directory.
      
      For instance, if bundle VCF-Consumption-CLI-PluginBundle-Windows_AMD64.zip is extracted to C:\Users\YourUser\Downloads\VCF-CLI-Plugins, then C:\Users\YourUser\Downloads\VCF-CLI-Plugins is your <PATH_TO_BUNDLE_ROOT>.

      3. Install Plugins using VCF CLI (Applicable for all OS/ Arch combinations)

    • Installing All Plugins in the Bundle
      vcf plugin install all --local-source <PATH_TO_BUNDLE_ROOT>
      
      Example: After extracting the bundle to ~/Downloads/VCF-CLI-Plugins/, install command would look like..
      
      $ vcf plugin install all --local-source ~/Downloads/VCF-CLI-Plugins/
    • To Install a Specific Plugin from the Bundle
      vcf plugin install <PLUGIN_NAME> --local-source <PATH_TO_BUNDLE_ROOT>
      
      Example: To install a plugin named vm from the same bundle:
      
      $ vcf plugin install vm --local-source ~/Downloads/VCF-CLI-Plugins/
      

Key Considerations

Initial CLI Setup in Air-Gapped Environments:

When the VCF CLI is initialized for the first time in an air-gapped environment, it attempts to fetch plugin inventory from a default online OCI discovery URL (e.g., projects.packages.broadcom.com/vcf-cli/plugins/plugin-inventory:latest). This attempt will result in an error message similar to the following.

[i] Some initialization of the CLI is required.
[i] Let's set things up for you. This will just take a few seconds.
[i] Refreshing plugin inventory cache for "projects.packages.broadcom.com/vcf-cli/plugins/plugin-inventory:latest", this will take a few seconds.
[x] The initialization encountered the error: error running the 'Central Config Initializer' global initializer: unable to fetch the inventory of discovery 'default' for plugins: plugins discovery image resolution failed. Please check that the repository image URL "projects.packages.broadcom.com/vcf-cli/plugins/plugin-inventory:latest" is correct: error getting the image digest: Error while preparing a transport to talk with the registry: Unable to create round tripper: Get "https://projects.packages.broadcom.com/artifactory/api/docker/projects/v2/token?scope=repository%3Avcf-cli%2Fplugins%2Fplugin-inventory%3Apull&service=projects.packages.broadcom.com": dial tcp: lookup projects.packages.broadcom.com: no such host
[i] '

 

This error is expected behavior in air-gapped deployments and does not affect the ability to install plugins from local bundles.

Telemetry Plugin: In air-gapped environments, attempts to install the telemetry plugin (which is part of the essential plugin group) may time out. This is expected behavior and will not prevent other plugins from installing correctly.