Skip to content

Commit

Permalink
Make telemetry opt-out (#140)
Browse files Browse the repository at this point in the history
* MAke telemetry opt-out

Signed-off-by: 6za <53096417+6za@users.noreply.github.com>

* telemetry opt-out

Signed-off-by: 6za <53096417+6za@users.noreply.github.com>

* chore: update flag name, update logic (#141)

Signed-off-by: João Vanzuita <joao@kubeshop.io>

* telemetry out

Signed-off-by: 6za <53096417+6za@users.noreply.github.com>

Co-authored-by: João Paulo Vanzuita <joao@kubeshop.io>
  • Loading branch information
6za and João Paulo Vanzuita committed Jul 20, 2022
1 parent 8c09dc9 commit 8a10689
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 11 deletions.
14 changes: 11 additions & 3 deletions cmd/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,20 @@ to quickly create a Cobra application.`,
log.Panic(err)
}

useTelemetry, err := cmd.Flags().GetBool("use-telemetry")
if err != nil {
log.Panic(err)
}

infoCmd.Run(cmd, args)
progressPrinter.IncrementTracker("step-0", 1)

progressPrinter.AddTracker("step-softserve", "Prepare Temporary Repo ", 4)
sendStartedInstallTelemetry(dryRun)
sendStartedInstallTelemetry(dryRun, useTelemetry)
progressPrinter.IncrementTracker("step-softserve", 1)

if !useTelemetry {
informUser("Telemetry Disabled")
}
directory := fmt.Sprintf("%s/gitops/terraform/base", config.K1FolderPath)
informUser("Creating K8S Cluster")
terraform.ApplyBaseTerraform(dryRun, directory)
Expand Down Expand Up @@ -345,7 +352,7 @@ to quickly create a Cobra application.`,
viper.WriteConfig()
}

sendCompleteInstallTelemetry(dryRun)
sendCompleteInstallTelemetry(dryRun, useTelemetry)
time.Sleep(time.Millisecond * 100)

// prepare data for the handoff report
Expand Down Expand Up @@ -394,6 +401,7 @@ func init() {
createCmd.Flags().Bool("dry-run", false, "set to dry-run mode, no changes done on cloud provider selected")
createCmd.Flags().Bool("skip-gitlab", false, "Skip GitLab lab install and vault setup")
createCmd.Flags().Bool("skip-vault", false, "Skip post-gitClient lab install and vault setup")
createCmd.Flags().Bool("use-telemetry", true, "installer will not send telemetry about this installation")

progressPrinter.GetInstance()
progressPrinter.SetupProgress(4)
Expand Down
8 changes: 4 additions & 4 deletions cmd/createUtils.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,19 @@ func setArgocdCreds(dryRun bool) {
viper.WriteConfig()
}

func sendStartedInstallTelemetry(dryRun bool) {
func sendStartedInstallTelemetry(dryRun bool, useTelemetry bool) {
metricName := "kubefirst.mgmt_cluster_install.started"
if !dryRun {
telemetry.SendTelemetry(viper.GetString("aws.hostedzonename"), metricName)
telemetry.SendTelemetry(useTelemetry, viper.GetString("aws.hostedzonename"), metricName)
} else {
log.Printf("[#99] Dry-run mode, telemetry skipped: %s", metricName)
}
}

func sendCompleteInstallTelemetry(dryRun bool) {
func sendCompleteInstallTelemetry(dryRun bool, useTelemetry bool) {
metricName := "kubefirst.mgmt_cluster_install.completed"
if !dryRun {
telemetry.SendTelemetry(viper.GetString("aws.hostedzonename"), metricName)
telemetry.SendTelemetry(useTelemetry, viper.GetString("aws.hostedzonename"), metricName)
} else {
log.Printf("[#99] Dry-run mode, telemetry skipped: %s", metricName)
}
Expand Down
14 changes: 12 additions & 2 deletions cmd/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,15 @@ to quickly create a Cobra application.`,
log.Panic(err)
}

useTelemetry, err := cmd.Flags().GetBool("use-telemetry")
if err != nil {
log.Panic(err)
}

if !useTelemetry {
log.Println("telemetry is disabled")
}

log.Println("dry run enabled:", dryRun)

pkg.SetupProgress(10)
Expand All @@ -53,7 +62,7 @@ to quickly create a Cobra application.`,
metricDomain := hostedZoneName

if !dryRun {
telemetry.SendTelemetry(metricDomain, metricName)
telemetry.SendTelemetry(useTelemetry, metricDomain, metricName)
} else {
log.Printf("[#99] Dry-run mode, telemetry skipped: %s", metricName)
}
Expand Down Expand Up @@ -175,7 +184,7 @@ to quickly create a Cobra application.`,
metricName = "kubefirst.init.completed"

if !dryRun {
telemetry.SendTelemetry(metricDomain, metricName)
telemetry.SendTelemetry(useTelemetry, metricDomain, metricName)
} else {
log.Printf("[#99] Dry-run mode, telemetry skipped: %s", metricName)
}
Expand Down Expand Up @@ -221,4 +230,5 @@ func init() {

initCmd.Flags().String("cluster-name", "kubefirst", "the cluster name, used to identify resources on cloud provider")
initCmd.Flags().String("version-gitops", "main", "version/branch used on git clone")
initCmd.Flags().Bool("use-telemetry", true, "installer will not send telemetry about this installation")
}
3 changes: 2 additions & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,6 @@ func init() {
cobra.OnInitialize()

// Cobra also supports local flags, which will only run, when this action is called directly.
rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")
rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")

}
8 changes: 7 additions & 1 deletion internal/telemetry/telemetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@ import (
)

// SendTelemetry post telemetry data
func SendTelemetry(domain, metricName string) {
func SendTelemetry(useTelemetry bool, domain string, metricName string) {

if !useTelemetry {
log.Println("Telemetry disable by user choice, nothing was sent")
return
}

log.Println("SendTelemetry (working...)")

url := "https://metaphor-go-production.kubefirst.io/telemetry"
Expand Down

0 comments on commit 8a10689

Please sign in to comment.