SpiderMultusConfig

April 27, 2026 ยท View on GitHub

A SpiderMultusConfig resource represents a best practice to generate a multus net-attach-def CR object for spiderpool to use.

For details on using this CRD, please read the SpiderMultusConfig guide.

Sample YAML

apiVersion: spiderpool.spidernet.io/v2beta1
kind: SpiderMultusConfig
metadata:
  name: demo
  namespace: default
  annotations:
    multus.spidernet.io/cr-name: "macvlan-100"
    multus.spidernet.io/cni-version: 0.4.0
    cni.spidernet.io/cniconfig-name: "macvlan-100"
spec:
  cniType: macvlan
  macvlan:
    master: ["eth0"]
    vlanID: 100
    ippools:
      ipv4: ["default-pool-v4"]
      ipv6: ["default-pool-v6"]

SpiderMultusConfig definition

Metadata

FieldDescriptionSchemaValidation
nameThe name of this SpiderMultusConfig resourcestringrequired
namespaceThe namespace of this SpiderMultusConfig resourcestringrequired
annotationsThe annotations of this SpiderMultusConfig resourcemapoptional

Metadata.annotations

You can also set annotations for this SpiderMultusConfig resource, then the corresponding Multus net-attach-def resource will inherit these annotations too.
And you can also use special annotation multus.spidernet.io/cr-name and multus.spidernet.io/cni-version to customize the corresponding Multus net-attach-def resource name and CNI version.

FieldDescriptionSchemaValidationDefault
multus.spidernet.io/cr-nameThe customized Multus net-attach-def resource namestringoptional
multus.spidernet.io/cni-versionThe customized Multus net-attach-def resource CNI versionstringoptional0.3.1
cni.spidernet.io/cniconfig-nameThe customized CNI config namestringoptional

Spec

This is the SpiderReservedIP spec for users to configure.

FieldDescriptionSchemaValidationValuesDefault
cniTypeexpected main CNI typestringrequiremacvlan, ipvlan, sriov, vlan, ovs, ib-sriov, custom
macvlanmacvlan CNI configurationSpiderMacvlanCniConfigoptional
ipvlanipvlan CNI configurationSpiderIPvlanCniConfigoptional
vlanvlan CNI configurationSpiderVlanCniConfigoptional
sriovsriov CNI configurationSpiderSRIOVCniConfigoptional
ibsriovinfiniband ib-sriov CNI configurationSpiderIBSRIOVCniConfigoptional
ipoibinfiniband ipoib CNI configurationSpiderIpoibCniConfigoptional
ovsovs CNI configurationSpiderOvsCniConfigoptional
enableCoordinatorenable coordinator or notbooleanoptionaltrue,falsetrue
disableIPAMdisable IPAM. when set to be true, any configuration of CNI's ippools field will be ignoredbooleanoptionaltrue,falsefalse
coordinatorcoordinator CNI configurationCoordinatorSpecoptional
customCNIa string that represents custom CNI configurationstringoptional
chainCNIJsonDataa list of string that represents chain CNI configuration, such as tune plugin.[]stringoptional

SpiderMacvlanCniConfig

FieldDescriptionSchemaValidationValues
masterthe Interfaces on your master, you could specify a single one Interface
or multiple Interfaces to generate one bond Interface
list of stringsrequired
vlanIDvlan IDintoptional[0,4094]
bondexpected bond Interface configurationsBondConfigoptional
mtumtu of the Interfaceintoptionalthe max mtu can't be over than the max mtu of the Interface
rdmaResourceNamethe RDMA resource name of the nicstringoptional
ippoolsthe default IPPools in your CNI configurationsSpiderpoolPoolsoptional

SpiderIPvlanCniConfig

FieldDescriptionSchemaValidationValues
masterthe Interfaces on your master, you could specify a single one Interface
or multiple Interfaces to generate one bond Interface
list of stringsrequired
vlanIDvlan IDintoptional[0,4094]
bondexpected bond Interface configurationsBondConfigoptional
mtumtu of the Interfaceintoptionalthe max mtu can't be over than the max mtu of the Interface
rdmaResourceNamethe RDMA resource name of the nicstringoptional
ippoolsthe default IPPools in your CNI configurationsSpiderpoolPoolsoptional

