Source code for saltext.vcf.clients.vcenter_supervisor_software

"""Supervisor cluster software/lifecycle (VKS).

Manages the Kubernetes version of a Supervisor cluster — list of
available versions, current version, upgrade triggering.
"""

import requests

from saltext.vcf.utils import vcenter

PATH = "/api/vcenter/namespace-management/software/clusters"


[docs] def list_(opts, profile=None): """List Supervisor cluster software states.""" return vcenter.api_get(opts, PATH, profile=profile)
def get(opts, cluster_id, profile=None): return vcenter.api_get(opts, f"{PATH}/{cluster_id}", profile=profile) def get_or_none(opts, cluster_id, profile=None): try: return get(opts, cluster_id, profile=profile) except requests.HTTPError as exc: if exc.response is not None and exc.response.status_code == 404: return None raise
[docs] def upgrade(opts, cluster_id, upgrade_spec, profile=None): """Trigger a Supervisor version upgrade. *upgrade_spec* example:: {"desired_version": "v1.28.2+vmware.1-vsc0.1.16-22674057", "ignore_precheck_warnings": false} """ return vcenter.api_post( opts, f"{PATH}/{cluster_id}", params={"action": "upgrade"}, body=upgrade_spec, profile=profile, )