|
1 | 1 | package telemetry |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "context" |
4 | 5 | "encoding/hex" |
| 6 | + "fmt" |
5 | 7 |
|
6 | | - "github.com/weaveworks/weave-gitops/core/clustersmngr" |
| 8 | + "github.com/weaveworks/weave-gitops/core/clustersmngr/cluster" |
7 | 9 | "github.com/weaveworks/weave-gitops/pkg/featureflags" |
8 | 10 | "golang.org/x/crypto/sha3" |
9 | | - "k8s.io/apimachinery/pkg/types" |
| 11 | + v1 "k8s.io/api/core/v1" |
| 12 | + "sigs.k8s.io/controller-runtime/pkg/client" |
10 | 13 | ) |
11 | 14 |
|
12 | | -func InitTelemetry(factory clustersmngr.ClustersManager) error { |
13 | | - if featureflags.Get("WEAVE_GITOPS_FEATURE_TELEMETRY") == "true" { |
14 | | - var namespace types.UID |
15 | | - |
16 | | - namespaces := factory.GetClustersNamespaces()["Default"] |
17 | | - for _, ns := range namespaces { |
18 | | - if ns.GetName() == "kube-system" { |
19 | | - namespace = ns.GetUID() |
20 | | - } |
21 | | - } |
22 | | - |
23 | | - key := []byte("VyzGoWoKvtJHyTnU+GVhDe+wU9bwZDH87bp505/0f/2UIpHzB+tmyZmfsH8/iJoH") |
24 | | - buf := []byte(namespace) |
25 | | - h := make([]byte, 32) |
26 | | - d := sha3.NewShake128() |
27 | | - |
28 | | - _, err := d.Write(key) |
29 | | - if err != nil { |
30 | | - return err |
31 | | - } |
32 | | - |
33 | | - _, err = d.Write(buf) |
34 | | - if err != nil { |
35 | | - return err |
36 | | - } |
37 | | - |
38 | | - _, err = d.Read(h) |
39 | | - if err != nil { |
40 | | - return err |
41 | | - } |
42 | | - |
43 | | - featureflags.Set("ACCOUNT_ID", hex.EncodeToString(h)) |
| 15 | +func InitTelemetry(ctx context.Context, cl cluster.Cluster) error { |
| 16 | + serverClient, err := cl.GetServerClient() |
| 17 | + if err != nil { |
| 18 | + return fmt.Errorf("failed to get server client; %w", err) |
44 | 19 | } |
45 | 20 |
|
| 21 | + ns := &v1.Namespace{} |
| 22 | + |
| 23 | + err = serverClient.Get(ctx, client.ObjectKey{Name: "kube-system"}, ns) |
| 24 | + if err != nil { |
| 25 | + return fmt.Errorf("failed to get cluster namespace; %w", err) |
| 26 | + } |
| 27 | + |
| 28 | + key := []byte("VyzGoWoKvtJHyTnU+GVhDe+wU9bwZDH87bp505/0f/2UIpHzB+tmyZmfsH8/iJoH") |
| 29 | + buf := []byte(ns.GetUID()) |
| 30 | + h := make([]byte, 32) |
| 31 | + d := sha3.NewShake128() |
| 32 | + |
| 33 | + _, err = d.Write(key) |
| 34 | + if err != nil { |
| 35 | + return err |
| 36 | + } |
| 37 | + |
| 38 | + _, err = d.Write(buf) |
| 39 | + if err != nil { |
| 40 | + return err |
| 41 | + } |
| 42 | + |
| 43 | + _, err = d.Read(h) |
| 44 | + if err != nil { |
| 45 | + return err |
| 46 | + } |
| 47 | + |
| 48 | + featureflags.Set("ACCOUNT_ID", hex.EncodeToString(h)) |
| 49 | + |
46 | 50 | return nil |
47 | 51 | } |
0 commit comments