Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix linting rules in pkg folder #326

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
run:
skip-dirs:
- cmd
linters-settings:
govet:
check-shadowing: true
Expand All @@ -14,6 +17,8 @@ linters-settings:
min-occurrences: 2
misspell:
locale: US
funlen:
lines: 100

linters:
enable-all: true
Expand All @@ -23,3 +28,10 @@ linters:
- gocyclo
- govet
- lll

issues:
exclude-rules:
- path: pkg/clustermanager/ssh_communicator.go
text: "G106: Use of ssh InsecureIgnoreHostKey should be audited"
linters:
- gosec
2 changes: 1 addition & 1 deletion cmd/cluster_add_external_worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ An external server must meet the following requirements:
break
}
externalNode.PrivateIPAddress = fmt.Sprintf("%s.%d", cidrPrefix, nextNode)
coordinator := pkg.NewProgressCoordinator()
coordinator := pkg.NewProgressCoordinator(DebugMode)
hetznerProvider := hetzner.NewHetznerProvider(AppConf.Context, AppConf.Client, *cluster, AppConf.CurrentContext.Token)
clusterManager := clustermanager.NewClusterManagerFromCluster(*cluster, hetznerProvider, sshClient, coordinator)

Expand Down
2 changes: 1 addition & 1 deletion cmd/cluster_add_worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ You can specify the worker server type as in cluster create.`,
}
}

coordinator := pkg.NewProgressCoordinator()
coordinator := pkg.NewProgressCoordinator(DebugMode)
hetznerProvider := hetzner.NewHetznerProvider(AppConf.Context, AppConf.Client, *cluster, AppConf.CurrentContext.Token)
clusterManager := clustermanager.NewClusterManagerFromCluster(*cluster, hetznerProvider, AppConf.SSHClient, coordinator)
err := AppConf.SSHClient.(*clustermanager.SSHCommunicator).CapturePassphrase(sshKeyName)
Expand Down
7 changes: 4 additions & 3 deletions cmd/cluster_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ package cmd
import (
"errors"
"fmt"
"github.com/hetznercloud/hcloud-go/hcloud"
"github.com/xetys/hetzner-kube/pkg/phases"
"log"
"net"
"os"
"time"

"github.com/hetznercloud/hcloud-go/hcloud"
"github.com/xetys/hetzner-kube/pkg/phases"

"github.com/spf13/cobra"
"github.com/xetys/hetzner-kube/pkg"
"github.com/xetys/hetzner-kube/pkg/clustermanager"
Expand Down Expand Up @@ -101,7 +102,7 @@ func RunClusterCreate(cmd *cobra.Command, args []string) {
time.Sleep(10 * time.Second)
}

coordinator := pkg.NewProgressCoordinator()
coordinator := pkg.NewProgressCoordinator(DebugMode)

clusterManager := clustermanager.NewClusterManager(hetznerProvider, sshClient, coordinator, clusterName, haEnabled, isolatedEtcd, cloudInit)
cluster := clusterManager.Cluster()
Expand Down
3 changes: 2 additions & 1 deletion cmd/cluster_phase.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package cmd

import (
"fmt"

"github.com/spf13/cobra"
"github.com/xetys/hetzner-kube/pkg"
"github.com/xetys/hetzner-kube/pkg/clustermanager"
Expand Down Expand Up @@ -38,7 +39,7 @@ func getCommonPhaseDependencies(steps int, cmd *cobra.Command, args []string) (c
FatalOnError(err)
err = AppConf.SSHClient.(*clustermanager.SSHCommunicator).CapturePassphrase(masterNode.SSHKeyName)
FatalOnError(err)
coordinator := pkg.NewProgressCoordinator()
coordinator := pkg.NewProgressCoordinator(DebugMode)

for _, node := range provider.GetAllNodes() {
coordinator.StartProgress(node.Name, steps)
Expand Down
2 changes: 1 addition & 1 deletion cmd/cluster_phase_install_masters.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ var installMastersPhaseCommand = &cobra.Command{
if err != nil {
return err
}
coordinator := pkg.NewProgressCoordinator()
coordinator := pkg.NewProgressCoordinator(DebugMode)

for _, node := range provider.GetAllNodes() {
steps := 3
Expand Down
2 changes: 1 addition & 1 deletion cmd/cluster_phase_install_workers.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ var installWorkersCommand = &cobra.Command{
if err != nil {
return err
}
coordinator := pkg.NewProgressCoordinator()
coordinator := pkg.NewProgressCoordinator(DebugMode)

for _, node := range provider.GetAllNodes() {
steps := 2
Expand Down
2 changes: 1 addition & 1 deletion cmd/cluster_phase_setup_ha.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ var setupHAPhaseCommand = &cobra.Command{
if err != nil {
return err
}
coordinator := pkg.NewProgressCoordinator()
coordinator := pkg.NewProgressCoordinator(DebugMode)

for _, node := range provider.GetAllNodes() {
steps := 2
Expand Down
3 changes: 0 additions & 3 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"github.com/mitchellh/go-homedir"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"github.com/xetys/hetzner-kube/pkg"
)

var cfgFile string
Expand All @@ -21,10 +20,8 @@ var rootCmd = &cobra.Command{

`,
PersistentPreRun: func(cmd *cobra.Command, args []string) {
pkg.RenderProgressBars = false
if DebugMode {
fmt.Println("Running in Debug Mode!")
pkg.RenderProgressBars = true
}
AppConf = NewAppConfig(DebugMode)
},
Expand Down
6 changes: 2 additions & 4 deletions pkg/addons/addon_cert_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,10 @@ type CertmanagerAddon struct {
// NewCertmanagerAddon creates an addon installing cert-manager
func NewCertmanagerAddon(cluster clustermanager.ClusterProvider, communicator clustermanager.NodeCommunicator) ClusterAddon {
masterNode, err := cluster.GetMasterNode()

FatalOnError(err)
return &CertmanagerAddon{masterNode: masterNode, communicator: communicator}
}

func init() {
addAddon(NewCertmanagerAddon)
return &CertmanagerAddon{masterNode: masterNode, communicator: communicator}
}

// Name returns the addons name
Expand Down
4 changes: 0 additions & 4 deletions pkg/addons/addon_dashboard.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ func NewDashboardAddon(provider clustermanager.ClusterProvider, communicator clu
return DashboardAddon{masterNode: masterNode, communicator: communicator}
}

func init() {
addAddon(NewDashboardAddon)
}

// Name returns the addons name
func (addon DashboardAddon) Name() string {
return "dashboard"
Expand Down
8 changes: 4 additions & 4 deletions pkg/addons/addon_docker_registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,10 @@ type DockerregistryAddon struct {
// NewDockerregistryAddon creates an addon providing a private docker registry
func NewDockerregistryAddon(provider clustermanager.ClusterProvider, communicator clustermanager.NodeCommunicator) ClusterAddon {
masterNode, err := provider.GetMasterNode()

FatalOnError(err)
return &DockerregistryAddon{masterNode: masterNode, communicator: communicator}
}

func init() {
addAddon(NewDockerregistryAddon)
return &DockerregistryAddon{masterNode: masterNode, communicator: communicator}
}

// Name returns the addons name
Expand All @@ -47,6 +45,7 @@ func (addon *DockerregistryAddon) URL() string {
func (addon *DockerregistryAddon) Install(args ...string) {
node := *addon.masterNode
_, err := addon.communicator.RunCmd(node, "helm install --set persistence.enabled=true stable/docker-registry")

FatalOnError(err)
log.Println("docker-registry installed")
}
Expand All @@ -55,6 +54,7 @@ func (addon *DockerregistryAddon) Install(args ...string) {
func (addon DockerregistryAddon) Uninstall() {
node := *addon.masterNode
_, err := addon.communicator.RunCmd(node, "helm delete --purge `helm list | grep docker-registry | awk '{print $1;}'`")

FatalOnError(err)
log.Println("docker-registry uninstalled")
}
7 changes: 3 additions & 4 deletions pkg/addons/addon_hcloud_controller_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ type HCloudControllerManagerAddon struct {
// NewHCloudControllerManagerAddon returns a CloudProvider instance with type HCloudControllerManagerAddon
func NewHCloudControllerManagerAddon(provider clustermanager.ClusterProvider, communicator clustermanager.NodeCommunicator) ClusterAddon {
masterNode, err := provider.GetMasterNode()

FatalOnError(err)

return &HCloudControllerManagerAddon{
masterNode: masterNode,
communicator: communicator,
Expand All @@ -27,10 +29,6 @@ func NewHCloudControllerManagerAddon(provider clustermanager.ClusterProvider, co
}
}

func init() {
addAddon(NewHCloudControllerManagerAddon)
}

// Name returns the addons name
func (addon *HCloudControllerManagerAddon) Name() string {
return "hcloud-controller-manager"
Expand Down Expand Up @@ -58,6 +56,7 @@ func (addon *HCloudControllerManagerAddon) Install(args ...string) {
[Service]
Environment="KUBELET_EXTRA_ARGS=--cloud-provider=external"
`

for _, node := range addon.nodes {
err := addon.communicator.WriteFile(node, "/etc/systemd/system/kubelet.service.d/20-hcloud.conf", config, clustermanager.AllRead)
FatalOnError(err)
Expand Down
7 changes: 2 additions & 5 deletions pkg/addons/addon_helm.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ func NewHelmAddon(provider clustermanager.ClusterProvider, communicator clusterm
return HelmAddon{masterNode: masterNode, communicator: communicator}
}

func init() {
addAddon(NewHelmAddon)
}

// Name returns the addons name
func (addon HelmAddon) Name() string {
return "helm"
Expand All @@ -44,10 +40,11 @@ func (addon HelmAddon) URL() string {

// Install performs all steps to install the addon
func (addon HelmAddon) Install(args ...string) {

node := *addon.masterNode
_, err := addon.communicator.RunCmd(node, "curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash")

FatalOnError(err)

serviceAccount := `apiVersion: v1
kind: ServiceAccount
metadata:
Expand Down
9 changes: 3 additions & 6 deletions pkg/addons/addon_hetzner_csi.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ func (addon *HetznerCSIAddon) Install(args ...string) {
if err != nil {
FatalOnError(err)
}

_, err = addon.communicator.RunCmd(*addon.masterNode, "kubectl apply -f https://raw.githubusercontent.com/kubernetes/csi-api/release-1.13/pkg/crd/manifests/csinodeinfo.yaml")
if err != nil {
FatalOnError(err)
Expand All @@ -70,6 +71,7 @@ func (addon *HetznerCSIAddon) Uninstall() {
if err != nil {
FatalOnError(err)
}

_, err = addon.communicator.RunCmd(*addon.masterNode, "kubectl delete -f https://raw.githubusercontent.com/kubernetes/csi-api/release-1.13/pkg/crd/manifests/csinodeinfo.yaml --ignore-not-found")
if err != nil {
FatalOnError(err)
Expand All @@ -80,20 +82,15 @@ func (addon *HetznerCSIAddon) Uninstall() {
if err != nil {
FatalOnError(err)
}

}

// NewHetznerCSIAddon creates an instance of HetznerCSIAddon
func NewHetznerCSIAddon(provider clustermanager.ClusterProvider, communicator clustermanager.NodeCommunicator) ClusterAddon {
masterNode, _ := provider.GetMasterNode()

return &HetznerCSIAddon{
masterNode: masterNode,
communicator: communicator,
provider: provider.(*hetzner.Provider),
}
}

// adding the addon to the global list
func init() {
addAddon(NewHetznerCSIAddon)
}
5 changes: 1 addition & 4 deletions pkg/addons/addon_ingress.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,8 @@ type IngressAddon struct {
func NewIngressAddon(provider clustermanager.ClusterProvider, communicator clustermanager.NodeCommunicator) ClusterAddon {
masterNode, err := provider.GetMasterNode()
FatalOnError(err)
return &IngressAddon{masterNode: masterNode, communicator: communicator}
}

func init() {
addAddon(NewIngressAddon)
return &IngressAddon{masterNode: masterNode, communicator: communicator}
}

// Name returns the addons name
Expand Down
4 changes: 0 additions & 4 deletions pkg/addons/addon_openebs.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,6 @@ func NewOpenEBSAddon(provider clustermanager.ClusterProvider, communicator clust
return &OpenEBSAddon{masterNode: masterNode, communicator: communicator}
}

func init() {
addAddon(NewOpenEBSAddon)
}

// Name returns the addons name
func (addon OpenEBSAddon) Name() string {
return "openebs"
Expand Down
5 changes: 1 addition & 4 deletions pkg/addons/addon_prometheus.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ type PrometheusAddon struct {
func NewPrometheusAddon(provider clustermanager.ClusterProvider, communicator clustermanager.NodeCommunicator) ClusterAddon {
masterNode, err := provider.GetMasterNode()
FatalOnError(err)

return &PrometheusAddon{
masterNode: masterNode,
communicator: communicator,
Expand All @@ -27,10 +28,6 @@ func NewPrometheusAddon(provider clustermanager.ClusterProvider, communicator cl
}
}

func init() {
addAddon(NewPrometheusAddon)
}

// Name returns the addons name
func (addon *PrometheusAddon) Name() string {
return "kube-prometheus"
Expand Down
12 changes: 7 additions & 5 deletions pkg/addons/addon_rook.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import (
"github.com/xetys/hetzner-kube/pkg/clustermanager"
)

const rookSleepTime = 20 * time.Second

// RookAddon installs rook
type RookAddon struct {
masterNode *clustermanager.Node
Expand All @@ -20,10 +22,6 @@ func NewRookAddon(provider clustermanager.ClusterProvider, communicator clusterm
return &RookAddon{masterNode: masterNode, communicator: communicator, nodes: provider.GetAllNodes()}
}

func init() {
addAddon(NewRookAddon)
}

// Name returns the addons name
func (addon RookAddon) Name() string {
return "rook"
Expand Down Expand Up @@ -51,13 +49,15 @@ func (addon RookAddon) Install(args ...string) {
_, err := addon.communicator.RunCmd(node, "kubectl apply -f https://raw.githubusercontent.com/rook/rook/v0.7.1/cluster/examples/kubernetes/rook-operator.yaml")
FatalOnError(err)
fmt.Println("waiting until rook is installed")

for {
_, err := addon.communicator.RunCmd(node, "kubectl get cluster")

if err == nil {
break
}
}

_, err = addon.communicator.RunCmd(node, "kubectl apply -f https://raw.github.com/rook/rook/v0.7.1/cluster/examples/kubernetes/rook-cluster.yaml")
FatalOnError(err)
_, err = addon.communicator.RunCmd(node, "kubectl apply -f https://raw.github.com/rook/rook/v0.7.1/cluster/examples/kubernetes/rook-storageclass.yaml")
Expand All @@ -75,20 +75,22 @@ func (addon RookAddon) Install(args ...string) {
// Uninstall performs all steps to remove the addon
func (addon RookAddon) Uninstall() {
node := *addon.masterNode

addon.communicator.RunCmd(node, "kubectl delete -n rook pool replicapool")
addon.communicator.RunCmd(node, "kubectl delete storageclass rook-block")
addon.communicator.RunCmd(node, "kubectl delete crd clusters.rook.io pools.rook.io objectstores.rook.io filesystems.rook.io volumeattachments.rook.io # ignore errors if on K8s 1.5 and 1.6")
addon.communicator.RunCmd(node, "kubectl delete -n rook-system daemonset rook-agent")
addon.communicator.RunCmd(node, "kubectl delete -f https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/operator.yaml")
addon.communicator.RunCmd(node, "kubectl delete clusterroles rook-agent")
addon.communicator.RunCmd(node, "kubectl delete clusterrolebindings rook-agent")
time.Sleep(20 * time.Second)
time.Sleep(rookSleepTime)
addon.communicator.RunCmd(node, "kubectl delete namespace rook")

for _, node := range addon.nodes {
if node.IsEtcd || node.IsMaster {
continue
}

fmt.Printf("deleting rook on node %s\n", node.Name)
addon.communicator.RunCmd(node, "rm -rf /var/lib/rook")
}
Expand Down
Loading