From ec18d96b45bb06f3ec9bc80455472b73135b4cbe Mon Sep 17 00:00:00 2001 From: gadotroee <55343099+gadotroee@users.noreply.github.com> Date: Mon, 12 Jul 2021 14:53:26 +0300 Subject: [PATCH 1/6] Infof and Debugf in places we use formatting (#102) * no message * no message --- api/main.go | 2 +- api/pkg/api/main.go | 4 ++-- tap/passive_tapper.go | 22 +++++++++++----------- tap/tcp_stream_factory.go | 16 ++++++++-------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/api/main.go b/api/main.go index 0a6dc516a..fbb704069 100644 --- a/api/main.go +++ b/api/main.go @@ -51,7 +51,7 @@ func main() { tapTargets := getTapTargets() if tapTargets != nil { tap.SetFilterAuthorities(tapTargets) - rlog.Info("Filtering for the following authorities:", tap.GetFilterIPs()) + rlog.Infof("Filtering for the following authorities: %v", tap.GetFilterIPs()) } harOutputChannel, outboundLinkOutputChannel := tap.StartPassiveTapper(tapOpts) diff --git a/api/pkg/api/main.go b/api/pkg/api/main.go index 142f43700..42411953b 100644 --- a/api/pkg/api/main.go +++ b/api/pkg/api/main.go @@ -131,7 +131,7 @@ func saveHarToDb(entry *har.Entry, connectionInfo *tap.ConnectionInfo) { unresolvedSource := connectionInfo.ClientIP resolvedSource = k8sResolver.Resolve(unresolvedSource) if resolvedSource == "" { - rlog.Debug("Cannot find resolved name to source: %s\n", unresolvedSource) + rlog.Debugf("Cannot find resolved name to source: %s\n", unresolvedSource) if os.Getenv("SKIP_NOT_RESOLVED_SOURCE") == "1" { return } @@ -139,7 +139,7 @@ func saveHarToDb(entry *har.Entry, connectionInfo *tap.ConnectionInfo) { unresolvedDestination := fmt.Sprintf("%s:%s", connectionInfo.ServerIP, connectionInfo.ServerPort) resolvedDestination = k8sResolver.Resolve(unresolvedDestination) if resolvedDestination == "" { - rlog.Debug("Cannot find resolved name to dest: %s\n", unresolvedDestination) + rlog.Debugf("Cannot find resolved name to dest: %s\n", unresolvedDestination) if os.Getenv("SKIP_NOT_RESOLVED_DEST") == "1" { return } diff --git a/tap/passive_tapper.go b/tap/passive_tapper.go index dbb3beb05..e5b4db5c8 100644 --- a/tap/passive_tapper.go +++ b/tap/passive_tapper.go @@ -213,7 +213,7 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr if localhostIPs, err := getLocalhostIPs(); err != nil { // TODO: think this over rlog.Info("Failed to get self IP addresses") - rlog.Error("Getting-Self-Address", "Error getting self ip address: %s (%v,%+v)", err, err, err) + rlog.Errorf("Getting-Self-Address", "Error getting self ip address: %s (%v,%+v)", err, err, err) ownIps = make([]string, 0) } else { ownIps = localhostIPs @@ -230,14 +230,14 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr SetFilterPorts(appPorts) envVal := os.Getenv(maxHTTP2DataLenEnvVar) if envVal == "" { - rlog.Info("Received empty/no HTTP2_DATA_SIZE_LIMIT env var! falling back to", maxHTTP2DataLenDefault) + rlog.Infof("Received empty/no HTTP2_DATA_SIZE_LIMIT env var! falling back to %v", maxHTTP2DataLenDefault) maxHTTP2DataLen = maxHTTP2DataLenDefault } else { if convertedInt, err := strconv.Atoi(envVal); err != nil { - rlog.Info("Received invalid HTTP2_DATA_SIZE_LIMIT env var! falling back to", maxHTTP2DataLenDefault) + rlog.Infof("Received invalid HTTP2_DATA_SIZE_LIMIT env var! falling back to %v", maxHTTP2DataLenDefault) maxHTTP2DataLen = maxHTTP2DataLenDefault } else { - rlog.Info("Received HTTP2_DATA_SIZE_LIMIT env var:", maxHTTP2DataLenDefault) + rlog.Infof("Received HTTP2_DATA_SIZE_LIMIT env var: %v", maxHTTP2DataLenDefault) maxHTTP2DataLen = convertedInt } } @@ -379,11 +379,11 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr for packet := range source.Packets() { count++ - rlog.Debug("PACKET #%d", count) + rlog.Debugf("PACKET #%d", count) data := packet.Data() bytes += int64(len(data)) if *hexdumppkt { - rlog.Debug("Packet content (%d/0x%x) - %s", len(data), len(data), hex.Dump(data)) + rlog.Debugf("Packet content (%d/0x%x) - %s", len(data), len(data), hex.Dump(data)) } // defrag the IPv4 packet if required @@ -398,12 +398,12 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr if err != nil { log.Fatalln("Error while de-fragmenting", err) } else if newip4 == nil { - rlog.Debug("Fragment...") + rlog.Debugf("Fragment...") continue // packet fragment, we don't have whole packet yet. } if newip4.Length != l { stats.ipdefrag++ - rlog.Debug("Decoding re-assembled packet: %s", newip4.NextLayerType()) + rlog.Debugf("Decoding re-assembled packet: %s", newip4.NextLayerType()) pb, ok := packet.(gopacket.PacketBuilder) if !ok { log.Panic("Not a PacketBuilder") @@ -426,7 +426,7 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr CaptureInfo: packet.Metadata().CaptureInfo, } stats.totalsz += len(tcp.Payload) - rlog.Debug(packet.NetworkLayer().NetworkFlow().Src(), ":", tcp.SrcPort, " -> ", packet.NetworkLayer().NetworkFlow().Dst(), ":", tcp.DstPort) + rlog.Debugf(packet.NetworkLayer().NetworkFlow().Src(), ":", tcp.SrcPort, " -> ", packet.NetworkLayer().NetworkFlow().Dst(), ":", tcp.DstPort) assemblerMutex.Lock() assembler.AssembleWithContext(packet.NetworkLayer().NetworkFlow(), tcp, &c) assemblerMutex.Unlock() @@ -454,7 +454,7 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr assemblerMutex.Lock() closed := assembler.FlushAll() assemblerMutex.Unlock() - rlog.Debug("Final flush: %d closed", closed) + rlog.Debugf("Final flush: %d closed", closed) if outputLevel >= 2 { streamPool.Dump() } @@ -470,7 +470,7 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr streamFactory.WaitGoRoutines() assemblerMutex.Lock() - rlog.Debug("%s", assembler.Dump()) + rlog.Debugf("%s", assembler.Dump()) assemblerMutex.Unlock() if !*nodefrag { log.Printf("IPdefrag:\t\t%d", stats.ipdefrag) diff --git a/tap/tcp_stream_factory.go b/tap/tcp_stream_factory.go index b838be1bb..2acb2ed9a 100644 --- a/tap/tcp_stream_factory.go +++ b/tap/tcp_stream_factory.go @@ -23,11 +23,11 @@ type tcpStreamFactory struct { } func (factory *tcpStreamFactory) New(net, transport gopacket.Flow, tcp *layers.TCP, ac reassembly.AssemblerContext) reassembly.Stream { - rlog.Debug("* NEW: %s %s", net, transport) + rlog.Debugf("* NEW: %s %s", net, transport) fsmOptions := reassembly.TCPSimpleFSMOptions{ SupportMissingEstablishment: *allowmissinginit, } - rlog.Debug("Current App Ports: %v", gSettings.filterPorts) + rlog.Debugf("Current App Ports: %v", gSettings.filterPorts) srcIp := net.Src().String() dstIp := net.Dst().String() dstPort := int(tcp.DstPort) @@ -92,31 +92,31 @@ func (factory *tcpStreamFactory) WaitGoRoutines() { func (factory *tcpStreamFactory) getStreamProps(srcIP string, dstIP string, dstPort int) *streamProps { if hostMode { if inArrayString(gSettings.filterAuthorities, fmt.Sprintf("%s:%d", dstIP, dstPort)) == true { - rlog.Debug("getStreamProps %s", fmt.Sprintf("+ host1 %s:%d", dstIP, dstPort)) + rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host1 %s:%d", dstIP, dstPort)) return &streamProps{isTapTarget: true, isOutgoing: false} } else if inArrayString(gSettings.filterAuthorities, dstIP) == true { - rlog.Debug("getStreamProps %s", fmt.Sprintf("+ host2 %s", dstIP)) + rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host2 %s", dstIP)) return &streamProps{isTapTarget: true, isOutgoing: false} } else if *anydirection && inArrayString(gSettings.filterAuthorities, srcIP) == true { - rlog.Debug("getStreamProps %s", fmt.Sprintf("+ host3 %s", srcIP)) + rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host3 %s", srcIP)) return &streamProps{isTapTarget: true, isOutgoing: true} } return &streamProps{isTapTarget: false} } else { isTappedPort := dstPort == 80 || (gSettings.filterPorts != nil && (inArrayInt(gSettings.filterPorts, dstPort))) if !isTappedPort { - rlog.Debug("getStreamProps %s", fmt.Sprintf("- notHost1 %d", dstPort)) + rlog.Debugf("getStreamProps %s", fmt.Sprintf("- notHost1 %d", dstPort)) return &streamProps{isTapTarget: false, isOutgoing: false} } isOutgoing := !inArrayString(ownIps, dstIP) if !*anydirection && isOutgoing { - rlog.Debug("getStreamProps %s", fmt.Sprintf("- notHost2")) + rlog.Debugf("getStreamProps %s", fmt.Sprintf("- notHost2")) return &streamProps{isTapTarget: false, isOutgoing: isOutgoing} } - rlog.Debug("getStreamProps %s", fmt.Sprintf("+ notHost3 %s -> %s:%d", srcIP, dstIP, dstPort)) + rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ notHost3 %s -> %s:%d", srcIP, dstIP, dstPort)) return &streamProps{isTapTarget: true} } } From e3049fb5a5752126652805b6185b1506a6404159 Mon Sep 17 00:00:00 2001 From: gadotroee <55343099+gadotroee@users.noreply.github.com> Date: Mon, 12 Jul 2021 16:05:41 +0300 Subject: [PATCH 2/6] Update passive_tapper log (#103) --- tap/passive_tapper.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tap/passive_tapper.go b/tap/passive_tapper.go index e5b4db5c8..0625c666d 100644 --- a/tap/passive_tapper.go +++ b/tap/passive_tapper.go @@ -426,7 +426,7 @@ func startPassiveTapper(harWriter *HarWriter, outboundLinkWriter *OutboundLinkWr CaptureInfo: packet.Metadata().CaptureInfo, } stats.totalsz += len(tcp.Payload) - rlog.Debugf(packet.NetworkLayer().NetworkFlow().Src(), ":", tcp.SrcPort, " -> ", packet.NetworkLayer().NetworkFlow().Dst(), ":", tcp.DstPort) + rlog.Debugf("%s : %v -> %s : %v", packet.NetworkLayer().NetworkFlow().Src(), tcp.SrcPort, packet.NetworkLayer().NetworkFlow().Dst(), tcp.DstPort) assemblerMutex.Lock() assembler.AssembleWithContext(packet.NetworkLayer().NetworkFlow(), tcp, &c) assemblerMutex.Unlock() From 6aa38f071f9eb6a9eb1fc4bbab63621aaf601520 Mon Sep 17 00:00:00 2001 From: Igor Gov Date: Mon, 12 Jul 2021 20:33:15 +0300 Subject: [PATCH 3/6] Mizu tap - adding logs for troubleshooting --- api/pkg/controllers/entries_controller.go | 11 +++++++++-- api/pkg/up9/main.go | 4 ++-- cli/cmd/tapRunner.go | 9 ++++++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/api/pkg/controllers/entries_controller.go b/api/pkg/controllers/entries_controller.go index d3c85a794..eb4c6109c 100644 --- a/api/pkg/controllers/entries_controller.go +++ b/api/pkg/controllers/entries_controller.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/gofiber/fiber/v2" "github.com/google/martian/har" + "github.com/romana/rlog" "mizuserver/pkg/database" "mizuserver/pkg/models" "mizuserver/pkg/up9" @@ -140,6 +141,8 @@ func GetHARs(c *fiber.Ctx) error { } func UploadEntries(c *fiber.Ctx) error { + rlog.Debugf("Upload entries - started\n") + uploadRequestBody := &models.UploadEntriesRequestBody{} if err := c.QueryParser(uploadRequestBody); err != nil { return c.Status(fiber.StatusBadRequest).JSON(err) @@ -150,8 +153,12 @@ func UploadEntries(c *fiber.Ctx) error { if up9.GetAnalyzeInfo().IsAnalyzing { return c.Status(fiber.StatusBadRequest).SendString("Cannot analyze, mizu is already analyzing") } - - token, _ := up9.CreateAnonymousToken(uploadRequestBody.Dest) + rlog.Debugf("Upload entries - creating token. dest %s\n", uploadRequestBody.Dest) + token, err := up9.CreateAnonymousToken(uploadRequestBody.Dest) + if err != nil { + return c.Status(fiber.StatusServiceUnavailable).SendString("Can't get token") + } + rlog.Infof("Upload entries - uploading. token: %s model: %s\n", token.Token, token.Model) go up9.UploadEntriesImpl(token.Token, token.Model, uploadRequestBody.Dest) return c.Status(fiber.StatusOK).SendString("OK") } diff --git a/api/pkg/up9/main.go b/api/pkg/up9/main.go index 5b6d3fe3a..9e2179edd 100644 --- a/api/pkg/up9/main.go +++ b/api/pkg/up9/main.go @@ -36,7 +36,7 @@ func getGuestToken(url string, target *GuestToken) error { return err } defer resp.Body.Close() - + rlog.Debugf("Got token from the server, starting to json decode... status code: %v", resp.StatusCode) return json.NewDecoder(resp.Body).Decode(target) } @@ -47,7 +47,7 @@ func CreateAnonymousToken(envPrefix string) (*GuestToken, error) { } token := &GuestToken{} if err := getGuestToken(tokenUrl, token); err != nil { - rlog.Infof("%s", err) + rlog.Infof("Failed to get token, %s", err) return nil, err } return token, nil diff --git a/cli/cmd/tapRunner.go b/cli/cmd/tapRunner.go index d3a6a69f8..f349529bb 100644 --- a/cli/cmd/tapRunner.go +++ b/cli/cmd/tapRunner.go @@ -3,6 +3,7 @@ package cmd import ( "context" "fmt" + "github.com/romana/rlog" "github.com/up9inc/mizu/cli/debounce" "github.com/up9inc/mizu/cli/kubernetes" "github.com/up9inc/mizu/cli/mizu" @@ -252,11 +253,12 @@ func portForwardApiPod(ctx context.Context, kubernetesProvider *kubernetes.Provi time.Sleep(time.Second * 5) // Waiting to be sure the proxy is ready if tappingOptions.Analyze { - url_path := fmt.Sprintf("http://%s/api/uploadEntries?dest=%s", mizuProxiedUrl, tappingOptions.AnalyzeDestination) + url_path := fmt.Sprintf("http://%s/api/uploadEntries?dest=%s", mizuProxiedUrl, url.QueryEscape(tappingOptions.AnalyzeDestination)) u, err := url.ParseRequestURI(url_path) if err != nil { log.Fatal(fmt.Sprintf("Failed parsing the URL %v\n", err)) } + rlog.Debugf("Sending get request to %v\n", u.String()) if response, err := http.Get(u.String()); err != nil && response.StatusCode != 200 { fmt.Printf("error sending upload entries req %v\n", err) } else { @@ -324,7 +326,8 @@ func waitForFinish(ctx context.Context, cancel context.CancelFunc) { } func syncApiStatus(ctx context.Context, cancel context.CancelFunc, tappingOptions *MizuTapOptions) { - controlSocket, err := mizu.CreateControlSocket(fmt.Sprintf("ws://%s/ws", kubernetes.GetMizuCollectorProxiedHostAndPath(tappingOptions.GuiPort, mizu.ResourcesNamespace, mizu.AggregatorPodName))) + controlSocketStr := fmt.Sprintf("ws://%s/ws", kubernetes.GetMizuCollectorProxiedHostAndPath(tappingOptions.GuiPort, mizu.ResourcesNamespace, mizu.AggregatorPodName)) + controlSocket, err := mizu.CreateControlSocket(controlSocketStr) if err != nil { fmt.Printf("error establishing control socket connection %s\n", err) cancel() @@ -337,7 +340,7 @@ func syncApiStatus(ctx context.Context, cancel context.CancelFunc, tappingOption default: err = controlSocket.SendNewTappedPodsListMessage(currentlyTappedPods) if err != nil { - fmt.Printf("error Sending message via control socket %s\n", err) + fmt.Printf("error Sending message via control socket %v, error: %s\n", controlSocketStr, err) } time.Sleep(10 * time.Second) } From 603206f2cbe7e9ec58e0a80a3bba895f85f5d36b Mon Sep 17 00:00:00 2001 From: Igor Gov Date: Tue, 13 Jul 2021 09:01:41 +0300 Subject: [PATCH 4/6] changing log message to debug --- cli/cmd/tapRunner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/cmd/tapRunner.go b/cli/cmd/tapRunner.go index f349529bb..69a6f2015 100644 --- a/cli/cmd/tapRunner.go +++ b/cli/cmd/tapRunner.go @@ -340,7 +340,7 @@ func syncApiStatus(ctx context.Context, cancel context.CancelFunc, tappingOption default: err = controlSocket.SendNewTappedPodsListMessage(currentlyTappedPods) if err != nil { - fmt.Printf("error Sending message via control socket %v, error: %s\n", controlSocketStr, err) + rlog.Debugf("error Sending message via control socket %v, error: %s\n", controlSocketStr, err) } time.Sleep(10 * time.Second) } From 115692dbfc64d3124d66dcd26f7a7f43447dd4b4 Mon Sep 17 00:00:00 2001 From: lirazyehezkel <61656597+lirazyehezkel@users.noreply.github.com> Date: Tue, 13 Jul 2021 15:52:44 +0300 Subject: [PATCH 5/6] Change logo and favicon (#106) * Change logo and favicon * remove warning --- ui/public/fav.svg | 5 +++++ ui/public/favicon.ico | Bin 3870 -> 0 bytes ui/public/index.html | 2 +- ui/src/App.sass | 11 ++++------- ui/src/App.tsx | 2 +- ui/src/components/HarPage.tsx | 3 ++- ui/src/components/assets/Mizu-logo.svg | 24 ++++++++++++++++++++++++ ui/src/components/assets/play.svg | 4 ---- ui/src/components/assets/run.svg | 4 ++++ ui/src/components/style/HarPage.sass | 2 +- ui/src/index.sass | 1 + 11 files changed, 43 insertions(+), 15 deletions(-) create mode 100644 ui/public/fav.svg delete mode 100644 ui/public/favicon.ico create mode 100644 ui/src/components/assets/Mizu-logo.svg delete mode 100644 ui/src/components/assets/play.svg create mode 100644 ui/src/components/assets/run.svg diff --git a/ui/public/fav.svg b/ui/public/fav.svg new file mode 100644 index 000000000..f30e7c5ee --- /dev/null +++ b/ui/public/fav.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/ui/public/favicon.ico b/ui/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/ui/public/index.html b/ui/public/index.html index 6ec223149..8485870fb 100644 --- a/ui/public/index.html +++ b/ui/public/index.html @@ -2,7 +2,7 @@ - + = ({setAnalyzeStatus}) => { fetch(`${mizuApiUrl}/api/analyzeStatus`) .then(response => response.json()) .then(data => setAnalyzeStatus(data)); + // eslint-disable-next-line }, []); diff --git a/ui/src/components/assets/Mizu-logo.svg b/ui/src/components/assets/Mizu-logo.svg new file mode 100644 index 000000000..cbf980097 --- /dev/null +++ b/ui/src/components/assets/Mizu-logo.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ui/src/components/assets/play.svg b/ui/src/components/assets/play.svg deleted file mode 100644 index a623aa817..000000000 --- a/ui/src/components/assets/play.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/ui/src/components/assets/run.svg b/ui/src/components/assets/run.svg new file mode 100644 index 000000000..1c7ca94cc --- /dev/null +++ b/ui/src/components/assets/run.svg @@ -0,0 +1,4 @@ + + + + diff --git a/ui/src/components/style/HarPage.sass b/ui/src/components/style/HarPage.sass index bd72d48a6..fd6b7a91b 100644 --- a/ui/src/components/style/HarPage.sass +++ b/ui/src/components/style/HarPage.sass @@ -6,7 +6,7 @@ flex-direction: column overflow: hidden flex-grow: 1 - height: calc(100vh - 80px) + height: calc(100vh - 70px) .harPageHeader padding: 20px 24px diff --git a/ui/src/index.sass b/ui/src/index.sass index b230a5c51..ffa0f2ec3 100644 --- a/ui/src/index.sass +++ b/ui/src/index.sass @@ -14,6 +14,7 @@ body -moz-osx-font-smoothing: grayscale margin: 0 padding: 0 + overflow: hidden code font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace From 78456d79878b6dcf07677994aceda85caa1d8cd0 Mon Sep 17 00:00:00 2001 From: nimrod-up9 <59927337+nimrod-up9@users.noreply.github.com> Date: Tue, 13 Jul 2021 16:11:38 +0300 Subject: [PATCH 6/6] TRA-3410 Resource limits (#105) * Added resource requests and limits. * Set limits to realistic values. * Reduced requests. * Fixed: Swapped limites. * Reordered. * Reduces memory request for tappers. --- cli/kubernetes/provider.go | 55 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/cli/kubernetes/provider.go b/cli/kubernetes/provider.go index 0bf40c1b8..008311fcf 100644 --- a/cli/kubernetes/provider.go +++ b/cli/kubernetes/provider.go @@ -14,6 +14,7 @@ import ( rbac "k8s.io/api/rbac/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + resource "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/watch" applyconfapp "k8s.io/client-go/applyconfigurations/apps/v1" @@ -75,6 +76,24 @@ func (provider *Provider) CreateMizuAggregatorPod(ctx context.Context, namespace if err != nil { return nil, err } + + cpuLimit, err := resource.ParseQuantity("750") + if err != nil { + return nil, errors.New("invalid cpu limit for aggregator container") + } + memLimit, err := resource.ParseQuantity("512Mi") + if err != nil { + return nil, errors.New("invalid memory limit for aggregator container") + } + cpuRequests, err := resource.ParseQuantity("50m") + if err != nil { + return nil, errors.New("invalid cpu request for aggregator container") + } + memRequests, err := resource.ParseQuantity("50Mi") + if err != nil { + return nil, errors.New("invalid memory request for aggregator container") + } + pod := &core.Pod{ ObjectMeta: metav1.ObjectMeta{ Name: podName, @@ -98,6 +117,16 @@ func (provider *Provider) CreateMizuAggregatorPod(ctx context.Context, namespace Value: string(marshaledFilteringOptions), }, }, + Resources: core.ResourceRequirements{ + Limits: core.ResourceList{ + "cpu": cpuLimit, + "memory": memLimit, + }, + Requests: core.ResourceList{ + "cpu": cpuRequests, + "memory": memRequests, + }, + }, }, }, DNSPolicy: core.DNSClusterFirstWithHostNet, @@ -336,6 +365,32 @@ func (provider *Provider) ApplyMizuTapperDaemonSet(ctx context.Context, namespac ), ), ) + cpuLimit, err := resource.ParseQuantity("500m") + if err != nil { + return errors.New("invalid cpu limit for tapper container") + } + memLimit, err := resource.ParseQuantity("1Gi") + if err != nil { + return errors.New("invalid memory limit for tapper container") + } + cpuRequests, err := resource.ParseQuantity("50m") + if err != nil { + return errors.New("invalid cpu request for tapper container") + } + memRequests, err := resource.ParseQuantity("50Mi") + if err != nil { + return errors.New("invalid memory request for tapper container") + } + agentResourceLimits := core.ResourceList{ + "cpu": cpuLimit, + "memory": memLimit, + } + agentResourceRequests := core.ResourceList{ + "cpu": cpuRequests, + "memory": memRequests, + } + agentResources := applyconfcore.ResourceRequirements().WithRequests(agentResourceRequests).WithLimits(agentResourceLimits) + agentContainer.WithResources(agentResources) nodeNames := make([]string, 0, len(nodeToTappedPodIPMap)) for nodeName := range nodeToTappedPodIPMap {