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.
VCF 9.0 and 9.0.1
VVF 9.0 and 9.0.1
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
Download the Offline Plugin Bundle
Extract the Bundle
tar -xvzf VCF-Consumption-CLI-PluginBundle-Darwin_ARM64.tar.gz -C <PATH_TO_BUNDLE_ROOT>
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)
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/
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.