Просмотр исходного кода

Remove dependency on cli to fix build (#3414)

Feroze Mohideen 2 лет назад
Родитель
Сommit
bc4e0da432
2 измененных файлов с 32 добавлено и 2 удалено
  1. 5 2
      internal/kubernetes/agent.go
  2. 27 0
      internal/kubernetes/utils.go

+ 5 - 2
internal/kubernetes/agent.go

@@ -18,7 +18,6 @@ import (
 	goerrors "errors"
 
 	"github.com/porter-dev/porter/api/server/shared/websocket"
-	"github.com/porter-dev/porter/cli/cmd/utils"
 	"github.com/porter-dev/porter/internal/models"
 	"github.com/porter-dev/porter/internal/registry"
 	"github.com/porter-dev/porter/internal/repository"
@@ -2116,8 +2115,12 @@ func (a *Agent) createEphemeralPodFromExisting(
 	newPod := existing.DeepCopy()
 
 	// only copy the pod spec, overwrite metadata
+	suffix, err := RandomString(4)
+	if err != nil {
+		return nil, err
+	}
 	newPod.ObjectMeta = metav1.ObjectMeta{
-		Name:      strings.ToLower(fmt.Sprintf("%s-copy-%s", existing.ObjectMeta.Name, utils.String(4))),
+		Name:      strings.ToLower(fmt.Sprintf("%s-copy-%s", existing.ObjectMeta.Name, suffix)),
 		Namespace: existing.ObjectMeta.Namespace,
 	}
 

+ 27 - 0
internal/kubernetes/utils.go

@@ -0,0 +1,27 @@
+package kubernetes
+
+import (
+	"crypto/rand"
+	"math/big"
+)
+
+const charset = "abcdefghijklmnopqrstuvwxyz" +
+	"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+
+func stringWithCharset(length int, charset string) (string, error) {
+	b := make([]byte, length)
+	for i := range b {
+		idx, err := rand.Int(rand.Reader, big.NewInt(int64(len(charset))))
+		if err != nil {
+			return "", err
+		}
+		b[i] = charset[idx.Int64()]
+	}
+	return string(b), nil
+}
+
+// RandomString returns a random string, pulling from a standard alphanumeric charset
+// [a-zA-Z0-9]
+func RandomString(length int) (string, error) {
+	return stringWithCharset(length, charset)
+}