linkerd2/pkg/k8s/labels_test.go

56 lines
1.7 KiB
Go

package k8s
import (
"reflect"
"testing"
k8sV1 "k8s.io/api/apps/v1"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func TestGetOwnerLabels(t *testing.T) {
t.Run("Maps proxy labels to prometheus labels", func(t *testing.T) {
metadata := meta.ObjectMeta{
Labels: map[string]string{
ControllerNSLabel: "conduit-namespace",
ProxyDeploymentLabel: "test-deployment",
ProxyReplicationControllerLabel: "test-replication-controller",
ProxyReplicaSetLabel: "test-replica-set",
ProxyJobLabel: "test-job",
ProxyDaemonSetLabel: "test-daemon-set",
ProxyStatefulSetLabel: "test-stateful-set",
k8sV1.DefaultDeploymentUniqueLabelKey: "test-pth",
},
}
expectedLabels := map[string]string{
"conduit_io_control_plane_ns": "conduit-namespace",
"deployment": "test-deployment",
"replication_controller": "test-replication-controller",
"replica_set": "test-replica-set",
"k8s_job": "test-job",
"daemon_set": "test-daemon-set",
"stateful_set": "test-stateful-set",
"pod_template_hash": "test-pth",
}
ownerLabels := GetOwnerLabels(metadata)
if !reflect.DeepEqual(ownerLabels, expectedLabels) {
t.Fatalf("Expected owner labels [%v] but got [%v]", expectedLabels, ownerLabels)
}
})
t.Run("Ignores non-proxy labels", func(t *testing.T) {
metadata := meta.ObjectMeta{
Labels: map[string]string{"app": "foo"},
}
ownerLabels := GetOwnerLabels(metadata)
if len(ownerLabels) != 0 {
t.Fatalf("Expected no owner labels but got [%v]", ownerLabels)
}
})
}