Skip to content

Commit

Permalink
fix linting rules in pkg folder
Browse files Browse the repository at this point in the history
  • Loading branch information
mavimo committed Mar 29, 2020
1 parent 5ee89ce commit 5b2e9f5
Show file tree
Hide file tree
Showing 35 changed files with 240 additions and 123 deletions.
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

0 comments on commit 5b2e9f5

Please sign in to comment.