podlabelmetrics_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package metrics
  2. import (
  3. "testing"
  4. "github.com/opencost/opencost/core/pkg/clustercache"
  5. metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
  6. )
  7. func TestWhitelist(t *testing.T) {
  8. sampleServices := []*clustercache.Service{{
  9. SpecSelector: map[string]string{"servicewhitelistlabel": "foo"},
  10. }}
  11. replicaSetLabelSelector := metav1.LabelSelector{
  12. MatchLabels: map[string]string{"replicasetwhitelistlabel1": "bar"},
  13. }
  14. sampleReplicaSets := []*clustercache.ReplicaSet{{
  15. SpecSelector: &replicaSetLabelSelector,
  16. }}
  17. sampleStatefulSets := []*clustercache.StatefulSet{}
  18. kc := &clustercache.MockClusterCache{ReplicaSets: sampleReplicaSets, StatefulSets: sampleStatefulSets, Services: sampleServices}
  19. wl := map[string]bool{
  20. "whitelistedlabel": true,
  21. }
  22. mc := MetricsConfig{
  23. DisabledMetrics: []string{},
  24. UseLabelsWhitelist: true,
  25. LabelsWhitelist: wl,
  26. }
  27. kplc := KubePodLabelsCollector{
  28. KubeClusterCache: kc,
  29. metricsConfig: mc,
  30. }
  31. kplc.UpdateWhitelist()
  32. if !kplc.labelsWhitelist["servicewhitelistlabel"] {
  33. t.Errorf("Missing expected label %s", "servicewhitelistlabel")
  34. }
  35. if !kplc.labelsWhitelist["replicasetwhitelistlabel1"] {
  36. t.Errorf("Missing expected label %s", "servicewhitelistlabel1")
  37. }
  38. }