Skip to content

Commit a63feec

Browse files
Report ingress and service to support cross cluster visibility (#220)
1 parent 6acd4e4 commit a63feec

File tree

32 files changed

+2316
-114
lines changed

32 files changed

+2316
-114
lines changed

src/go.mod

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/go.sum

Lines changed: 0 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package istiowatcher
22

3-
//go:generate go run github.com/golang/mock/mockgen@v1.6.0 -source=watcher.go -destination=mocks/mocks.go
3+
//go:generate go run go.uber.org/mock/mockgen@v0.2.0 -source=watcher.go -destination=mocks/mocks.go

src/istio-watcher/pkg/watcher/mocks/mocks.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/istio-watcher/pkg/watcher/watcher_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ package istiowatcher
33
import (
44
"context"
55
"fmt"
6-
"github.com/golang/mock/gomock"
76
mock_istiowatcher "github.com/otterize/network-mapper/src/istio-watcher/pkg/watcher/mocks"
87
"github.com/otterize/network-mapper/src/mapper/pkg/graph/model"
98
"github.com/stretchr/testify/suite"
9+
"go.uber.org/mock/gomock"
1010
"testing"
1111
"time"
1212
)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
package mapperclient
22

3-
//go:generate go run github.com/golang/mock/mockgen@v1.6.0 -source=client.go -destination=mockclient/mocks.go
3+
//go:generate go run go.uber.org/mock/mockgen@v0.2.0 -source=client.go -destination=mockclient/mocks.go
44
//go:generate go run github.com/Khan/genqlient@v0.7.0 ./genqlient.yaml

src/kafka-watcher/pkg/mapperclient/mockclient/mocks.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/mapper/cmd/main.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/otterize/network-mapper/src/mapper/pkg/incomingtrafficholder"
2121
"github.com/otterize/network-mapper/src/mapper/pkg/mapperwebhooks"
2222
"github.com/otterize/network-mapper/src/mapper/pkg/pod_webhook"
23+
"github.com/otterize/network-mapper/src/mapper/pkg/resourcevisibility"
2324
"github.com/otterize/network-mapper/src/shared/echologrus"
2425
"golang.org/x/sync/errgroup"
2526
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
@@ -247,6 +248,16 @@ func main() {
247248
awsIntentsHolder.RegisterNotifyIntents(cloudUploader.NotifyAWSIntents)
248249

249250
go cloudUploader.PeriodicStatusReport(errGroupCtx)
251+
252+
ingressReconciler := resourcevisibility.NewIngressReconciler(mgr.GetClient(), cloudClient)
253+
if err := ingressReconciler.SetupWithManager(mgr); err != nil {
254+
logrus.WithError(err).Panic("unable to create ingress reconciler")
255+
}
256+
257+
serviceReconciler := resourcevisibility.NewServiceReconciler(mgr.GetClient(), cloudClient, kubeFinder)
258+
if err := serviceReconciler.SetupWithManager(mgr); err != nil {
259+
logrus.WithError(err).Panic("unable to create service reconciler")
260+
}
250261
}
251262

252263
if viper.GetBool(config.OTelEnabledKey) {

src/mapper/generate.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ package mapper
33
//go:generate go run github.com/99designs/gqlgen@v0.17.44
44
//go:generate ./fix-errors-import.sh
55
//go:generate go run go.uber.org/mock/mockgen@v0.2.0 -destination=./pkg/mocks/mock_k8s_client.go -package=mocks -mock_names Client=K8sClient,SubResourceWriter=K8sStatus sigs.k8s.io/controller-runtime/pkg/client Client,SubResourceWriter
6+
//go:generate go run go.uber.org/mock/mockgen@v0.2.0 -destination=./pkg/mocks/mock_kubefinder.go -package=mocks -source=./pkg/resourcevisibility/svc_reconciler.go KubeFinder

src/mapper/pkg/cloudclient/cloud_client.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ type CloudClient interface {
1313
ReportComponentStatus(ctx context.Context, component ComponentType) error
1414
ReportExternalTrafficDiscoveredIntents(ctx context.Context, intents []ExternalTrafficDiscoveredIntentInput) error
1515
ReportIncomingTrafficDiscoveredIntents(ctx context.Context, intents []IncomingTrafficDiscoveredIntentInput) error
16+
ReportK8sServices(ctx context.Context, namespace string, services []K8sServiceInput) error
17+
ReportK8sIngresses(ctx context.Context, namespace string, ingresses []K8sIngressInput) error
1618
}
1719

1820
type CloudClientImpl struct {
@@ -34,7 +36,6 @@ func (c *CloudClientImpl) ReportDiscoveredIntents(ctx context.Context, intents [
3436
logrus.Debug("Uploading intents to cloud, count: ", len(intents))
3537

3638
_, err := ReportDiscoveredIntents(ctx, c.client, intents)
37-
3839
if err != nil {
3940
return errors.Wrap(err)
4041
}
@@ -60,6 +61,7 @@ func (c *CloudClientImpl) ReportComponentStatus(ctx context.Context, component C
6061
if err != nil {
6162
return errors.Wrap(err)
6263
}
64+
6365
return nil
6466
}
6567

@@ -73,3 +75,25 @@ func (c *CloudClientImpl) ReportIncomingTrafficDiscoveredIntents(ctx context.Con
7375

7476
return nil
7577
}
78+
79+
func (c *CloudClientImpl) ReportK8sServices(ctx context.Context, namespace string, services []K8sServiceInput) error {
80+
logrus.Debug("Uploading k8s services to cloud, count: ", len(services))
81+
82+
_, err := ReportK8sServices(ctx, c.client, namespace, services)
83+
if err != nil {
84+
return errors.Wrap(err)
85+
}
86+
87+
return nil
88+
}
89+
90+
func (c *CloudClientImpl) ReportK8sIngresses(ctx context.Context, namespace string, ingresses []K8sIngressInput) error {
91+
logrus.Debug("Uploading k8s ingresses to cloud, count: ", len(ingresses))
92+
93+
_, err := ReportK8sIngresses(ctx, c.client, namespace, ingresses)
94+
if err != nil {
95+
return errors.Wrap(err)
96+
}
97+
98+
return nil
99+
}

0 commit comments

Comments
 (0)