From 36910c84ed847240061025cff2e444577df98208 Mon Sep 17 00:00:00 2001 From: leon-up9 <97597983+leon-up9@users.noreply.github.com> Date: Sun, 24 Apr 2022 17:20:14 +0300 Subject: [PATCH 1/3] filter changes state on diffrent events (#1040) Co-authored-by: Leon <> --- .../ServiceMapModal/ServiceMapModal.tsx | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/ui-common/src/components/ServiceMapModal/ServiceMapModal.tsx b/ui-common/src/components/ServiceMapModal/ServiceMapModal.tsx index 266e1c108..3b93e379f 100644 --- a/ui-common/src/components/ServiceMapModal/ServiceMapModal.tsx +++ b/ui-common/src/components/ServiceMapModal/ServiceMapModal.tsx @@ -117,31 +117,32 @@ export const ServiceMapModal: React.FC = ({ isOpen, onClos .sort((a, b) => { return a.key.localeCompare(b.key) }); const getServicesForFilter = useMemo(() => { - const resolved = mapToKeyValForFilter(serviceMapApiData.nodes?.filter(x => x.resolved)) const unResolved = mapToKeyValForFilter(serviceMapApiData.nodes?.filter(x => !x.resolved)) return [...resolved, ...unResolved] }, [serviceMapApiData]) - const filterServiceMap = useCallback((newProtocolsFilters?: any[], newServiceFilters?: string[]) => { - const filterProt = newProtocolsFilters || checkedProtocols - const filterService = newServiceFilters || checkedServices - setCheckedProtocols(filterProt) - setCheckedServices(filterService) + useEffect(() => { const newGraphData: GraphData = { - nodes: serviceMapApiData.nodes?.map(mapNodesDatatoGraph).filter(node => filterService.includes(node.label)), - edges: serviceMapApiData.edges?.filter(edge => filterProt.includes(edge.protocol.abbr)).map(mapEdgesDatatoGraph) + nodes: serviceMapApiData.nodes?.map(mapNodesDatatoGraph).filter(node => checkedServices.includes(node.label)), + edges: serviceMapApiData.edges?.filter(edge => checkedProtocols.includes(edge.protocol.abbr)).map(mapEdgesDatatoGraph) } setGraphData(newGraphData); - }, [checkedProtocols, checkedServices, serviceMapApiData]) + }, [checkedServices, checkedProtocols, serviceMapApiData]) + const onProtocolsChange = (newProtocolsFiltersnewProt) => { + const filterProt = newProtocolsFiltersnewProt || checkedProtocols + setCheckedProtocols(filterProt) + } + const onServiceChanges = (newServiceFilters) => { + const filterService = newServiceFilters || checkedServices + setCheckedServices([...filterService]) + } useEffect(() => { - if (checkedServices.length > 0) - filterServiceMap() - else - filterServiceMap(checkedProtocols, getServicesForFilter.map(x => x.key).filter(serviceName => !Utils.isIpAddress(serviceName))) + if (checkedServices.length == 0) + setCheckedServices(getServicesForFilter.map(x => x.key).filter(serviceName => !Utils.isIpAddress(serviceName))) }, [getServicesForFilter]) useEffect(() => { @@ -177,14 +178,14 @@ export const ServiceMapModal: React.FC = ({ isOpen, onClos
+ checkedValues={checkedProtocols} setCheckedValues={onProtocolsChange} tableClassName={styles.filters} />
setServicesSearchVal(event.target.value)} />
filterServiceMap(null, newServicesForFilter)} /> + checkBoxWidth="5%" checkedValues={checkedServices} setCheckedValues={onServiceChanges} />
From 171b72831fa205305352ceb920ef471d6a88ecac Mon Sep 17 00:00:00 2001 From: gadotroee <55343099+gadotroee@users.noreply.github.com> Date: Mon, 25 Apr 2022 13:06:46 +0300 Subject: [PATCH 2/3] Add docker buildx acceptance tests image build (#1039) --- .github/workflows/acceptance_tests.yml | 16 ++++++++++++++++ .github/workflows/acceptance_tests_on_pr.yml | 16 ++++++++++++++++ acceptanceTests/setup.sh | 13 +++++++++---- acceptanceTests/testsUtils.go | 3 ++- 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/.github/workflows/acceptance_tests.yml b/.github/workflows/acceptance_tests.yml index 8e8ec9d2f..e1cc28841 100644 --- a/.github/workflows/acceptance_tests.yml +++ b/.github/workflows/acceptance_tests.yml @@ -8,6 +8,9 @@ on: branches: - 'develop' +env: + MIZU_CI_IMAGE: mizu/ci:0.0 + jobs: run-acceptance-tests: name: Run acceptance tests @@ -21,6 +24,19 @@ jobs: - name: Check out code into the Go module directory uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Build + uses: docker/build-push-action@v2 + with: + context: . + push: false + load: true + tags: ${{ env.MIZU_CI_IMAGE }} + cache-from: type=gha + cache-to: type=gha,mode=max + - name: Setup acceptance test run: ./acceptanceTests/setup.sh diff --git a/.github/workflows/acceptance_tests_on_pr.yml b/.github/workflows/acceptance_tests_on_pr.yml index 8fc357fba..d9ee4da0e 100644 --- a/.github/workflows/acceptance_tests_on_pr.yml +++ b/.github/workflows/acceptance_tests_on_pr.yml @@ -2,6 +2,9 @@ name: Acceptance tests on PR on: push +env: + MIZU_CI_IMAGE: mizu/ci:0.0 + concurrency: group: acceptance-tests-on-pr-${{ github.ref }} cancel-in-progress: true @@ -21,6 +24,19 @@ jobs: - name: Check out code into the Go module directory uses: actions/checkout@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Build + uses: docker/build-push-action@v2 + with: + context: . + push: false + load: true + tags: ${{ env.MIZU_CI_IMAGE }} + cache-from: type=gha + cache-to: type=gha,mode=max + - name: Setup acceptance test run: ./acceptanceTests/setup.sh diff --git a/acceptanceTests/setup.sh b/acceptanceTests/setup.sh index 3cec12efb..ef1836087 100755 --- a/acceptanceTests/setup.sh +++ b/acceptanceTests/setup.sh @@ -57,11 +57,16 @@ kubectl expose deployment rabbitmq --type=LoadBalancer --port=5672 -n mizu-tests echo "Starting proxy" kubectl proxy --port=8080 & -echo "Setting minikube docker env" -eval $(minikube docker-env) +if [[ -z "${CI}" ]]; then + echo "Setting env var of mizu ci image" + export MIZU_CI_IMAGE="mizu/ci:0.0" + echo "Build agent image" + docker build -t "${MIZU_CI_IMAGE}" . +else + echo "not building docker image in CI because it is created as separate step" +fi -echo "Build agent image" -docker build -t mizu/ci:0.0 . +minikube image load "${MIZU_CI_IMAGE}" echo "Build cli" cd cli && make build GIT_BRANCH=ci SUFFIX=ci diff --git a/acceptanceTests/testsUtils.go b/acceptanceTests/testsUtils.go index 8a1885369..245ccc201 100644 --- a/acceptanceTests/testsUtils.go +++ b/acceptanceTests/testsUtils.go @@ -212,9 +212,10 @@ func DeleteKubeFile(kubeContext string, namespace string, filename string) error } func getDefaultCommandArgs() []string { + agentImageValue := os.Getenv("MIZU_CI_IMAGE") setFlag := "--set" telemetry := "telemetry=false" - agentImage := "agent-image=mizu/ci:0.0" + agentImage := fmt.Sprintf("agent-image=%s", agentImageValue) imagePullPolicy := "image-pull-policy=IfNotPresent" headless := "headless=true" From fadd052f0298328051b7521614a4b585b23f5df8 Mon Sep 17 00:00:00 2001 From: David Levanon Date: Mon, 25 Apr 2022 13:42:52 +0300 Subject: [PATCH 3/3] init tls entries capture time (#1042) --- tap/tlstapper/tls_poller.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tap/tlstapper/tls_poller.go b/tap/tlstapper/tls_poller.go index eb4ec115f..7b521a9a9 100644 --- a/tap/tlstapper/tls_poller.go +++ b/tap/tlstapper/tls_poller.go @@ -6,6 +6,7 @@ import ( "fmt" "net" "sync" + "time" "encoding/binary" "encoding/hex" @@ -165,9 +166,13 @@ func (p *tlsPoller) startNewTlsReader(chunk *tlsChunk, ip net.IP, port uint16, k func dissect(extension *api.Extension, reader *tlsReader, isRequest bool, tcpid *api.TcpID, tlsEmitter *tlsEmitter, options *api.TrafficFilteringOptions, reqResMatcher api.RequestResponseMatcher) { b := bufio.NewReader(reader) + + timer := api.SuperTimer{ + CaptureTime: time.Now(), + } err := extension.Dissector.Dissect(b, reader.progress, api.Ebpf, isRequest, tcpid, &api.CounterPair{}, - &api.SuperTimer{}, &api.SuperIdentifier{}, tlsEmitter, options, reqResMatcher) + &timer, &api.SuperIdentifier{}, tlsEmitter, options, reqResMatcher) if err != nil { logger.Log.Warningf("Error dissecting TLS %v - %v", tcpid, err)