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.
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"]
| Field | Description | Schema | Validation |
|---|
| name | The name of this SpiderMultusConfig resource | string | required |
| namespace | The namespace of this SpiderMultusConfig resource | string | required |
| annotations | The annotations of this SpiderMultusConfig resource | map | optional |
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.
| Field | Description | Schema | Validation | Default |
|---|
| multus.spidernet.io/cr-name | The customized Multus net-attach-def resource name | string | optional | |
| multus.spidernet.io/cni-version | The customized Multus net-attach-def resource CNI version | string | optional | 0.3.1 |
| cni.spidernet.io/cniconfig-name | The customized CNI config name | string | optional | |
This is the SpiderReservedIP spec for users to configure.
| Field | Description | Schema | Validation | Values | Default |
|---|
| cniType | expected main CNI type | string | require | macvlan, ipvlan, sriov, vlan, ovs, ib-sriov, custom | |
| macvlan | macvlan CNI configuration | SpiderMacvlanCniConfig | optional | | |
| ipvlan | ipvlan CNI configuration | SpiderIPvlanCniConfig | optional | | |
| vlan | vlan CNI configuration | SpiderVlanCniConfig | optional | | |
| sriov | sriov CNI configuration | SpiderSRIOVCniConfig | optional | | |
| ibsriov | infiniband ib-sriov CNI configuration | SpiderIBSRIOVCniConfig | optional | | |
| ipoib | infiniband ipoib CNI configuration | SpiderIpoibCniConfig | optional | | |
| ovs | ovs CNI configuration | SpiderOvsCniConfig | optional | | |
| enableCoordinator | enable coordinator or not | boolean | optional | true,false | true |
| disableIPAM | disable IPAM. when set to be true, any configuration of CNI's ippools field will be ignored | boolean | optional | true,false | false |
| coordinator | coordinator CNI configuration | CoordinatorSpec | optional | | |
| customCNI | a string that represents custom CNI configuration | string | optional | | |
| chainCNIJsonData | a list of string that represents chain CNI configuration, such as tune plugin. | []string | optional | | |
| Field | Description | Schema | Validation | Values |
|---|
| master | the Interfaces on your master, you could specify a single one Interface or multiple Interfaces to generate one bond Interface | list of strings | required | |
| vlanID | vlan ID | int | optional | [0,4094] |
| bond | expected bond Interface configurations | BondConfig | optional | |
| mtu | mtu of the Interface | int | optional | the max mtu can't be over than the max mtu of the Interface |
| rdmaResourceName | the RDMA resource name of the nic | string | optional | |
| ippools | the default IPPools in your CNI configurations | SpiderpoolPools | optional | |
| Field | Description | Schema | Validation | Values |
|---|
| master | the Interfaces on your master, you could specify a single one Interface or multiple Interfaces to generate one bond Interface | list of strings | required | |
| vlanID | vlan ID | int | optional | [0,4094] |
| bond | expected bond Interface configurations | BondConfig | optional | |
| mtu | mtu of the Interface | int | optional | the max mtu can't be over than the max mtu of the Interface |
| rdmaResourceName | the RDMA resource name of the nic | string | optional | |
| ippools | the default IPPools in your CNI configurations | SpiderpoolPools | optional | |
| Field | Description | Schema | Validation | Values |
|---|
| master | the Interfaces on your master, you could specify a single one Interface or multiple Interfaces to generate one bond Interface | list of strings | required | |
| vlanID | vlan ID | int | optional | [0,4094] |
| bond | expected bond Interface configurations | BondConfig | optional | |
| mtu | mtu of the Interface | int | optional | the max mtu can't be over than the max mtu of the Interface |
| rdmaResourceName | the RDMA resource name of the nic | string | optional | |
| ippools | the default IPPools in your CNI configurations | SpiderpoolPools | optional | |
| Field | Description | Schema | Validation |
|---|
| resourceName | this property will create an annotation for Multus net-attach-def to cooperate with SRIOV | string | required |
| vlanID | vlan ID | int | optional |
| mtu | mtu of the vf Interface, the max mtu can't be over than the PF Interface | int | optional |
| minTxRateMbps | change 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 drivers | int | optional |
| maxTxRateMbps | change the allowed maximum transmit bandwidth, in Mbps, for the VF. Setting this to 0 disables rate limiting | int | optional |
| rdmaIsolation | enable 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 path | bool | optional |
| ippools | the default IPPools in your CNI configurations | SpiderpoolPools | optional |
| Field | Description | Schema | Validation |
|---|
| resourceName | this property will create an annotation for Multus net-attach-def to cooperate with ib-sriov | string | required |
| pkey | InfiniBand pkey for VF, this field is used by ib-kubernetes to add pkey with guid to InfiniBand subnet manager client e.g. Mellanox UFM | string | optional |
| linkState | Enforces link state for the VF. Allowed values: auto, enable [default], disable | string | optional |
| rdmaIsolation | enable 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 path | bool | optional |
| ibKubernetesEnabled | Enforces ib-sriov-cni to work with ib-kubernetes , default to false | bool | optional |
| ippools | the default IPPools in your CNI configurations | SpiderpoolPools | optional |
| Field | Description | Schema | Validation |
|---|
| master | master interface name | string | required |
| ippools | the default IPPools in your CNI configurations | SpiderpoolPools | optional |
| Field | Description | Schema | Validation |
|---|
| bridge | name of the bridge to use | string | required |
| vlan | vlan ID of attached port. Trunk port if not specified | int | optional |
| trunk | List of VLAN ID's and/or ranges of accepted VLAN ID's | Trunk | optional |
| deviceID | PCI address of a VF in valid sysfs format | string | optional |
| ippools | the default IPPools in your CNI configurations | SpiderpoolPools | optional |
| Field | Description | Schema | Validation | Values |
|---|
| Name | the expected bond interface name | string | required | |
| Mode | bond interface mode | int | required | [0,6] |
| Options | expected bond Interface configurations | string | optional | |
| Field | Description | Schema | Validation | Values |
|---|
| minID | the min value of vlan ID | int | optional | [0,4094] |
| maxID | the max value of vlan ID | int | optional | [0,4094] |
| id | the value of vlan ID | int | optional | [0,4094] |
| Field | Description | Schema | Validation |
|---|
| ipv4 | the default IPv4 IPPools in your CNI configurations | list of strings | optional |
| ipv6 | the default IPv6 IPPools in your CNI configurations | list of strings | optional |
| matchMasterSubnet | whether to match the master subnet, only for sriov-cni | bool | optional |