SpiderVlanCniConfig

FieldDescriptionSchemaValidationValues
masterthe Interfaces on your master, you could specify a single one Interface
or multiple Interfaces to generate one bond Interface
list of stringsrequired
vlanIDvlan IDintoptional[0,4094]
bondexpected bond Interface configurationsBondConfigoptional
mtumtu of the Interfaceintoptionalthe max mtu can't be over than the max mtu of the Interface
rdmaResourceNamethe RDMA resource name of the nicstringoptional
ippoolsthe default IPPools in your CNI configurationsSpiderpoolPoolsoptional

SpiderSRIOVCniConfig

FieldDescriptionSchemaValidation
resourceNamethis property will create an annotation for Multus net-attach-def to cooperate with SRIOVstringrequired
vlanIDvlan IDintoptional
mtumtu of the vf Interface, the max mtu can't be over than the PF Interfaceintoptional
minTxRateMbpschange the allowed minimum transmit bandwidth, in Mbps, for the VF. Setting this to 0 disables rate limiting. The min_tx_rate value should be <= max_tx_rate. Support of this feature depends on NICs and driversintoptional
maxTxRateMbpschange the allowed maximum transmit bandwidth, in Mbps, for the VF. Setting this to 0 disables rate limitingintoptional
rdmaIsolationenable RDMA CNI plugin is intended to be run as a chained CNI plugin. it ensures isolation of RDMA traffic from other workloads in the system by moving the associated RDMA interfaces of the provided network interface to the container'snetwork namespace pathbooloptional
ippoolsthe default IPPools in your CNI configurationsSpiderpoolPoolsoptional

SpiderIBSRIOVCniConfig

FieldDescriptionSchemaValidation
resourceNamethis property will create an annotation for Multus net-attach-def to cooperate with ib-sriovstringrequired
pkeyInfiniBand pkey for VF, this field is used by ib-kubernetes to add pkey with guid to InfiniBand subnet manager client e.g. Mellanox UFMstringoptional
linkStateEnforces link state for the VF. Allowed values: auto, enable [default], disablestringoptional
rdmaIsolationenable RDMA CNI plugin is intended to be run as a chained CNI plugin. it ensures isolation of RDMA traffic from other workloads in the system by moving the associated RDMA interfaces of the provided network interface to the container'snetwork namespace pathbooloptional
ibKubernetesEnabledEnforces ib-sriov-cni to work with ib-kubernetes , default to falsebooloptional
ippoolsthe default IPPools in your CNI configurationsSpiderpoolPoolsoptional

SpiderIpoibCniConfig

FieldDescriptionSchemaValidation
mastermaster interface namestringrequired
ippoolsthe default IPPools in your CNI configurationsSpiderpoolPoolsoptional

SpiderOvsCniConfig

FieldDescriptionSchemaValidation
bridgename of the bridge to usestringrequired
vlanvlan ID of attached port. Trunk port if not specifiedintoptional
trunkList of VLAN ID's and/or ranges of accepted VLAN ID'sTrunkoptional
deviceIDPCI address of a VF in valid sysfs formatstringoptional
ippoolsthe default IPPools in your CNI configurationsSpiderpoolPoolsoptional

BondConfig

FieldDescriptionSchemaValidationValues
Namethe expected bond interface namestringrequired
Modebond interface modeintrequired[0,6]
Optionsexpected bond Interface configurationsstringoptional

Trunk

FieldDescriptionSchemaValidationValues
minIDthe min value of vlan IDintoptional[0,4094]
maxIDthe max value of vlan IDintoptional[0,4094]
idthe value of vlan IDintoptional[0,4094]

SpiderpoolPools

FieldDescriptionSchemaValidation
ipv4the default IPv4 IPPools in your CNI configurationslist of stringsoptional
ipv6the default IPv6 IPPools in your CNI configurationslist of stringsoptional
matchMasterSubnetwhether to match the master subnet, only for sriov-cnibooloptional