Skip to content
This repository has been archived by the owner on Nov 1, 2022. It is now read-only.

Remove telemetry #3636

Merged
merged 1 commit into from
Aug 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions cmd/fluxd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -640,10 +640,10 @@ func main() {
// until we have failed or succeeded.
updateCheckLogger := log.With(logger, "component", "checkpoint")
checkpointFlags := map[string]string{
"cluster-version": clusterVersion,
"git-configured": strconv.FormatBool(*gitURL != ""),
"cluster-version": "XXXXX",
"git-configured": "XXXXX",
}
checkpoint.CheckForUpdates(product, version, checkpointFlags, updateCheckLogger)
checkpoint.CheckForUpdates(product, "XXXXX", checkpointFlags, updateCheckLogger)

gitRemote := git.Remote{URL: *gitURL}
gitConfig := git.Config{
Expand Down
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ require (
github.com/stretchr/testify v1.8.0
// Latest versions of github.com/weaveworks/common are not supporterd by Flux.
github.com/weaveworks/common v0.0.0-20190410110702-87611edc252e
github.com/weaveworks/go-checkpoint v0.0.0-20220223124739-fd9899e2b4f2
github.com/whilp/git-urls v1.0.0
github.com/xeipuuv/gojsonschema v1.2.0
go.mozilla.org/sops/v3 v3.7.3
Expand Down
53 changes: 38 additions & 15 deletions pkg/checkpoint/checkpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,39 +4,62 @@ import (
"time"

"github.com/go-kit/kit/log"
"github.com/weaveworks/go-checkpoint"
)

const (
versionCheckPeriod = 6 * time.Hour
)

func CheckForUpdates(product, version string, extra map[string]string, logger log.Logger) *checkpoint.Checker {
handleResponse := func(r *checkpoint.CheckResponse, err error) {
if err != nil {
logger.Log("err", err)
return
}
if r.Outdated {
logger.Log("msg", "update available", "latest", r.CurrentVersion, "URL", r.CurrentDownloadURL)
return
}
logger.Log("msg", "up to date", "latest", r.CurrentVersion)
func CheckForUpdates(product, version string, extra map[string]string, logger log.Logger) *checker {
handleResponse := func() {
logger.Log("msg", "Flux v1 is deprecated, please upgrade to v2", "latest", "v2", "URL", "https://fluxcd.io/docs/migration/")
}

flags := map[string]string{
"kernel-version": getKernelVersion(),
"kernel-version": "XXXXX",
}
for k, v := range extra {
flags[k] = v
}

params := checkpoint.CheckParams{
params := checkParams{
Product: product,
Version: version,
SignatureFile: "",
Flags: flags,
}

return checkpoint.CheckInterval(&params, versionCheckPeriod, handleResponse)
return checkInterval(&params, versionCheckPeriod, handleResponse)
}

func checkInterval(p *checkParams, interval time.Duration,
cb func()) *checker {

state := &checker{
doneCh: make(chan struct{}),
}

if isCheckDisabled() {
return state
}

go func() {
cb()

for {
after := randomStagger(interval)
state.nextCheckAtLock.Lock()
state.nextCheckAt = time.Now().Add(after)
state.nextCheckAtLock.Unlock()

select {
case <-time.After(after):
cb()
case <-state.doneCh:
return
}
}
}()

return state
}
13 changes: 0 additions & 13 deletions pkg/checkpoint/checkpoint_darwin.go

This file was deleted.

23 changes: 0 additions & 23 deletions pkg/checkpoint/checkpoint_linux_amd64.go

This file was deleted.

23 changes: 0 additions & 23 deletions pkg/checkpoint/checkpoint_linux_arm.go

This file was deleted.

22 changes: 0 additions & 22 deletions pkg/checkpoint/checkpoint_linux_arm64.go

This file was deleted.

31 changes: 31 additions & 0 deletions pkg/checkpoint/types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package checkpoint

import (
"sync"
"time"
)

type flag struct {
Key string
Value string
}

type checkParams struct {
Product string
Version string
Flags map[string]string
ExtraFlags func() []flag
Arch string
OS string
Signature string
SignatureFile string
CacheFile string
CacheDuration time.Duration
Force bool
}

type checker struct {
doneCh chan struct{}
nextCheckAt time.Time
nextCheckAtLock sync.RWMutex
}
16 changes: 16 additions & 0 deletions pkg/checkpoint/util.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package checkpoint

import (
mrand "math/rand"
"os"
"time"
)

func isCheckDisabled() bool {
return os.Getenv("CHECKPOINT_DISABLE") != ""
}

func randomStagger(interval time.Duration) time.Duration {
stagger := time.Duration(mrand.Int63()) % (interval / 2)
return 3*(interval/4) + stagger
}