File tree Expand file tree Collapse file tree 3 files changed +44
-4
lines changed
Expand file tree Collapse file tree 3 files changed +44
-4
lines changed Original file line number Diff line number Diff line change @@ -148,7 +148,7 @@ func main() {
148148 os .Exit (1 )
149149 }
150150
151- if err := mcs .Register (discovery .NewDiscoveryClientForConfigOrDie (config )); err != nil {
151+ if err := mcs .Register (discovery .NewDiscoveryClientForConfigOrDie (config ), setupLog ); err != nil {
152152 setupLog .Error (err , "failed to register multicluster service" )
153153 os .Exit (1 )
154154 }
Original file line number Diff line number Diff line change 11package mcs
22
33import (
4- "github.com/pkg/errors "
4+ "github.com/go-logr/logr "
55 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
66 "k8s.io/apimachinery/pkg/runtime"
77 "k8s.io/apimachinery/pkg/runtime/schema"
@@ -33,10 +33,14 @@ func addKnownTypes(scheme *runtime.Scheme) error {
3333 return nil
3434}
3535
36- func Register (dc * discovery.DiscoveryClient ) error {
36+ func Register (dc * discovery.DiscoveryClient , log logr. Logger ) error {
3737 resources , err := dc .ServerPreferredResources ()
3838 if err != nil {
39- return errors .Wrap (err , "get api groups and resources" )
39+ // MCS is optional functionality - if discovery fails for any reason,
40+ // mark it as unavailable and continue without crashing the operator
41+ available = false
42+ log .Info ("Multi-cluster services (MCS) are not available: failed to discover API resources" , "error" , err )
43+ return nil
4044 }
4145
4246outer:
5357
5458 if MCSSchemeGroupVersion .Group == "" {
5559 available = false
60+ log .Info ("Multi-cluster services (MCS) are not available: ServiceExport resource not found in cluster" )
5661 return nil
5762 }
5863
Original file line number Diff line number Diff line change 1+ package mcs
2+
3+ import (
4+ "testing"
5+
6+ "github.com/stretchr/testify/assert"
7+ )
8+
9+ func TestIsAvailable (t * testing.T ) {
10+ available = true
11+ assert .True (t , IsAvailable ())
12+
13+ available = false
14+ assert .False (t , IsAvailable ())
15+ }
16+
17+ func TestServiceExport (t * testing.T ) {
18+ namespace := "test-namespace"
19+ name := "test-service"
20+ labels := map [string ]string {
21+ "app" : "test" ,
22+ }
23+
24+ se := ServiceExport (namespace , name , labels )
25+
26+ assert .Equal (t , name , se .Name )
27+ assert .Equal (t , namespace , se .Namespace )
28+ assert .Equal (t , "test" , se .Labels ["app" ])
29+ }
30+
31+ func TestServiceExportList (t * testing.T ) {
32+ seList := ServiceExportList ()
33+
34+ assert .Equal (t , "ServiceExportList" , seList .Kind )
35+ }
You can’t perform that action at this time.
0 commit comments