diff --git a/pkg/extract/pod_spec.go b/pkg/extract/pod_spec.go index c799e9042..57a1def65 100644 --- a/pkg/extract/pod_spec.go +++ b/pkg/extract/pod_spec.go @@ -59,6 +59,8 @@ func Selector(obj k8sutil.Object) (*metaV1.LabelSelector, bool) { switch obj := obj.(type) { case *ocsAppsV1.DeploymentConfig: return &metaV1.LabelSelector{MatchLabels: obj.Spec.Selector}, true + case *coreV1.ReplicationController: + return &metaV1.LabelSelector{MatchLabels: obj.Spec.Selector}, true case *batchV1Beta1.CronJob: return obj.Spec.JobTemplate.Spec.Selector, true case *batchV1.CronJob: diff --git a/pkg/extract/pod_spec_test.go b/pkg/extract/pod_spec_test.go new file mode 100644 index 000000000..47e866ba4 --- /dev/null +++ b/pkg/extract/pod_spec_test.go @@ -0,0 +1,33 @@ +package extract + +import ( + "reflect" + "testing" + + coreV1 "k8s.io/api/core/v1" + metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +func TestSelectorExtractsReplicationControllerSelector(t *testing.T) { + rc := &coreV1.ReplicationController{ + Spec: coreV1.ReplicationControllerSpec{ + Selector: map[string]string{ + "app": "web", + }, + }, + } + + selector, found := Selector(rc) + if !found { + t.Fatal("expected selector to be found") + } + + expected := &metaV1.LabelSelector{ + MatchLabels: map[string]string{ + "app": "web", + }, + } + if !reflect.DeepEqual(selector, expected) { + t.Fatalf("expected selector %#v, got %#v", expected, selector) + } +}