$ export GO111MODULE=on
$ go get github.com/golangci/golangci-lint/cmd/golangci-lint@master
$ golangci-lint run
hack/gencrd/main.go:72:23: Error return value of `crdutils.MarshallCrd` is not checked (errcheck)
crdutils.MarshallCrd(f, crd, "yaml")
^
hack/gendocs/main.go:94:27: Error return value of `doc.GenMarkdownTreeCustom` is not checked (errcheck)
doc.GenMarkdownTreeCustom(rootCmd, dir, filePrepender, linkHandler)
^
pkg/backup/backup.go:304:19: Error return value of `push.Collectors` is not checked (errcheck)
push.Collectors(c.JobName(restic),
^
pkg/backup/backup.go:313:37: Error return value of `stash_util.UpdateRepositoryStatus` is not checked (errcheck)
stash_util.UpdateRepositoryStatus(c.stashClient.StashV1alpha1(), repository, func(in *api.RepositoryStatus) *api.RepositoryStatus {
^
pkg/backup/scheduler.go:93:28: Error return value of `c.setupAndRunScheduler` is not checked (errcheck)
c.setupAndRunScheduler(ctx.Done())
^
pkg/backup/scheduler.go:142:73: Error return value of `c.checkOnceForScheduler` is not checked (errcheck)
_, err = c.cron.AddFunc("0 0 */3 * *", func() { c.checkOnceForScheduler() })
^
pkg/cmds/root.go:34:22: Error return value of `scheme.AddToScheme` is not checked (errcheck)
scheme.AddToScheme(clientsetscheme.Scheme)
^
pkg/cmds/root.go:35:22: Error return value of `scheme.AddToScheme` is not checked (errcheck)
scheme.AddToScheme(legacyscheme.Scheme)
^
pkg/cmds/root.go:36:24: Error return value of `ocscheme.AddToScheme` is not checked (errcheck)
ocscheme.AddToScheme(clientsetscheme.Scheme)
^
pkg/cmds/root.go:37:24: Error return value of `ocscheme.AddToScheme` is not checked (errcheck)
ocscheme.AddToScheme(legacyscheme.Scheme)
^
pkg/controller/namespaces.go:29:67: Error return value of `(stash.appscode.dev/stash/client/clientset/versioned/typed/stash/v1alpha1.ResticInterface).Delete` is not checked (errcheck)
c.stashClient.StashV1alpha1().Restics(item.Namespace).Delete(item.Name, &metav1.DeleteOptions{})
^
pkg/controller/recoveries.go:144:22: Error return value of `eventer.CreateEvent` is not checked (errcheck)
eventer.CreateEvent(c.kubeClient, RecoveryEventComponent, rec, core.EventTypeWarning, eventer.EventReasonJobFailedToCreate, err.Error())
^
pkg/controller/recoveries.go:157:34: Error return value of `stash_util.UpdateRecoveryStatus` is not checked (errcheck)
stash_util.UpdateRecoveryStatus(c.stashClient.StashV1alpha1(), rec, func(in *api.RecoveryStatus) *api.RecoveryStatus {
^
pkg/controller/recoveries.go:163:23: Error return value of `eventer.CreateEvent` is not checked (errcheck)
eventer.CreateEvent(c.kubeClient, RecoveryEventComponent, ref, core.EventTypeWarning, eventer.EventReasonJobFailedToCreate, err.Error())
^
pkg/controller/recoveries.go:174:22: Error return value of `eventer.CreateEvent` is not checked (errcheck)
eventer.CreateEvent(c.kubeClient, RecoveryEventComponent, rec, core.EventTypeWarning, eventer.EventReasonJobFailedToCreate, err.Error())
^
pkg/controller/recoveries.go:189:33: Error return value of `stash_util.UpdateRecoveryStatus` is not checked (errcheck)
stash_util.UpdateRecoveryStatus(c.stashClient.StashV1alpha1(), rec, func(in *api.RecoveryStatus) *api.RecoveryStatus {
^
pkg/controller/restics.go:135:28: Error return value of `c.EnsureScaledownCronJob` is not checked (errcheck)
c.EnsureScaledownCronJob(restic)
^
pkg/controller/sidecar.go:303:50: Error return value of `(k8s.io/client-go/kubernetes/typed/core/v1.PodInterface).Delete` is not checked (errcheck)
c.kubeClient.CoreV1().Pods(w.Namespace).Delete(pod.Name, &metav1.DeleteOptions{})
^
pkg/recovery/recovery.go:65:34: Error return value of `stash_util.UpdateRecoveryStatus` is not checked (errcheck)
stash_util.UpdateRecoveryStatus(c.stashClient, recovery, func(in *api.RecoveryStatus) *api.RecoveryStatus {
^
pkg/recovery/recovery.go:183:31: Error return value of `stash_util.SetRecoveryStats` is not checked (errcheck)
stash_util.SetRecoveryStats(c.stashClient, recovery, path, d, api.RecoveryFailed)
^
pkg/recovery/recovery.go:185:31: Error return value of `stash_util.SetRecoveryStats` is not checked (errcheck)
stash_util.SetRecoveryStats(c.stashClient, recovery, path, d, api.RecoverySucceeded)
^
pkg/server/server.go:43:23: Error return value of `admission.AddToScheme` is not checked (errcheck)
admission.AddToScheme(Scheme)
^
test/e2e/daemonset_test.go:151:18: Error return value of `f.DeleteRestic` is not checked (errcheck)
f.DeleteRestic(restic.ObjectMeta)
^
test/e2e/daemonset_test.go:364:21: Error return value of `f.DeleteDaemonSet` is not checked (errcheck)
f.DeleteDaemonSet(daemon.ObjectMeta)
^
test/e2e/daemonset_test.go:365:18: Error return value of `f.DeleteRestic` is not checked (errcheck)
f.DeleteRestic(restic.ObjectMeta)
^
test/e2e/daemonset_test.go:366:18: Error return value of `f.DeleteSecret` is not checked (errcheck)
f.DeleteSecret(cred.ObjectMeta)
^
test/e2e/daemonset_test.go:435:21: Error return value of `f.DeleteDaemonSet` is not checked (errcheck)
f.DeleteDaemonSet(daemon.ObjectMeta)
^
test/e2e/daemonset_test.go:436:18: Error return value of `f.DeleteRestic` is not checked (errcheck)
f.DeleteRestic(restic.ObjectMeta)
^
test/e2e/daemonset_test.go:437:18: Error return value of `f.DeleteSecret` is not checked (errcheck)
f.DeleteSecret(cred.ObjectMeta)
^
test/e2e/daemonset_test.go:448:21: Error return value of `f.DeleteDaemonSet` is not checked (errcheck)
f.DeleteDaemonSet(daemon.ObjectMeta)
^
test/e2e/daemonset_test.go:450:18: Error return value of `f.DeleteSecret` is not checked (errcheck)
f.DeleteSecret(cred.ObjectMeta)
^
test/e2e/daemonset_test.go:740:29: Error return value of `f.CleanupRecoveredVolume` is not checked (errcheck)
f.CleanupRecoveredVolume(daemon.ObjectMeta)
^
test/e2e/daemonset_test.go:744:21: Error return value of `f.DeleteRecovery` is not checked (errcheck)
f.DeleteRecovery(recovery.ObjectMeta)
^
test/e2e/daemonset_test.go:828:29: Error return value of `f.CleanupRecoveredVolume` is not checked (errcheck)
f.CleanupRecoveredVolume(daemon.ObjectMeta)
^
test/e2e/daemonset_test.go:832:21: Error return value of `f.DeleteRecovery` is not checked (errcheck)
f.DeleteRecovery(recovery.ObjectMeta)
^
test/e2e/daemonset_test.go:849:30: Error return value of `f.WaitUntilDaemonPodReady` is not checked (errcheck)
f.WaitUntilDaemonPodReady(daemon.ObjectMeta)
^
test/e2e/daemonset_test.go:925:29: Error return value of `f.CleanupRecoveredVolume` is not checked (errcheck)
f.CleanupRecoveredVolume(daemon.ObjectMeta)
^
test/e2e/daemonset_test.go:929:21: Error return value of `f.DeleteRecovery` is not checked (errcheck)
f.DeleteRecovery(recovery.ObjectMeta)
^
test/e2e/daemonset_test.go:930:22: Error return value of `f.DeleteNamespace` is not checked (errcheck)
f.DeleteNamespace(recoveryNamespace.Name)
^
test/e2e/deployment_test.go:403:22: Error return value of `f.DeleteDeployment` is not checked (errcheck)
f.DeleteDeployment(deployment.ObjectMeta)
^
test/e2e/deployment_test.go:474:22: Error return value of `f.DeleteDeployment` is not checked (errcheck)
f.DeleteDeployment(deployment.ObjectMeta)
^
test/e2e/deployment_test.go:487:22: Error return value of `f.DeleteDeployment` is not checked (errcheck)
f.DeleteDeployment(deployment.ObjectMeta)
^
test/e2e/deployment_test.go:1158:39: Error return value of `apps_util.WaitUntilDeploymentReady` is not checked (errcheck)
apps_util.WaitUntilDeploymentReady(f.KubeClient, deployment.ObjectMeta)
^
test/e2e/deployment_test.go:1245:22: Error return value of `f.DeleteNamespace` is not checked (errcheck)
f.DeleteNamespace(recoveryNamespace.Name)
^
test/e2e/deployment_test.go:1363:39: Error return value of `apps_util.WaitUntilDeploymentReady` is not checked (errcheck)
apps_util.WaitUntilDeploymentReady(f.KubeClient, deployment.ObjectMeta)
^
test/e2e/e2e_suite_test.go:47:20: Error return value of `scheme.AddToScheme` is not checked (errcheck)
scheme.AddToScheme(clientsetscheme.Scheme)
^
test/e2e/framework/minio_server.go:70:36: Error return value of `apps_util.WaitUntilDeploymentReady` is not checked (errcheck)
apps_util.WaitUntilDeploymentReady(fi.KubeClient, mdeploy.ObjectMeta)
^
test/e2e/framework/minio_server.go:264:31: Error return value of `fi.DeleteSecretForMinioServer` is not checked (errcheck)
fi.DeleteSecretForMinioServer(mcred.ObjectMeta)
^
test/e2e/framework/minio_server.go:265:28: Error return value of `fi.DeletePVCForMinioServer` is not checked (errcheck)
fi.DeletePVCForMinioServer(mpvc.ObjectMeta)
^
test/e2e/framework/minio_server.go:266:35: Error return value of `fi.DeleteDeploymentForMinioServer` is not checked (errcheck)
fi.DeleteDeploymentForMinioServer(mdeploy.ObjectMeta)
^
pkg/scale/scale.go:33:2: `locked` is unused (structcheck)
locked chan struct{}
^
hack/gencrd/main.go:77:6: `generateSwaggerJson` is unused (deadcode)
func generateSwaggerJson() {
^
test/e2e/e2e_suite_test.go:33:2: `ctrl` is unused (deadcode)
ctrl *controller.StashController
^
test/e2e/e2e_suite_test.go:35:2: `storageClass` is unused (deadcode)
storageClass = "standard"
^
test/e2e/volume_test.go:15:2: `bpv` is unused (deadcode)
bpv *core.PersistentVolume
^
hack/gencrd/main.go:109:4: composites: `kmodules.xyz/client-go/openapi.TypeInfo` composite literal uses unkeyed fields (govet)
{stashv1alpha1.SchemeGroupVersion, stashv1alpha1.ResourcePluralRestic, stashv1alpha1.ResourceKindRestic, true},
^
hack/gencrd/main.go:110:4: composites: `kmodules.xyz/client-go/openapi.TypeInfo` composite literal uses unkeyed fields (govet)
{stashv1alpha1.SchemeGroupVersion, stashv1alpha1.ResourcePluralRepository, stashv1alpha1.ResourceKindRepository, true},
^
hack/gencrd/main.go:111:4: composites: `kmodules.xyz/client-go/openapi.TypeInfo` composite literal uses unkeyed fields (govet)
{stashv1alpha1.SchemeGroupVersion, stashv1alpha1.ResourcePluralRecovery, stashv1alpha1.ResourceKindRecovery, true},
^
pkg/restore/restore.go:213:22: nilness: nil dereference in dynamic method call (govet)
Error: err.Error(),
^
pkg/controller/rbac_jobs.go:52:2: ineffectual assignment to `err` (ineffassign)
err = c.ensureCronJobRoleBinding(resource, sa)
^
pkg/backup/backupsession.go:400:5: ineffectual assignment to `err` (ineffassign)
_, err = v1beta1_util.UpdateBackupSessionStatusForHost(c.StashClient.StashV1beta1(), backupSession, hostStats)
^
pkg/registry/snapshot/snapshot.go:91:2: ineffectual assignment to `snapshot` (ineffassign)
snapshot := &repositories.Snapshot{}
^
pkg/registry/snapshot/utils.go:45:25: ineffectual assignment to `err` (ineffassign)
hostName, smartPrefix, err := workload.HostnamePrefix(info.PodName, info.NodeName)
^
apis/stash/v1beta1/types_helpers.go:5:2: S1008: should use 'return <expr>' instead of 'if <expr> { return <bool> }; return <bool>' (gosimple)
if t.Kind == "Deployment" {
^
pkg/backup/backup.go:225:73: SA9002: file mode '644' evaluates to 01204; did you mean '0644'? (staticcheck)
if err := ioutil.WriteFile(c.opt.ScratchDir+"/.stash", []byte("test"), 644); err != nil {
^
pkg/backup/backup.go:260:5: S1002: should omit comparison to bool constant, can be simplified to `restic.Spec.Paused` (gosimple)
if restic.Spec.Paused == true {
^
pkg/backup/backup.go:387:9: S1012: should use `time.Since` instead of `time.Now().Sub` (gosimple)
g.Set(time.Now().Sub(startTime).Seconds())
^
pkg/controller/appbindings.go:75:37: S1019: should use make(map[string]string) instead (gosimple)
inputs := make(map[string]string, 0)
^
pkg/controller/backup.go:66:37: S1019: should use make(map[string]string) instead (gosimple)
inputs := make(map[string]string, 0)
^
pkg/controller/pvc.go:89:37: S1019: should use make(map[string]string) instead (gosimple)
inputs := make(map[string]string, 0)
^
pkg/recovery/recovery.go:195:9: S1012: should use `time.Since` instead of `time.Now().Sub` (gosimple)
return time.Now().Sub(startTime), err
^
pkg/restore/restore.go:216:5: SA4006: this value of `err` is never used (staticcheck)
_, err = stash_util_v1beta1.UpdateRestoreSessionStatusForHost(opt.StashClient.StashV1beta1(), restoreSession, hostStats)
^
test/e2e/framework/backup_session.go:27:4: S1008: should use 'return <expr>' instead of 'if <expr> { return <bool> }; return <bool>' (gosimple)
if len(backupsnlist.Items) > 0 {
^
test/e2e/framework/util.go:345:3: S1011: should replace loop with `paths = append(paths, restoreSession.Spec.Rules[i].Paths...)` (gosimple)
for _, p := range restoreSession.Spec.Rules[i].Paths {
^
test/e2e/snapshots_test.go:279:4: SA4006: this value of `singleSnapshot` is never used (staticcheck)
singleSnapshot, err = f.StashClient.RepositoriesV1alpha1().Snapshots(f.Namespace()).Get(snapshotToDelete, metav1.GetOptions{})
^
ERRO Deadline exceeded: try increase it by passing --deadline option
I run