Skip to main content

Creates a libvirt cloud config's machine pool

POST 

/v1/cloudconfigs/libvirt/:configUid/machinePools

Creates a libvirt cloud config's machine pool

Request

Path Parameters

    configUid stringrequired

    Cluster's cloud config uid

Header Parameters

    ProjectUid string

    Scope the request to the specified project uid

Body

    cloudConfig

    instanceType

    object

    required

    LibvirtInstanceType defines the instance configuration for a virtual machine

    cpuPassthroughSpec

    object

    cachePassthroughboolean
    isEnabledboolean

    Enables the CPU Passthrough for the libvirt domain

    cpusetstring

    CPUSet defines cpuset for an instance which allows allocation specific set of cpus E.g cpuset="1-4,^3,6" See https://libvirt.org/formatdomain.html#cpu-allocation

    gpuConfig

    object

    addresses

    object

    Addresses is a map of PCI device entry name to its addresses. Example entry would be "11:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1eb1] (rev a1)"- > 0000_11_00_0" The address is BDF (Bus Device Function) identifier format seperated by underscores. The first 4 bits are almost always 0000. In the above example 11 is Bus, 00 is Device,0 is function. The values of these addreses are expected in hexadecimal format

    property name*string
    deviceModelstring

    DeviceModel is the model of GPU, for a given vendor, for eg., TU104GL [Tesla T4]

    numGPUsint32

    NumGPUs is the number of GPUs

    vendorNamestring

    VendorName is the GPU vendor, for eg., NVIDIA or AMD

    memoryInMBint32required

    MemoryinMB is the memory in megabytes

    numCPUsint32required

    NumCPUs is the number of CPUs

    nonRootDisksInGB

    object[]

    NonRootDisksInGB is the list of additional disks, if required, in GB

  • Array [

  • dataStoragePoolstring

    DataStoragePool is the storage pool from which additional disks are assigned

    managedboolean

    Managed indicates if the disk is a persistent or not. By default its false indicating all disks are ephemeral.

    sizeInGBint32required

    SizeInGB is the target size in GB of the disk to be added

  • ]

  • placements

    object[]

    required

    Placements configuration Placements If defined, will replace default values defined in VsphereClusterConfig Array means one MachinePool can span across multiple vsphere compute cluster

  • Array [

  • dataStoragePoolstring

    gpuDevices

    object[]

    GPUDevices defines an array of gpu device for a specific edge host. This will be overridden by edge host GPU devices if configured during registration.

  • Array [

  • addresses

    object

    Addresses is a map of PCI device entry name to its addresses. Example entry would be "11:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:1eb1] (rev a1)"- > 0000_11_00_0" The address is BDF (Bus Device Function) identifier format seperated by underscores. The first 4 bits are almost always 0000. In the above example 11 is Bus, 00 is Device,0 is function. The values of these addreses are expected in hexadecimal format

    property name*string
    modelstring

    Model is the model of GPU, for a given vendor, for eg., TU104GL [Tesla T4]

    vendorstring

    Vendor is the GPU vendor, for eg., NVIDIA or AMD

  • ]

  • hostUidstringrequired

    networks

    object[]

  • Array [

  • networkNamestringrequired

    NetworkName of the libvirt network where this machine will be connected

    networkTypestringrequired

    Possible values: [default, bridge]

    NetworkType specifies the type of network

  • ]

  • sourceStoragePoolstring
    targetStoragePoolstring
  • ]

  • rootDiskInGBint32required

    RootDiskInGB is the size of a vm's root disk, in GiB

    xslTemplatestring

    XSLTemplate defines a base64-encoded raw xsl template which will be included in the machine definition

    poolConfig

    object

    Machine pool configuration for the cluster

    additionalLabels

    object

    Additional labels to be part of the machine pool

    property name*string

    additionalTags

    object

    AdditionalTags is an optional set of tags to add to resources managed by the provider, in addition to the ones added by default. For eg., tags for EKS nodeGroup or EKS NodegroupIAMRole

    property name*string
    isControlPlaneboolean

    Whether this pool is for control plane

    labelsstring[]required

    Labels for this machine pool, example: master/worker, gpu, windows

    machinePoolProperties

    object

    Machine pool specific properties

    archTypestring

    Possible values: [amd64, arm64]

    Default value: amd64

    maxSizeint32

    Max size of the pool, for scaling

    minSizeint32

    Min size of the pool, for scaling

    namestringrequired
    nodeRepaveIntervalint32

    Minimum number of seconds a node should be Ready, before the next node is selected for repave. Applicable only for workerpools in infrastructure cluster

    sizeint32required

    Size of the pool, number of nodes/machines

    taints

    object[]

    Master or worker taints

  • Array [

  • effectstring

    Possible values: [NoSchedule, PreferNoSchedule, NoExecute]

    keystring

    The taint key to be applied to a node

    timeAddeddate-time

    Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.

    valuestring

    The taint value corresponding to the taint key.

  • ]

  • updateStrategy

    object

    UpdatesStrategy will be used to translate to RollingUpdateStrategy of a MachineDeployment We'll start with default values for the translation, can expose more details later Following is details of parameters translated from the type ScaleOut => maxSurge=1, maxUnavailable=0 ScaleIn => maxSurge=0, maxUnavailable=1

    typestring

    Possible values: [RollingUpdateScaleOut, RollingUpdateScaleIn]

    update strategy, either ScaleOut or ScaleIn if empty, will default to RollingUpdateScaleOut

    useControlPlaneAsWorkerboolean

    If IsControlPlane==true && useControlPlaneAsWorker==true, then will remove master taint this will not be used for worker pools

Responses

Created successfully

Response Headers

  • AuditUid

    string

    Audit uid for the request

Schema

    uidstringrequired
Loading...