Skip to content

metalcloud-cli firmware-catalog create

Create a new firmware catalog from vendor sources

Create a new firmware catalog from vendor sources.

This command creates a firmware catalog by downloading and processing firmware information from vendor repositories. The catalog can be configured for online or offline updates.

Configuration Methods:

  1. Command-line flags - Specify all options using individual flags
  2. Configuration file - Use —config-source to load settings from JSON/YAML file

Required Flags (when not using —config-source): —name Name of the firmware catalog —vendor Vendor type: ‘dell’, ‘hp’, or ‘lenovo’ —update-type Update method: ‘online’ or ‘offline’

Source Configuration (mutually exclusive): —vendor-url URL of the online vendor catalog —vendor-local-catalog-path Path to a local catalog file

Optional Flags: —description Description of the firmware catalog —vendor-token Authentication token for vendor API access —server-types Comma-separated list of Metalsoft server types to filter —vendor-systems Comma-separated list of vendor system models to filter —vendor-local-binaries-path Local directory for downloaded firmware binaries —download-binaries Download firmware binaries locally —upload-binaries Upload binaries to offline repository

Offline Repository Configuration (required when —upload-binaries is used): —repo-base-url Base URL of the offline repository —repo-ssh-host SSH hostname:port for repository upload —repo-ssh-user SSH username for repository access —repo-ssh-path Target directory path on SSH server

SSH Configuration (mutually exclusive): —user-private-key-path Path to SSH private key (default: ~/.ssh/id_rsa) —known-hosts-path Path to SSH known hosts file (default: ~/.ssh/known_hosts) —ignore-host-key-check Skip SSH host key verification

metalcloud-cli firmware-catalog create [flags]
Dell example (online):
metalcloud-cli firmware-catalog create \
--name "Dell R640 Catalog" \
--description "Dell PowerEdge R640 firmware catalog" \
--vendor dell \
--vendor-url https://downloads.dell.com/FOLDER06417267M/1/ESXi_Catalog.xml.gz \
--vendor-systems "R640" \
--server-types "M.24.64.2,M.32.64.2" \
--update-type online
Dell example (offline with upload):
metalcloud-cli firmware-catalog create \
--name "Dell Offline Catalog" \
--vendor dell \
--vendor-url https://downloads.dell.com/catalog.xml.gz \
--download-binaries \
--vendor-local-binaries-path ./downloads \
--upload-binaries \
--repo-base-url http://repo.mycloud.com/dell \
--repo-ssh-host repo.mycloud.com:22 \
--repo-ssh-user admin \
--repo-ssh-path /var/www/html/dell \
--update-type offline
HP example:
metalcloud-cli firmware-catalog create \
--name "HP Gen11 Catalog" \
--vendor hp \
--vendor-url https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.json \
--server-types "M.8.8.2.v5" \
--update-type online
Lenovo example using config file:
metalcloud-cli firmware-catalog create --config-source ./lenovo-config.json
Configuration file examples:
lenovo-config.json:
{
"name": "Lenovo Catalog",
"description": "Lenovo server firmware catalog",
"vendor": "lenovo",
"update_type": "offline",
"vendor_local_catalog_path": "./lenovo_catalogs",
"vendor_local_binaries_path": "./lenovo_downloads",
"server_types_filter": ["M.8.8.2.v5"],
"vendor_systems_filter": ["7Y51"],
"download_binaries": true
}
hp-config.yaml:
name: HP Gen11 Catalog
description: HP ProLiant Gen11 firmware
vendor: hp
update_type: online
vendor_url: https://downloads.linux.hpe.com/SDR/repo/fwpp-gen11/current/fwrepodata/fwrepo.json
vendor_local_catalog_path: ./fwrepo.json
vendor_local_binaries_path: ./hp_downloads
server_types_filter:
- M.8.8.2.v5
--config-source string Source of the new firmware catalog configuration. Can be 'pipe' or path to a JSON file.
--description string Description of the firmware catalog
--download-binaries Download binaries from the vendor catalog
-h, --help help for create
--ignore-host-key-check Ignore host key check for SSH connections
--known-hosts-path string Path to the known hosts file for SSH connections (default "~/.ssh/known_hosts")
--name string Name of the firmware catalog
--repo-base-url string Base URL of the offline repository
--repo-ssh-host string SSH host with port of the offline repository
--repo-ssh-path string The path to the target folder in the SSH repository
--repo-ssh-user string SSH user for the offline repository
--server-types strings List of supported Metalsoft server types (comma-separated)
--update-type string Update type (e.g., 'online', 'offline')
--upload-binaries Upload binaries to the offline repository
--user-private-key-path string Path to the user's private SSH key (default "~/.ssh/id_rsa")
--vendor string Vendor type (e.g., 'dell', 'hp')
--vendor-local-binaries-path string Path to the local binaries directory
--vendor-local-catalog-path string Path to the local catalog file
--vendor-systems strings List of supported vendor systems (comma-separated)
--vendor-token string Token for accessing the online vendor catalog
--vendor-url string URL of the online vendor catalog
-k, --api_key string MetalCloud API key
-c, --config string Config file path
-d, --debug Set to enable debug logging
-e, --endpoint string MetalCloud API endpoint
-f, --format string Output format. Supported values are 'text','csv','md','json','yaml'. (default "text")
-i, --insecure_skip_verify Set to allow insecure transport
-l, --log_file string Log file path
-v, --verbosity string Log level verbosity (default "INFO")

Auto generated by spf13/cobra on 11-Aug-2025

Section titled “Auto generated by spf13/cobra on 11-Aug-2025”