Skip to content

Commit

Permalink
Add golanci-lint config file and address lints
Browse files Browse the repository at this point in the history
Signed-off-by: Carlos Eduardo Arango Gutierrez <eduardoa@nvidia.com>
  • Loading branch information
ArangoGutierrez committed Mar 13, 2024
1 parent 63b3ea6 commit d2bc105
Show file tree
Hide file tree
Showing 9 changed files with 59 additions and 11 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/golang.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ jobs:
version: latest
args: -v --timeout 5m
skip-cache: true
- name: Check golang modules
run: make check-vendor
test:
name: Unit test
runs-on: ubuntu-latest
Expand Down
40 changes: 40 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
run:
deadline: 10m

linters:
enable:
- contextcheck
- errcheck
- gocritic
- gofmt
- goimports
- gosec
- gosimple
- govet
- ineffassign
- misspell
- staticcheck
- unconvert
disable: []

linters-settings:
goimports:
local-prefixes: github.com/NVIDIA/k8s-device-plugin

issues:
exclude-rules:
# We use math/rand instead of crypto/rand for unique names in e2e tests.
- path: tests/e2e/
linters:
- gosec
text: "G404"
# We disable the memory aliasing checks in tests
- path: ".*_test.go"
linters:
- gosec
text: "G601: Implicit memory aliasing in for loop"
# We create world-readable files in tests.
- path: ".*_test.go"
linters:
- gosec
text: "G306: Expect WriteFile permissions to be 0600 or less"
2 changes: 2 additions & 0 deletions api/spec/v1/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ func (vs *VGPUConfigSpec) MatchesDeviceFilter(deviceID types.DeviceID) bool {

// MatchesAllDevices checks a 'VGPUConfigSpec' to see if it matches on 'all' devices.
func (vs *VGPUConfigSpec) MatchesAllDevices() bool {
// nolint: gocritic
switch devices := vs.Devices.(type) {
case string:
return devices == "all"
Expand All @@ -57,6 +58,7 @@ func (vs *VGPUConfigSpec) MatchesAllDevices() bool {

// MatchesDevices checks a 'VGPUConfigSpec' to see if it matches on a device at the specified 'index'.
func (vs *VGPUConfigSpec) MatchesDevices(index int) bool {
// nolint: gocritic
switch devices := vs.Devices.(type) {
case []int:
for _, d := range devices {
Expand Down
3 changes: 2 additions & 1 deletion api/spec/v1/spec_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@
package v1

import (
"testing"

"github.com/stretchr/testify/require"
"sigs.k8s.io/yaml"
"testing"
)

func TestSpec(t *testing.T) {
Expand Down
1 change: 1 addition & 0 deletions cmd/nvidia-vgpu-dm/apply/apply.go
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ func (c *Context) ApplyVGPUConfig() error {
func applyWrapper(c *cli.Context, f *Flags) error {
err := CheckFlags(f)
if err != nil {
//nolint:errcheck
cli.ShowSubcommandHelp(c)
return err
}
Expand Down
2 changes: 2 additions & 0 deletions cmd/nvidia-vgpu-dm/assert/assert.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ func BuildCommand() *cli.Command {
func assertWrapper(c *cli.Context, f *Flags) error {
err := CheckFlags(f)
if err != nil {
//nolint:errcheck
cli.ShowSubcommandHelp(c)
return err
}
Expand Down Expand Up @@ -217,6 +218,7 @@ func WalkSelectedVGPUConfigForEachGPU(vgpuConfig v1.VGPUConfigSpecSlice, f func(

log.Debugf(" GPU %v: %v", i, deviceID)

// nolint: gosec
err = f(&vc, i, deviceID)
if err != nil {
return err
Expand Down
15 changes: 9 additions & 6 deletions deployments/container/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,24 @@ package main

import (
"fmt"
"os"
"os/exec"

log "github.com/sirupsen/logrus"
cli "github.com/urfave/cli/v2"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/clientcmd"
"os"
"os/exec"

"context"
"sync"
"time"

corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/util/wait"
"sync"
"time"
)

const (
Expand Down Expand Up @@ -217,7 +219,7 @@ func start(c *cli.Context) error {
log.Errorf("ERROR: %v", err)
continue
}
log.Infof("Successfuly updated to vGPU config: %s", value)
log.Infof("Successfully updated to vGPU config: %s", value)
}
}

Expand Down Expand Up @@ -251,13 +253,14 @@ func continuouslySyncVGPUConfigChanges(clientset *kubernetes.Clientset, vGPUConf
}

func updateConfig(clientset *kubernetes.Clientset, selectedConfig string) error {
//nolint:errcheck
defer setVGPUConfigStateLabel(clientset)
vGPUConfigState = "failed"

log.Info("Asserting that the requested configuration is present in the configuration file")
err := assertValidConfig(selectedConfig)
if err != nil {
return fmt.Errorf("Unable to validate the selected vGPU configuration")
return fmt.Errorf("unable to validate the selected vGPU configuration")
}

log.Info("Checking if the selected vGPU device configuration is currently applied or not")
Expand Down
3 changes: 2 additions & 1 deletion pkg/types/types_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,9 @@
package types

import (
"github.com/stretchr/testify/require"
"testing"

"github.com/stretchr/testify/require"
)

func TestParseVGPUType(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/types/vgpu_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func (v VGPUConfig) AssertValid() error {
return fmt.Errorf("cannot mix time-sliced and MIG-backed vGPU devices on the same GPU")
}
migBacked = true
} else {
} else if vgpuType.G <= 0 {
if idx > 0 && migBacked {
return fmt.Errorf("cannot mix time-sliced and MIG-backed vGPU devices on the same GPU")
}
Expand Down

0 comments on commit d2bc105

Please sign in to comment.