Skip to content

Commit

Permalink
SpiderMultusConfig: Fix error json tag for min/maxTxRateMbps
Browse files Browse the repository at this point in the history
  • Loading branch information
cyclinder committed Mar 4, 2025
1 parent 245f6c8 commit d1ed4fc
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 9 deletions.
10 changes: 5 additions & 5 deletions docs/usage/spider-multus-config-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -387,9 +387,9 @@ spec:
config: '{"cniVersion":"0.3.1","name":"sriov-rdma","plugins":[{"vlan":100,"type":"sriov","ipam":{"type":"spiderpool"}},{"type":"rdma"},{"type":"coordinator"}]}'
```

- 配置 Sriov 网络带宽
- 限制 Sriov VF 传输带宽

我们可通过 SpiderMultusConfig 配置 Sriov 的网络带宽:
我们可通过 SpiderMultusConfig 限制 Sriov VF 传输带宽:

```bash
cat <<EOF | kubectl apply -f -
Expand All @@ -409,7 +409,7 @@ spec:
EOF
```

> `minTxRateMbps``MaxTxRateMbps` 配置此 CNI 配置文件的网络传输带宽范围为: [100,1000]
> `min_tx_rateMbps``MaxTxRateMbps` 配置此 CNI 配置文件的网络传输带宽范围为: [100,1000]

创建后,查看对应的 Multus NetworkAttachmentDefinition CR:

Expand All @@ -430,7 +430,7 @@ metadata:
name: sriov-bandwidth
uid: b08ce054-1ae8-414a-b37c-7fd6988b1b8e
spec:
config: '{"cniVersion":"0.3.1","name":"sriov-bandwidth","plugins":[{"vlan":100,"type":"sriov","minTxRate": 100, "maxTxRate": 1000,"ipam":{"type":"spiderpool"}},{"type":"rdma"},{"type":"coordinator"}]}'
config: '{"cniVersion":"0.3.1","name":"sriov-bandwidth","plugins":[{"vlan":100,"type":"sriov","min_tx_rate": 100, "max_tx_rate": 1000,"ipam":{"type":"spiderpool"}},{"type":"rdma"},{"type":"coordinator"}]}'
```

- 配置 Sriov VF 的 MTU 大小
Expand Down Expand Up @@ -475,7 +475,7 @@ metadata:
name: sriov-bandwidth
uid: b08ce054-1ae8-414a-b37c-7fd6988b1b8e
spec:
config: '{"cniVersion":"0.3.1","name":"sriov-bandwidth","plugins":[{"vlan":100,"type":"sriov","minTxRate": 100, "maxTxRate": 1000,"ipam":{"type":"spiderpool"}},{"type":"rdma"},{"type":"coordinator"},{"type":"tuning","mtu":8000}]}'
config: '{"cniVersion":"0.3.1","name":"sriov-bandwidth","plugins":[{"vlan":100,"type":"sriov","min_tx_rate": 0, "max_tx_rate": 0,"ipam":{"type":"spiderpool"}},{"type":"rdma"},{"type":"coordinator"},{"type":"tuning","mtu":8000}]}'
```

### Ifacer 使用配置
Expand Down
1 change: 1 addition & 0 deletions pkg/constant/k8s.go
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ const (
IPoIBCNI = "ipoib"
OvsCNI = "ovs"
CustomCNI = "custom"
TuningCNI = "tuning"
)

const WebhookMutateRoute = "/webhook-health-check"
Expand Down
4 changes: 2 additions & 2 deletions pkg/multuscniconfig/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ type IPvlanNetConf struct {
type SRIOVNetConf struct {
Vlan *int32 `json:"vlan,omitempty"`
// Mbps, 0 = disable rate limiting
MinTxRate *int `json:"minTxRate,omitempty"`
MinTxRate *int `json:"min_tx_rate,omitempty"`
// Mbps, 0 = disable rate limiting
MaxTxRate *int `json:"maxTxRate,omitempty"`
MaxTxRate *int `json:"max_tx_rate,omitempty"`
Type string `json:"type"`
DeviceID string `json:"deviceID,omitempty"`
IPAM *spiderpoolcmd.IPAMConfig `json:"ipam,omitempty"`
Expand Down
26 changes: 24 additions & 2 deletions test/e2e/spidermultus/spidermultus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1195,7 +1195,7 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig"), func() {
}, common.SpiderSyncMultusTime, common.ForcedWaitingTime).Should(BeTrue())
})

It("test the multusConfig with mtu size for sriov", Label("M00035"), func() {
It("test the multusConfig with for sriov", Label("M00035"), func() {
smcName := "mtu" + common.GenerateString(10, true)
smc := &v2beta1.SpiderMultusConfig{
ObjectMeta: metav1.ObjectMeta{
Expand All @@ -1208,6 +1208,8 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig"), func() {
MTU: ptr.To(int32(-1)),
ResourceName: ptr.To("spidernet.io/test"),
RdmaIsolation: ptr.To(true),
MinTxRateMbps: ptr.To(int(10)),
MaxTxRateMbps: ptr.To(int(30)),
},
},
}
Expand All @@ -1225,7 +1227,27 @@ var _ = Describe("test spidermultus", Label("SpiderMultusConfig"), func() {
nad, err := frame.GetMultusInstance(smcName, namespace)
if err == nil {
GinkgoWriter.Printf("Multus Nad created: %+v \n", nad.Spec.Config)
return true
config, err := libcni.ConfListFromBytes([]byte(nad.Spec.Config))
Expect(err).NotTo(HaveOccurred())

sriov, tuning := false, false
for _, p := range config.Plugins {
c := make(map[string]interface{})
err = json.Unmarshal(p.Bytes, &c)
Expect(err).NotTo(HaveOccurred())

if c["type"] == constant.SriovCNI {
Expect(c["minTxRateMbps"]).To(Equal(10))
Expect(c["maxTxRateMbps"]).To(Equal(30))
sriov = true
}

if c["type"] == constant.TuningCNI {
Expect(c["mtu"]).To(Equal(1400))
tuning = true
}
}
return sriov && tuning
}

Expect(err.Error()).To(ContainSubstring("not found"))
Expand Down

0 comments on commit d1ed4fc

Please sign in to comment.