Skip to content

Commit

Permalink
add query param
Browse files Browse the repository at this point in the history
  • Loading branch information
AdheipSingh committed Dec 16, 2024
1 parent 092329d commit 857af15
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 12 deletions.
32 changes: 24 additions & 8 deletions cmd/installer.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package cmd

import (
"encoding/base64"
"encoding/json"
"fmt"
"net"
"os"
Expand Down Expand Up @@ -45,13 +47,13 @@ var InstallOssCmd = &cobra.Command{
selectedPlan.QueryPerformance, selectedPlan.CPUAndMemorySpecs)

// Get namespace and chart values from installer
namespace, deployment, chartValues := installer.Installer(selectedPlan)
valuesHolder, chartValues := installer.Installer(selectedPlan)

// Helm application configuration
apps := []helm.Helm{
{
ReleaseName: "parseable",
Namespace: namespace,
Namespace: valuesHolder.ParseableSecret.Namespace,
RepoName: "parseable",
RepoURL: "https://charts.parseable.com",
ChartName: "parseable",
Expand All @@ -61,7 +63,7 @@ var InstallOssCmd = &cobra.Command{
}

// Create a spinner
spinner := createDeploymentSpinner(namespace)
spinner := createDeploymentSpinner(valuesHolder.ParseableSecret.Namespace)

// Redirect standard output if not in verbose mode
var oldStdout *os.File
Expand Down Expand Up @@ -105,14 +107,14 @@ var InstallOssCmd = &cobra.Command{
}

// Print success banner
printSuccessBanner(namespace, deployment, apps[0].Version)
printSuccessBanner(valuesHolder.ParseableSecret.Namespace, string(valuesHolder.DeploymentType), apps[0].Version, valuesHolder.ParseableSecret.Username, valuesHolder.ParseableSecret.Password)

return nil
},
}

// printSuccessBanner remains the same as in the original code
func printSuccessBanner(namespace, deployment, version string) {
func printSuccessBanner(namespace, deployment, version, username, password string) {
var ingestionUrl, serviceName string
if deployment == "standalone" {
ingestionUrl = "parseable." + namespace + ".svc.cluster.local"
Expand All @@ -122,6 +124,19 @@ func printSuccessBanner(namespace, deployment, version string) {
serviceName = "parseable-query-svc"
}

// Encode credentials to Base64
credentials := map[string]string{
"username": username,
"password": password,
}
credentialsJSON, err := json.Marshal(credentials)
if err != nil {
fmt.Printf("failed to marshal credentials: %v\n", err)
return
}

base64EncodedString := base64.StdEncoding.EncodeToString(credentialsJSON)

fmt.Println("\n" + common.Green + "🎉 Parseable Deployment Successful! 🎉" + common.Reset)
fmt.Println(strings.Repeat("=", 50))

Expand All @@ -140,13 +155,13 @@ func printSuccessBanner(namespace, deployment, version string) {
localPort := "8000"
fmt.Printf(common.Green+"Port-forwarding %s service on port %s...\n"+common.Reset, serviceName, localPort)

err := startPortForward(namespace, serviceName, "80", localPort)
err = startPortForward(namespace, serviceName, "80", localPort)
if err != nil {

Check failure on line 159 in cmd/installer.go

View workflow job for this annotation

GitHub Actions / Build and Test the Go code

fmt.Printf does not support error-wrapping directive %w
fmt.Printf("failed to port-forward service: %w", err)
}

// Redirect to UI
localURL := fmt.Sprintf("http://localhost:%s", localPort)
localURL := fmt.Sprintf("http://localhost:%s/login?q=%s", localPort, base64EncodedString)
fmt.Printf(common.Green+"Opening Parseable UI at %s\n"+common.Reset, localURL)
openBrowser(localURL)

Expand Down Expand Up @@ -214,9 +229,10 @@ func startPortForward(namespace, serviceName, remotePort, localPort string) erro
if err == nil {
conn.Close() // Connection successful, break out of the loop
fmt.Println(common.Green + "Port-forwarding successfully established!")
time.Sleep(5 * time.Second) // some delay
return nil
}
time.Sleep(1 * time.Second) // Wait before retrying
time.Sleep(3 * time.Second) // Wait before retrying
}

// If we reach here, port-forwarding failed
Expand Down
9 changes: 5 additions & 4 deletions pkg/installer/installer.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (
)

// Installer orchestrates the installation process
func Installer(_ Plan) (namespace, deployment string, chartValues []string) {
func Installer(_ Plan) (values *ValuesHolder, chartValues []string) {

clusterName, err := promptK8sContext()
if err != nil {
Expand All @@ -47,6 +47,7 @@ func Installer(_ Plan) (namespace, deployment string, chartValues []string) {
log.Fatalf("Failed to prompt for namespace and credentials: %v", err)
}

fmt.Println(pbSecret.Namespace)
// Prompt for agent deployment
agent, agentValues, err := promptAgentDeployment(deployValues, deployment, pbSecret.Namespace)
if err != nil {
Expand Down Expand Up @@ -76,11 +77,11 @@ func Installer(_ Plan) (namespace, deployment string, chartValues []string) {
ParseableSecret: *pbSecret,
}

if err := writeParseableConfig(valuesHolder); err != nil {
if err := writeParseableConfig(&valuesHolder); err != nil {
log.Fatalf("Failed to write Parseable configuration: %v", err)
}

return pbSecret.Namespace, deployment, append(chartValues, storeConfigValues...)
return &valuesHolder, append(chartValues, storeConfigValues...)
}

// promptStorageClass prompts the user to enter a Kubernetes storage class
Expand Down Expand Up @@ -582,7 +583,7 @@ func promptForInput(label string) string {
return strings.TrimSpace(input)
}

func writeParseableConfig(valuesHolder ValuesHolder) error {
func writeParseableConfig(valuesHolder *ValuesHolder) error {
// Create config directory
configDir := filepath.Join(os.Getenv("HOME"), ".parseable")
if err := os.MkdirAll(configDir, 0755); err != nil {
Expand Down

0 comments on commit 857af15

Please sign in to comment.