Skip to content

Commit 529881e

Browse files
committed
fix: fix kvm2 numa simulate ut&lint
1 parent badc5d4 commit 529881e

File tree

5 files changed

+37
-28
lines changed

5 files changed

+37
-28
lines changed

Diff for: cmd/minikube/cmd/start_flags.go

+17-12
Original file line numberDiff line numberDiff line change
@@ -313,18 +313,7 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
313313
out.WarningT("--network flag is only valid with the docker/podman drivers, it will be ignored")
314314
}
315315

316-
if viper.GetInt(kvmNUMACount) < 1 || viper.GetInt(kvmNUMACount) > 8 {
317-
exit.Message(reason.Usage, "--kvm-numa-count range is 1-8")
318-
}
319-
if viper.GetInt(kvmNUMACount) > 1 {
320-
v, err := pkgutil.ParseKubernetesVersion(k8sVersion)
321-
if err != nil {
322-
exit.Message(reason.Usage, "invalid kubernetes version")
323-
}
324-
if v.LT(semver.Version{Major: 1,Minor: 18}){
325-
exit.Message(reason.Usage, "numa node is only supported on k8s v1.18 and later")
326-
}
327-
}
316+
checkNumaCount(k8sVersion)
328317

329318
cc = config.ClusterConfig{
330319
Name: ClusterFlagValue(),
@@ -423,6 +412,22 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
423412
return createNode(cc, kubeNodeName, existing)
424413
}
425414

415+
func checkNumaCount(k8sVersion string) {
416+
if viper.GetInt(kvmNUMACount) < 1 || viper.GetInt(kvmNUMACount) > 8 {
417+
exit.Message(reason.Usage, "--kvm-numa-count range is 1-8")
418+
}
419+
420+
if viper.GetInt(kvmNUMACount) > 1 {
421+
v, err := pkgutil.ParseKubernetesVersion(k8sVersion)
422+
if err != nil {
423+
exit.Message(reason.Usage, "invalid kubernetes version")
424+
}
425+
if v.LT(semver.Version{Major: 1, Minor: 18}) {
426+
exit.Message(reason.Usage, "numa node is only supported on k8s v1.18 and later")
427+
}
428+
}
429+
}
430+
426431
// upgradeExistingConfig upgrades legacy configuration files
427432
func upgradeExistingConfig(cc *config.ClusterConfig) {
428433
if cc == nil {

Diff for: cmd/minikube/cmd/start_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ func TestMirrorCountry(t *testing.T) {
133133
cmd := &cobra.Command{}
134134
viper.SetDefault(imageRepository, test.imageRepository)
135135
viper.SetDefault(imageMirrorCountry, test.mirrorCountry)
136+
viper.SetDefault(kvmNUMACount, 1)
136137
config, _, err := generateClusterConfig(cmd, nil, k8sVersion, "none")
137138
if err != nil {
138139
t.Fatalf("Got unexpected error %v during config generation", err)

Diff for: pkg/drivers/kvm/kvm.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -320,11 +320,11 @@ func (d *Driver) Create() (err error) {
320320
}
321321

322322
if d.NUMANodeCount > 1 {
323-
NUMAXML, err := NumaXml(d.CPU, d.Memory, d.NUMANodeCount)
323+
numaXML, err := numaXML(d.CPU, d.Memory, d.NUMANodeCount)
324324
if err != nil {
325325
return errors.Wrap(err, "creating NUMA XML")
326326
}
327-
d.NUMANodeXML = NUMAXML
327+
d.NUMANodeXML = numaXML
328328
}
329329

330330
store := d.ResolveStorePath(".")

Diff for: pkg/drivers/kvm/numa.go

+14-11
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,28 @@ import (
2424
"text/template"
2525
)
2626

27-
// NUMATmpl NUMA XML Template
28-
const NUMATmpl = `
27+
// numaTmpl NUMA XML Template
28+
const numaTmpl = `
2929
<numa>
3030
{{- range $idx,$val :=. }}
3131
<cell id='{{$idx}}' cpus='{{$val.CPUTopology}}' memory='{{$val.Memory}}' unit='MiB'/>
3232
{{- end }}
3333
</numa>
3434
`
3535

36-
// NUMA this struct use for NUMATmpl
36+
// NUMA this struct use for numaTmpl
3737
type NUMA struct {
38-
CPUCount int
39-
Memory int
38+
// cpu count on numa node
39+
CPUCount int
40+
// memory on numa node
41+
Memory int
42+
// cpu sequence on numa node eg: 0,1,2,3
4043
CPUTopology string
4144
}
4245

43-
// NumaXml generate numa xml
46+
// numaXML generate numa xml
4447
// evenly distributed cpu core & memory to each numa node
45-
func NumaXml(cpu, memory, numaCount int) (string, error) {
48+
func numaXML(cpu, memory, numaCount int) (string, error) {
4649
if numaCount < 1 {
4750
return "", fmt.Errorf("numa node count must >= 1")
4851
}
@@ -81,10 +84,10 @@ func NumaXml(cpu, memory, numaCount int) (string, error) {
8184
numaNodes[i].Memory++
8285
}
8386

84-
tmpl := template.Must(template.New("numa").Parse(NUMATmpl))
85-
var NUMAXML bytes.Buffer
86-
if err := tmpl.Execute(&NUMAXML, numaNodes); err != nil {
87+
tmpl := template.Must(template.New("numa").Parse(numaTmpl))
88+
var numaXML bytes.Buffer
89+
if err := tmpl.Execute(&numaXML, numaNodes); err != nil {
8790
return "", fmt.Errorf("couldn't generate numa XML: %v", err)
8891
}
89-
return NUMAXML.String(), nil
92+
return numaXML.String(), nil
9093
}

Diff for: pkg/drivers/kvm/numa_test.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ import (
2121
"testing"
2222
)
2323

24-
func TestGetNUMAXml(t *testing.T) {
25-
_, err := NumaXml(1, 1024, 0)
24+
func TestNumaXml(t *testing.T) {
25+
_, err := numaXML(1, 1024, 0)
2626
if err == nil {
2727
t.Errorf("check invalid numa count failed: %s", err)
2828
}
2929

30-
xml, err := NumaXml(10, 10240, 8)
30+
xml, err := numaXML(10, 10240, 8)
3131
expXML := `<numa>
3232
<cell id='0' cpus='0,1' memory='1280' unit='MiB'/>
3333
<cell id='1' cpus='2,3' memory='1280' unit='MiB'/>

0 commit comments

Comments
 (0)