From 871c55eb85d09873ba02c58c0aefc7fd5e100062 Mon Sep 17 00:00:00 2001 From: Lucian Tosa Date: Tue, 14 Oct 2025 16:33:51 +0200 Subject: [PATCH 1/4] Extend clusterType telemetry --- pkg/telemetry/cluster.go | 6 ++++++ pkg/telemetry/collector.go | 2 +- scripts/dev/setup_kind_cluster.sh | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/pkg/telemetry/cluster.go b/pkg/telemetry/cluster.go index e68d41e1b..90363f9d9 100644 --- a/pkg/telemetry/cluster.go +++ b/pkg/telemetry/cluster.go @@ -23,6 +23,9 @@ const ( openshift = "Openshift" rke = "RKE" rke2 = "RKE2" + evg = "Evergreen" + minikube = "Minikube" + k3s = "K3s" ) var kubernetesFlavourLabelsMapping = map[string]string{ @@ -30,11 +33,14 @@ var kubernetesFlavourLabelsMapping = map[string]string{ "cloud.google.com/gke-nodepool": gke, "kubernetes.azure.com/agentpool": aks, "node.openshift.io/os_id": openshift, + "mongodb.com/evergreen": evg, + "minikube.k8s.io/name": minikube, } var kubernetesFlavourAnnotationsMapping = map[string]string{ "rke.cattle.io/external-ip": rke, "rke.cattle.io/internal-ip": rke, + "k3s.io/hostname": k3s, } // detectClusterInfo detects the Kubernetes version and cluster flavor diff --git a/pkg/telemetry/collector.go b/pkg/telemetry/collector.go index 1e6a2ed09..97e7014c1 100644 --- a/pkg/telemetry/collector.go +++ b/pkg/telemetry/collector.go @@ -183,7 +183,7 @@ func collectOperatorSnapshot(ctx context.Context, memberClusterMap map[string]Co KubernetesClusterIDs: kubeClusterUUIDList, OperatorID: operatorUUID, OperatorVersion: versionutil.StaticContainersOperatorVersion(), - OperatorType: MEKO, + OperatorType: MCK, OperatorArchitecture: runtime.GOARCH, OperatorOS: runtime.GOOS, } diff --git a/scripts/dev/setup_kind_cluster.sh b/scripts/dev/setup_kind_cluster.sh index f9b055be3..72f3e5ad6 100755 --- a/scripts/dev/setup_kind_cluster.sh +++ b/scripts/dev/setup_kind_cluster.sh @@ -82,31 +82,43 @@ apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane image: ${kind_image} + labels: + mongodb.com/evergreen: true extraMounts: - containerPath: /var/lib/kubelet/config.json hostPath: ${HOME}/.docker/config.json - role: control-plane image: ${kind_image} + labels: + mongodb.com/evergreen: true extraMounts: - containerPath: /var/lib/kubelet/config.json hostPath: ${HOME}/.docker/config.json - role: control-plane image: ${kind_image} + labels: + mongodb.com/evergreen: true extraMounts: - containerPath: /var/lib/kubelet/config.json hostPath: ${HOME}/.docker/config.json - role: worker image: ${kind_image} + labels: + mongodb.com/evergreen: true extraMounts: - containerPath: /var/lib/kubelet/config.json hostPath: ${HOME}/.docker/config.json - role: worker image: ${kind_image} + labels: + mongodb.com/evergreen: true extraMounts: - containerPath: /var/lib/kubelet/config.json hostPath: ${HOME}/.docker/config.json - role: worker image: ${kind_image} + labels: + mongodb.com/evergreen: true extraMounts: - containerPath: /var/lib/kubelet/config.json hostPath: ${HOME}/.docker/config.json @@ -133,6 +145,8 @@ apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane image: ${kind_image} + labels: + mongodb.com/evergreen: true extraMounts: - containerPath: /var/lib/kubelet/config.json hostPath: ${HOME}/.docker/config.json From 7df408a9c6fa517db2e32ee573e56917b4b9c3ad Mon Sep 17 00:00:00 2001 From: Lucian Tosa Date: Wed, 15 Oct 2025 13:43:50 +0200 Subject: [PATCH 2/4] Add microk8s --- pkg/telemetry/cluster.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/telemetry/cluster.go b/pkg/telemetry/cluster.go index 90363f9d9..5dbe88414 100644 --- a/pkg/telemetry/cluster.go +++ b/pkg/telemetry/cluster.go @@ -26,6 +26,7 @@ const ( evg = "Evergreen" minikube = "Minikube" k3s = "K3s" + microk8s = "MicroK8s" ) var kubernetesFlavourLabelsMapping = map[string]string{ @@ -35,6 +36,7 @@ var kubernetesFlavourLabelsMapping = map[string]string{ "node.openshift.io/os_id": openshift, "mongodb.com/evergreen": evg, "minikube.k8s.io/name": minikube, + "microk8s.io/cluster": microk8s, } var kubernetesFlavourAnnotationsMapping = map[string]string{ From 903ba7bbb521c93652018d14085cddd8d3d36d23 Mon Sep 17 00:00:00 2001 From: Lucian Tosa Date: Wed, 15 Oct 2025 14:30:05 +0200 Subject: [PATCH 3/4] Extend k3s --- pkg/telemetry/cluster.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/telemetry/cluster.go b/pkg/telemetry/cluster.go index 5dbe88414..d6e8c732b 100644 --- a/pkg/telemetry/cluster.go +++ b/pkg/telemetry/cluster.go @@ -43,6 +43,7 @@ var kubernetesFlavourAnnotationsMapping = map[string]string{ "rke.cattle.io/external-ip": rke, "rke.cattle.io/internal-ip": rke, "k3s.io/hostname": k3s, + "k3s.io/internal-ip": k3s, } // detectClusterInfo detects the Kubernetes version and cluster flavor @@ -109,6 +110,8 @@ func detectKubernetesFlavour(ctx context.Context, uncachedClient kubeclient.Read return eks case strings.Contains(kubeGitApiVersion, "+vmware"): return vmware + case strings.Contains(kubeGitApiVersion, "+k3s"): + return k3s } // Limit is propagated to the apiserver which propagates to etcd as it is. Thus, there is not a lot of From 1013d7ec2922c4e559d44106eaa32041a6935cd8 Mon Sep 17 00:00:00 2001 From: Lucian Tosa Date: Wed, 15 Oct 2025 14:44:15 +0200 Subject: [PATCH 4/4] Fix unit tests --- pkg/telemetry/collector_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/telemetry/collector_test.go b/pkg/telemetry/collector_test.go index f0ca25986..133c7f41f 100644 --- a/pkg/telemetry/collector_test.go +++ b/pkg/telemetry/collector_test.go @@ -1389,7 +1389,7 @@ func TestCollectOperatorSnapshot(t *testing.T) { }, expectedProps: OperatorUsageSnapshotProperties{ OperatorID: testOperatorUUID, - OperatorType: MEKO, + OperatorType: MCK, OperatorArchitecture: runtime.GOARCH, OperatorOS: runtime.GOOS, }, @@ -1423,7 +1423,7 @@ func TestCollectOperatorSnapshot(t *testing.T) { assert.Equal(t, runtime.GOARCH, event.Properties["operatorArchitecture"]) assert.Equal(t, runtime.GOOS, event.Properties["operatorOS"]) assert.Equal(t, testOperatorUUID, event.Properties["operatorID"]) - assert.Equal(t, string(MEKO), event.Properties["operatorType"]) + assert.Equal(t, string(MCK), event.Properties["operatorType"]) assert.Contains(t, event.Properties, "kubernetesClusterID") assert.Contains(t, event.Properties, "kubernetesClusterIDs")