From 72c01e26573c5b52fc97b389dc8cf5e569ad77cb Mon Sep 17 00:00:00 2001
From: Mateusz Urbanek <mateusz.urbanek.98@gmail.com>
Date: Mon, 3 Jul 2023 21:07:41 +0200
Subject: [PATCH] fix: bump go.mod path to v2 (#431)

The path in `go.mod` should be ended in `/v2` suffix, as per [go.mod
module version numbers](https://go.dev/doc/modules/version-numbers).

---------

Signed-off-by: Mateusz Urbanek <mateusz.urbanek.98@gmail.com>
---
 .goreleaser.yaml                    |  6 +++---
 Earthfile                           |  2 +-
 cli/kairosctl/main.go               |  4 ++--
 go.mod                              |  2 +-
 internal/cli/config_test.go         |  2 +-
 internal/cli/recovery_darwin.go     |  8 ++++++++
 internal/cli/rotate.go              |  6 +++---
 internal/cli/start.go               |  5 +++--
 internal/provider/bootstrap.go      |  8 ++++----
 internal/provider/bootstrap_test.go |  4 ++--
 internal/provider/challenge.go      |  2 +-
 internal/provider/challenge_test.go |  4 ++--
 internal/provider/p2p.go            |  6 +++---
 internal/role/auto.go               |  2 +-
 internal/role/p2p/common.go         |  2 +-
 internal/role/p2p/kubevip.go        |  4 ++--
 internal/role/p2p/master.go         |  4 ++--
 internal/role/p2p/worker.go         |  4 ++--
 internal/role/schedule.go           |  2 +-
 main.go                             |  4 ++--
 tests/e2e/ha_test.go                |  4 ++--
 tests/e2e/proxmox.go                | 15 ++++++++++++---
 22 files changed, 59 insertions(+), 41 deletions(-)
 create mode 100644 internal/cli/recovery_darwin.go

diff --git a/.goreleaser.yaml b/.goreleaser.yaml
index 34d37c7..5920590 100644
--- a/.goreleaser.yaml
+++ b/.goreleaser.yaml
@@ -1,7 +1,7 @@
 # Make sure to check the documentation at http://goreleaser.com
 builds:
   - ldflags:
-      - -w -s -X "github.com/kairos-io/provider-kairos/internal/cli.VERSION={{.Env.VERSION}}"
+      - -w -s -X "github.com/kairos-io/provider-kairos/v2/internal/cli.VERSION={{.Env.VERSION}}"
     env:
       - CGO_ENABLED=0
     goos:
@@ -9,7 +9,7 @@ builds:
       - windows
     goarch:
       - amd64
-      - 386
+      - '386'
     main: ./
     id: "kairos-cli"
     binary: "kairos-cli"
@@ -22,7 +22,7 @@ builds:
       - windows
     goarch:
       - amd64
-      - 386
+      - '386'
     main: ./cli/kairosctl
     id: "kairosctl"
     binary: "kairosctl"
diff --git a/Earthfile b/Earthfile
index 4158038..689900c 100644
--- a/Earthfile
+++ b/Earthfile
@@ -93,7 +93,7 @@ BUILD_GOLANG:
     COPY . ./
     ARG CGO_ENABLED
     ARG VERSION
-    ARG LDFLAGS="-s -w -X 'github.com/kairos-io/provider-kairos/internal/cli.VERSION=$VERSION'"
+    ARG LDFLAGS="-s -w -X 'github.com/kairos-io/provider-kairos/v2/internal/cli.VERSION=$VERSION'"
     ARG BIN
     ARG SRC
     ENV CGO_ENABLED=${CGO_ENABLED}
diff --git a/cli/kairosctl/main.go b/cli/kairosctl/main.go
index 451974a..cc545e7 100644
--- a/cli/kairosctl/main.go
+++ b/cli/kairosctl/main.go
@@ -5,8 +5,8 @@ import (
 	"os"
 
 	"github.com/kairos-io/kairos-sdk/bus"
-	iCli "github.com/kairos-io/provider-kairos/internal/cli"
-	"github.com/kairos-io/provider-kairos/internal/provider"
+	iCli "github.com/kairos-io/provider-kairos/v2/internal/cli"
+	"github.com/kairos-io/provider-kairos/v2/internal/provider"
 	"github.com/urfave/cli/v2"
 )
 
diff --git a/go.mod b/go.mod
index 6cf4048..c154d3b 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module github.com/kairos-io/provider-kairos
+module github.com/kairos-io/provider-kairos/v2
 
 go 1.18
 
diff --git a/internal/cli/config_test.go b/internal/cli/config_test.go
index 1a060ab..a38399f 100644
--- a/internal/cli/config_test.go
+++ b/internal/cli/config_test.go
@@ -6,7 +6,7 @@ import (
 	"path/filepath"
 
 	"github.com/kairos-io/kairos/v2/pkg/config"
-	. "github.com/kairos-io/provider-kairos/internal/cli"
+	. "github.com/kairos-io/provider-kairos/v2/internal/cli"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
 	"gopkg.in/yaml.v2"
diff --git a/internal/cli/recovery_darwin.go b/internal/cli/recovery_darwin.go
new file mode 100644
index 0000000..7b65de9
--- /dev/null
+++ b/internal/cli/recovery_darwin.go
@@ -0,0 +1,8 @@
+package cli
+
+import (
+	"os"
+)
+
+func setWinsize(f *os.File, w, h int) {
+}
diff --git a/internal/cli/rotate.go b/internal/cli/rotate.go
index b067505..d7bcdb6 100644
--- a/internal/cli/rotate.go
+++ b/internal/cli/rotate.go
@@ -10,9 +10,9 @@ import (
 	"github.com/kairos-io/kairos-sdk/unstructured"
 	"github.com/kairos-io/kairos/v2/pkg/config"
 	"github.com/kairos-io/kairos/v2/pkg/config/collector"
-	"github.com/kairos-io/provider-kairos/internal/provider"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
-	"github.com/kairos-io/provider-kairos/internal/services"
+	"github.com/kairos-io/provider-kairos/v2/internal/provider"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
+	"github.com/kairos-io/provider-kairos/v2/internal/services"
 	"gopkg.in/yaml.v3"
 )
 
diff --git a/internal/cli/start.go b/internal/cli/start.go
index c9d08b8..4b53685 100644
--- a/internal/cli/start.go
+++ b/internal/cli/start.go
@@ -2,10 +2,11 @@ package cli
 
 import (
 	"fmt"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
 	"os"
 	"strconv"
 
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
+
 	"github.com/kairos-io/kairos-sdk/schema"
 	"github.com/mudler/edgevpn/pkg/node"
 	"github.com/urfave/cli/v2"
@@ -13,7 +14,7 @@ import (
 )
 
 // do not edit version here, it is set by LDFLAGS
-// -X 'github.com/kairos-io/provider-kairos/internal/cli.VERSION=$VERSION'
+// -X 'github.com/kairos-io/provider-kairos/v2/internal/cli.VERSION=$VERSION'
 // see Earthlfile.
 var VERSION = "0.0.0"
 var Author = "Ettore Di Giacinto"
diff --git a/internal/provider/bootstrap.go b/internal/provider/bootstrap.go
index c8aa511..47ad0d5 100644
--- a/internal/provider/bootstrap.go
+++ b/internal/provider/bootstrap.go
@@ -15,11 +15,11 @@ import (
 	"github.com/kairos-io/kairos-sdk/machine/openrc"
 	"github.com/kairos-io/kairos-sdk/machine/systemd"
 	"github.com/kairos-io/kairos-sdk/utils"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
-	"github.com/kairos-io/provider-kairos/internal/role"
-	p2p "github.com/kairos-io/provider-kairos/internal/role/p2p"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
+	"github.com/kairos-io/provider-kairos/v2/internal/role"
+	p2p "github.com/kairos-io/provider-kairos/v2/internal/role/p2p"
 
-	"github.com/kairos-io/provider-kairos/internal/services"
+	"github.com/kairos-io/provider-kairos/v2/internal/services"
 
 	"github.com/kairos-io/kairos/v2/pkg/config"
 	"github.com/mudler/edgevpn/api/client/service"
diff --git a/internal/provider/bootstrap_test.go b/internal/provider/bootstrap_test.go
index 83c00a6..72dfe97 100644
--- a/internal/provider/bootstrap_test.go
+++ b/internal/provider/bootstrap_test.go
@@ -7,8 +7,8 @@ import (
 
 	"github.com/kairos-io/kairos-sdk/bus"
 
-	. "github.com/kairos-io/provider-kairos/internal/provider"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
+	. "github.com/kairos-io/provider-kairos/v2/internal/provider"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
 	"github.com/mudler/go-pluggable"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
diff --git a/internal/provider/challenge.go b/internal/provider/challenge.go
index 33764a1..ca526a4 100644
--- a/internal/provider/challenge.go
+++ b/internal/provider/challenge.go
@@ -6,7 +6,7 @@ import (
 	"github.com/kairos-io/kairos-sdk/bus"
 
 	"github.com/kairos-io/kairos/v2/pkg/config"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
 
 	"github.com/kairos-io/go-nodepair"
 	"github.com/mudler/go-pluggable"
diff --git a/internal/provider/challenge_test.go b/internal/provider/challenge_test.go
index e6f435d..4a80ac6 100644
--- a/internal/provider/challenge_test.go
+++ b/internal/provider/challenge_test.go
@@ -7,9 +7,9 @@ import (
 
 	"github.com/kairos-io/kairos-sdk/bus"
 
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
 
-	. "github.com/kairos-io/provider-kairos/internal/provider"
+	. "github.com/kairos-io/provider-kairos/v2/internal/provider"
 	"github.com/mudler/go-pluggable"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
diff --git a/internal/provider/p2p.go b/internal/provider/p2p.go
index 37bebfd..f3962de 100644
--- a/internal/provider/p2p.go
+++ b/internal/provider/p2p.go
@@ -7,13 +7,13 @@ import (
 	"path/filepath"
 	"strings"
 
-	"github.com/kairos-io/provider-kairos/internal/provider/assets"
+	"github.com/kairos-io/provider-kairos/v2/internal/provider/assets"
 
 	"github.com/kairos-io/kairos-sdk/machine"
 	"github.com/kairos-io/kairos-sdk/machine/systemd"
 	"github.com/kairos-io/kairos-sdk/utils"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
-	"github.com/kairos-io/provider-kairos/internal/services"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
+	"github.com/kairos-io/provider-kairos/v2/internal/services"
 	"gopkg.in/yaml.v3"
 
 	yip "github.com/mudler/yip/pkg/schema"
diff --git a/internal/role/auto.go b/internal/role/auto.go
index 91c740d..b9f2b03 100644
--- a/internal/role/auto.go
+++ b/internal/role/auto.go
@@ -3,7 +3,7 @@ package role
 import (
 	"github.com/kairos-io/kairos/v2/pkg/config"
 
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
 	utils "github.com/mudler/edgevpn/pkg/utils"
 
 	service "github.com/mudler/edgevpn/api/client/service"
diff --git a/internal/role/p2p/common.go b/internal/role/p2p/common.go
index 4f21332..bb83fbd 100644
--- a/internal/role/p2p/common.go
+++ b/internal/role/p2p/common.go
@@ -4,7 +4,7 @@ import (
 	"fmt"
 	"net"
 
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
 )
 
 func guessInterface(pconfig *providerConfig.Config) string {
diff --git a/internal/role/p2p/kubevip.go b/internal/role/p2p/kubevip.go
index 832dcb9..afa9587 100644
--- a/internal/role/p2p/kubevip.go
+++ b/internal/role/p2p/kubevip.go
@@ -8,8 +8,8 @@ import (
 	"strings"
 
 	"github.com/kairos-io/kairos-sdk/utils"
-	"github.com/kairos-io/provider-kairos/internal/assets"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
+	"github.com/kairos-io/provider-kairos/v2/internal/assets"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
 )
 
 func generateKubeVIP(iface, ip string, args []string) (string, error) {
diff --git a/internal/role/p2p/master.go b/internal/role/p2p/master.go
index dee151a..ea2982d 100644
--- a/internal/role/p2p/master.go
+++ b/internal/role/p2p/master.go
@@ -11,8 +11,8 @@ import (
 	"github.com/kairos-io/kairos-sdk/machine"
 	"github.com/kairos-io/kairos-sdk/utils"
 	"github.com/kairos-io/kairos/v2/pkg/config"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
-	"github.com/kairos-io/provider-kairos/internal/role"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
+	"github.com/kairos-io/provider-kairos/v2/internal/role"
 
 	service "github.com/mudler/edgevpn/api/client/service"
 )
diff --git a/internal/role/p2p/worker.go b/internal/role/p2p/worker.go
index a2487ad..ec9171c 100644
--- a/internal/role/p2p/worker.go
+++ b/internal/role/p2p/worker.go
@@ -9,8 +9,8 @@ import (
 	"github.com/kairos-io/kairos-sdk/utils"
 	"github.com/kairos-io/kairos/v2/pkg/config"
 
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
-	"github.com/kairos-io/provider-kairos/internal/role"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
+	"github.com/kairos-io/provider-kairos/v2/internal/role"
 	service "github.com/mudler/edgevpn/api/client/service"
 )
 
diff --git a/internal/role/schedule.go b/internal/role/schedule.go
index 43aff6d..cdfe978 100644
--- a/internal/role/schedule.go
+++ b/internal/role/schedule.go
@@ -6,7 +6,7 @@ import (
 	"time"
 
 	"github.com/kairos-io/kairos/v2/pkg/config"
-	providerConfig "github.com/kairos-io/provider-kairos/internal/provider/config"
+	providerConfig "github.com/kairos-io/provider-kairos/v2/internal/provider/config"
 	"github.com/mudler/edgevpn/api/client/service"
 	"github.com/samber/lo"
 )
diff --git a/main.go b/main.go
index 11c1e5a..0b44c81 100644
--- a/main.go
+++ b/main.go
@@ -5,8 +5,8 @@ import (
 	"os"
 
 	"github.com/kairos-io/kairos-sdk/bus"
-	"github.com/kairos-io/provider-kairos/internal/cli"
-	"github.com/kairos-io/provider-kairos/internal/provider"
+	"github.com/kairos-io/provider-kairos/v2/internal/cli"
+	"github.com/kairos-io/provider-kairos/v2/internal/provider"
 )
 
 func checkErr(err error) {
diff --git a/tests/e2e/ha_test.go b/tests/e2e/ha_test.go
index 4467acf..1d795fb 100644
--- a/tests/e2e/ha_test.go
+++ b/tests/e2e/ha_test.go
@@ -157,7 +157,7 @@ var _ = Describe("kairos decentralized k8s test", Label("proxmox-ha-test"), func
 			VMIDS = append(VMIDS, startVMS([]byte(genConfig(freeIP, pubkey, networkToken, true, false, false, true)), 4)...)
 
 			By("Waiting for HA control-plane to be available", func() {
-				ping(freeIP)
+				ping(freeIP, ControlVM)
 			})
 
 			Eventually(func() string {
@@ -196,7 +196,7 @@ var _ = Describe("kairos decentralized k8s test", Label("proxmox-ha-test"), func
 
 			// 10.1.0.1 will be our IP, and DHCP will assign then 10.1.0.2 to one of the nodes of the cluster.
 			By("Waiting for HA control-plane to be available", func() {
-				ping("10.1.0.2")
+				ping("10.1.0.2", ControlVM)
 			})
 
 			Eventually(func() string {
diff --git a/tests/e2e/proxmox.go b/tests/e2e/proxmox.go
index b69499b..63e8d15 100644
--- a/tests/e2e/proxmox.go
+++ b/tests/e2e/proxmox.go
@@ -18,8 +18,10 @@ import (
 	"github.com/luthermonson/go-proxmox"
 )
 
+var randGen *rand.Rand
+
 func init() {
-	rand.Seed(time.Now().UnixNano())
+	randGen = rand.New(rand.NewSource(time.Now().UnixNano()))
 }
 
 var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
@@ -27,7 +29,7 @@ var letterRunes = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
 func RandStringRunes(n int) string {
 	b := make([]rune, n)
 	for i := range b {
-		b[i] = letterRunes[rand.Intn(len(letterRunes))]
+		b[i] = letterRunes[randGen.Intn(len(letterRunes))]
 	}
 	return string(b)
 }
@@ -86,6 +88,10 @@ func uploadCloudInitISO(isoname string, cc []byte, storage *proxmox.Storage) err
 	}
 
 	tup, err := storage.Upload("iso", filepath.Join(temp, isoname))
+	if err != nil {
+		return err
+	}
+
 	return tup.WaitFor(300)
 }
 
@@ -159,6 +165,9 @@ func getNode() (*proxmox.Node, *proxmox.Client, error) {
 	fmt.Println(version.Release) // 6.3
 
 	statuses, err := client.Nodes()
+	if err != nil {
+		return nil, nil, err
+	}
 
 	for _, st := range statuses {
 		fmt.Println(st.Node)
@@ -225,7 +234,7 @@ EOF`)
 
 }
 
-func ping(ip string) {
+func ping(ip string, ControlVM *SSHConn) {
 	EventuallyWithOffset(1, func() string {
 		out, err := ControlVM.Command(fmt.Sprintf("ping %s -c 3", ip))
 		if err != nil {