| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package metrics
- import (
- "testing"
- "github.com/opencost/opencost/pkg/clustercache"
- appsv1 "k8s.io/api/apps/v1"
- v1 "k8s.io/api/core/v1"
- metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- )
- func TestWhitelist(t *testing.T) {
- sampleServices := []*v1.Service{&v1.Service{
- Spec: v1.ServiceSpec{
- Selector: map[string]string{"servicewhitelistlabel": "foo"},
- },
- }}
- replicaSetLabelSelector := metav1.LabelSelector{
- MatchLabels: map[string]string{"replicasetwhitelistlabel1": "bar"},
- }
- sampleReplicaSets := []*appsv1.ReplicaSet{{
- Spec: appsv1.ReplicaSetSpec{
- Selector: &replicaSetLabelSelector,
- },
- }}
- sampleStatefulSets := []*appsv1.StatefulSet{}
- kc := NewFakeCache(sampleReplicaSets, sampleStatefulSets, sampleServices)
- wl := map[string]bool{
- "whitelistedlabel": true,
- }
- mc := MetricsConfig{
- DisabledMetrics: []string{},
- UseLabelsWhitelist: true,
- LabelsWhitelist: wl,
- }
- kplc := KubePodLabelsCollector{
- KubeClusterCache: kc,
- metricsConfig: mc,
- }
- kplc.UpdateWhitelist()
- if !kplc.labelsWhitelist["servicewhitelistlabel"] {
- t.Errorf("Missing expected label %s", "servicewhitelistlabel")
- }
- if !kplc.labelsWhitelist["replicasetwhitelistlabel1"] {
- t.Errorf("Missing expected label %s", "servicewhitelistlabel1")
- }
- }
- type FakeCache struct {
- clustercache.ClusterCache
- replicasets []*appsv1.ReplicaSet
- statefulsets []*appsv1.StatefulSet
- services []*v1.Service
- }
- func (f FakeCache) GetAllReplicaSets() []*appsv1.ReplicaSet {
- return f.replicasets
- }
- func (f FakeCache) GetAllStatefulSets() []*appsv1.StatefulSet {
- return f.statefulsets
- }
- func (f FakeCache) GetAllServices() []*v1.Service {
- return f.services
- }
- func NewFakeCache(replicasets []*appsv1.ReplicaSet, statefulsets []*appsv1.StatefulSet, services []*v1.Service) FakeCache {
- return FakeCache{
- replicasets: replicasets,
- statefulsets: statefulsets,
- services: services,
- }
- }
|