cluster_config_software¶
vLCM single-image software lifecycle for a cluster.
Where saltext.vcf.clients.cluster_config wraps the
Configuration Profile half of /api/esx/settings/clusters/{id}/...,
this module wraps the software image half — the surface that
remediates ESXi version + add-on + components + firmware. The two
sides share the same vCenter session
(saltext.vcf.utils.vcenter).
Workflow at a glance:
Read the cluster’s desired image with
get().Make changes through a draft:
draft_create()→draft_update_base_image()/add_component/ …Commit the draft to make it the new desired image (
draft_commit()).Pre-check:
check().Optionally stage payloads to hosts ahead of time:
stage().Apply:
apply(). Bothcheckandapplyreturn a vCenter task id; poll viasaltext.vcf.utils.vim.wait_for_task()or the correspondinglast_*_resultreader below.
All endpoints live under
/api/esx/settings/clusters/{cluster}/software.
- saltext.vcf.clients.cluster_config_software.get(opts, cluster, profile=None)[source]¶
Return the current desired software image for the cluster.
Returns
Noneif the cluster isn’t using single-image (e.g. still on baselines) — vCenter responds 400INVALID_ARGUMENTin that case.
- saltext.vcf.clients.cluster_config_software.effective_components(opts, cluster, profile=None)[source]¶
Return the components currently in effect across the cluster.
- saltext.vcf.clients.cluster_config_software.solutions(opts, cluster, profile=None)[source]¶
Return the registered solutions (e.g. vSAN) layered into the image.
- saltext.vcf.clients.cluster_config_software.draft_create(opts, cluster, profile=None)[source]¶
Open a fresh draft seeded from the current desired image. Returns the draft id.
- saltext.vcf.clients.cluster_config_software.draft_update_base_image(opts, cluster, draft_id, version, profile=None)[source]¶
Set the ESXi base-image version (e.g.
8.0.3-23299997).
- saltext.vcf.clients.cluster_config_software.draft_set_add_on(opts, cluster, draft_id, name, version, profile=None)[source]¶
Set the vendor add-on (e.g.
Dell-Addon,HPE-Addon).
- saltext.vcf.clients.cluster_config_software.draft_set_component(opts, cluster, draft_id, component_name, version, profile=None)[source]¶
Pin a component version into the draft.
- saltext.vcf.clients.cluster_config_software.draft_set_hardware_support(opts, cluster, draft_id, packages, profile=None)[source]¶
Set the firmware/hardware-support package spec.
packages is the dict shape vCenter expects:
{"packages": {"<vendor>": {"pkg": "...", "version": "..."}}}.
- saltext.vcf.clients.cluster_config_software.draft_commit(opts, cluster, draft_id, profile=None)[source]¶
Commit a draft, making it the cluster’s desired image.
Returns the new commit id.
- saltext.vcf.clients.cluster_config_software.check(opts, cluster, profile=None)[source]¶
Run a pre-check. Returns a vCenter task id; poll with utils.vim.wait_for_task.
- saltext.vcf.clients.cluster_config_software.stage(opts, cluster, hosts=None, profile=None)[source]¶
Pre-stage payloads on hosts. hosts optional list of host ids.
Returns a vCenter task id.