Rename the project to Kubeshark (#1226)

* Rename `mizu` to `kubeshark`

* Rename `up9inc` to `kubeshark`

* Change the logo, title, motto and the main color

* Replace the favicon

* Update the docs link

* Change the copyright text in C files

* Remove a comment

* Rewrite the `README.md` and update the logo and screenshots used in it

* Add a `TODO`

* Fix the grammar

* Fix the bottom text in the filtering guide

* Change the Docker Hub username of cross-compilation intermediate images

* Add an install script

* Fix `docker/login-action` in the CI

* Delete `build-custom-branch.yml` GitHub workflow

* Update `README.md`

* Remove `install.sh`

* Change the motto back to "Traffic viewer for Kubernetes"
This commit is contained in:
M. Mert Yıldıran 2022-11-19 00:13:15 -08:00 committed by GitHub
parent e52ba1f05d
commit 0eb7883a47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
286 changed files with 1607 additions and 1424 deletions

View File

@ -12,7 +12,7 @@ A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Run `mizu <command> ...`
1. Run `kubeshark <command> ...`
2. Click on '...'
3. Scroll down to '...'
4. See error
@ -22,10 +22,10 @@ A clear and concise description of what you expected to happen.
**Logs**
Upload logs:
1. Run the mizu command with `--set dump-logs=true` (e.g `mizu tap --set dump-logs=true`)
1. Run the kubeshark command with `--set dump-logs=true` (e.g `kubeshark tap --set dump-logs=true`)
2. Try to reproduce the issue
3. <kbd>CTRL</kbd>+<kbd>C</kbd> on terminal tab which runs `mizu`
4. Upload the logs zip file from `~/.mizu/mizu_logs_**.zip`
3. <kbd>CTRL</kbd>+<kbd>C</kbd> on terminal tab which runs `kubeshark`
4. Upload the logs zip file from `~/.kubeshark/kubeshark_logs_**.zip`
**Screenshots**
If applicable, add screenshots to help explain your problem.

View File

@ -9,7 +9,7 @@ on:
- 'develop'
env:
MIZU_CI_IMAGE: mizu/ci:0.0
KUBESHARK_CI_IMAGE: kubeshark/ci:0.0
jobs:
run-acceptance-tests:
@ -33,7 +33,7 @@ jobs:
context: .
push: false
load: true
tags: ${{ env.MIZU_CI_IMAGE }}
tags: ${{ env.KUBESHARK_CI_IMAGE }}
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@ -3,7 +3,7 @@ name: Acceptance tests on PR
on: push
env:
MIZU_CI_IMAGE: mizu/ci:0.0
KUBESHARK_CI_IMAGE: kubeshark/ci:0.0
concurrency:
group: acceptance-tests-on-pr-${{ github.ref }}
@ -33,7 +33,7 @@ jobs:
context: .
push: false
load: true
tags: ${{ env.MIZU_CI_IMAGE }}
tags: ${{ env.KUBESHARK_CI_IMAGE }}
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@ -1,44 +0,0 @@
name: Build Custom Branch
on: push
concurrency:
group: custom-branch-build-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Push custom branch image to GCR
runs-on: ubuntu-latest
if: ${{ contains(github.event.head_commit.message, '#build_and_publish_custom_image') }}
steps:
- name: Check out the repo
uses: actions/checkout@v2
- id: 'auth'
uses: 'google-github-actions/auth@v0'
with:
credentials_json: '${{ secrets.GCR_JSON_KEY }}'
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v0'
- name: Get base image name
shell: bash
run: echo "##[set-output name=image;]$(echo gcr.io/up9-docker-hub/mizu/${GITHUB_REF#refs/heads/})"
id: base_image_step
- name: Login to GCR
uses: docker/login-action@v1
with:
registry: gcr.io
username: _json_key
password: ${{ secrets.GCR_JSON_KEY }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: ${{ steps.base_image_step.outputs.image }}:latest

View File

@ -7,7 +7,7 @@ on:
- 'main'
concurrency:
group: mizu-pr-validation-${{ github.ref }}
group: kubeshark-pr-validation-${{ github.ref }}
cancel-in-progress: true
jobs:
@ -57,6 +57,6 @@ jobs:
with:
context: .
push: false
tags: up9inc/mizu:devlatest
tags: kubeshark/kubeshark:devlatest
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@ -7,7 +7,7 @@ on:
- 'main'
concurrency:
group: mizu-publish-${{ github.ref }}
group: kubeshark-publish-${{ github.ref }}
cancel-in-progress: true
jobs:
@ -55,7 +55,7 @@ jobs:
uses: docker/metadata-action@v3
with:
images: |
up9inc/mizu
kubeshark/kubeshark
tags: |
type=raw,${{ steps.versioning.outputs.version }}
type=raw,value=latest,enable=${{ steps.condval.outputs.value == 'stable' }}
@ -66,10 +66,10 @@ jobs:
suffix=-${{ matrix.target }},onlatest=true
- name: Login to Docker Hub
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASS }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
@ -118,16 +118,16 @@ jobs:
uses: docker/metadata-action@v3
with:
images: |
up9inc/mizu
kubeshark/kubeshark
tags: |
type=raw,${{ steps.versioning.outputs.version }}
type=raw,value=latest,enable=${{ steps.condval.outputs.value == 'stable' }}
type=raw,value=dev-latest,enable=${{ steps.condval.outputs.value == 'dev' }}
- name: Login to Docker Hub
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASS }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create manifest
run: |

View File

@ -11,7 +11,7 @@ on:
- 'main'
concurrency:
group: mizu-tests-validation-${{ github.ref }}
group: kubeshark-tests-validation-${{ github.ref }}
cancel-in-progress: true
jobs:

2
.gitignore vendored
View File

@ -53,7 +53,7 @@ tap/extensions/*/expect
**/node_modules/**
**/dist/**
*.editorconfig
ui/up9-mizu-common-0.0.0.tgz
ui/up9-kubeshark-common-0.0.0.tgz
# Ignore *.log files
*.log

View File

@ -17,7 +17,7 @@ FROM node:16 AS front-end
WORKDIR /app/ui-build
COPY ui/package.json ui/package-lock.json ./
COPY --from=front-end-common ["/app/ui-build/up9-mizu-common-0.0.0.tgz", "."]
COPY --from=front-end-common ["/app/ui-build/up9-kubeshark-common-0.0.0.tgz", "."]
RUN npm i
COPY ui .
RUN npm run build
@ -54,14 +54,14 @@ ENV BPF_TARGET=arm64 BPF_CFLAGS="-O2 -g -D__TARGET_ARCH_arm64"
### Builder image for x86-64 to AArch64 cross-compilation
FROM up9inc/linux-arm64-musl-go-libpcap-capstone-bpf:capstone-5.0-rc2 AS builder-from-amd64-to-arm64v8
FROM kubeshark/linux-arm64-musl-go-libpcap-capstone-bpf:capstone-5.0-rc2 AS builder-from-amd64-to-arm64v8
ENV CGO_ENABLED=1 GOOS=linux
ENV GOARCH=arm64 CGO_CFLAGS="-I/work/libpcap -I/work/capstone/include"
ENV BPF_TARGET=arm64 BPF_CFLAGS="-O2 -g -D__TARGET_ARCH_arm64 -I/usr/xcc/aarch64-linux-musl-cross/aarch64-linux-musl/include/"
### Builder image for AArch64 to x86-64 cross-compilation
FROM up9inc/linux-x86_64-musl-go-libpcap-capstone-bpf:capstone-5.0-rc2 AS builder-from-arm64v8-to-amd64
FROM kubeshark/linux-x86_64-musl-go-libpcap-capstone-bpf:capstone-5.0-rc2 AS builder-from-arm64v8-to-amd64
ENV CGO_ENABLED=1 GOOS=linux
ENV GOARCH=amd64 CGO_CFLAGS="-I/libpcap -I/capstone/include"
ENV BPF_TARGET=amd64 BPF_CFLAGS="-O2 -g -D__TARGET_ARCH_x86 -I/usr/local/musl/x86_64-unknown-linux-musl/include/"
@ -110,10 +110,10 @@ RUN GOARCH=${BUILDARCH} go generate tls_tapper.go
WORKDIR /app/agent-build
RUN go build -ldflags="-extldflags=-static -s -w \
-X 'github.com/up9inc/mizu/agent/pkg/version.GitCommitHash=${COMMIT_HASH}' \
-X 'github.com/up9inc/mizu/agent/pkg/version.Branch=${GIT_BRANCH}' \
-X 'github.com/up9inc/mizu/agent/pkg/version.BuildTimestamp=${BUILD_TIMESTAMP}' \
-X 'github.com/up9inc/mizu/agent/pkg/version.Ver=${VER}'" -o mizuagent .
-X 'github.com/kubeshark/kubeshark/agent/pkg/version.GitCommitHash=${COMMIT_HASH}' \
-X 'github.com/kubeshark/kubeshark/agent/pkg/version.Branch=${GIT_BRANCH}' \
-X 'github.com/kubeshark/kubeshark/agent/pkg/version.BuildTimestamp=${BUILD_TIMESTAMP}' \
-X 'github.com/kubeshark/kubeshark/agent/pkg/version.Ver=${VER}'" -o kubesharkagent .
# Download Basenine executable, verify the sha1sum
ADD https://github.com/up9inc/basenine/releases/download/v0.8.3/basenine_linux_${GOARCH} ./basenine_linux_${GOARCH}
@ -133,9 +133,9 @@ WORKDIR /app/data/
WORKDIR /app
# Copy binary and config files from /build to root folder of scratch container.
COPY --from=builder ["/app/agent-build/mizuagent", "."]
COPY --from=builder ["/app/agent-build/kubesharkagent", "."]
COPY --from=builder ["/app/agent-build/basenine", "/usr/local/bin/basenine"]
COPY --from=front-end ["/app/ui-build/build", "site"]
# this script runs both apiserver and passivetapper and exits either if one of them exits, preventing a scenario where the container runs without one process
ENTRYPOINT ["/app/mizuagent"]
ENTRYPOINT ["/app/kubesharkagent"]

View File

@ -18,7 +18,7 @@ help: ## This help.
# Variables and lists
TS_SUFFIX="$(shell date '+%s')"
GIT_BRANCH="$(shell git branch | grep \* | cut -d ' ' -f2 | tr '[:upper:]' '[:lower:]' | tr '/' '_')"
BUCKET_PATH=static.up9.io/mizu/$(GIT_BRANCH)
BUCKET_PATH=static.up9.io/kubeshark/$(GIT_BRANCH)
export VER?=0.0
ARCH=$(shell uname -m)
ifeq ($(ARCH),$(filter $(ARCH),aarch64 arm64))
@ -39,8 +39,8 @@ cli-debug: ## Build CLI.
@echo "building cli"; cd cli && $(MAKE) build-debug
agent: bpf ## Build agent.
@(echo "building mizu agent .." )
@(cd agent; go build -o build/mizuagent main.go)
@(echo "building kubeshark agent .." )
@(cd agent; go build -o build/kubesharkagent main.go)
@ls -l agent/build
bpf: $(BPF_O_FILES)
@ -50,8 +50,8 @@ $(BPF_O_FILES): $(wildcard tap/tlstapper/bpf/**/*.[ch])
@(./tap/tlstapper/bpf-builder/build.sh)
agent-debug: ## Build agent for debug.
@(echo "building mizu agent for debug.." )
@(cd agent; go build -gcflags="all=-N -l" -o build/mizuagent main.go)
@(echo "building kubeshark agent for debug.." )
@(cd agent; go build -gcflags="all=-N -l" -o build/kubesharkagent main.go)
@ls -l agent/build
docker: ## Build and publish agent docker image.
@ -59,7 +59,7 @@ docker: ## Build and publish agent docker image.
agent-docker: ## Build agent docker image.
@echo "Building agent docker image"
@docker build -t up9inc/mizu:devlatest .
@docker build -t kubeshark/kubeshark:devlatest .
push: push-docker push-cli ## Build and publish agent docker image & CLI.

View File

@ -1,41 +1,94 @@
![Mizu: The API Traffic Viewer for Kubernetes](assets/mizu-logo.svg)
<p align="center">
<img src="assets/kubeshark-logo.svg" alt="Kubeshark: Traffic viewer for Kubernetes." height="128px"/>
</p>
<p align="center">
<a href="https://github.com/up9inc/mizu/blob/main/LICENSE">
<img alt="GitHub License" src="https://img.shields.io/github/license/up9inc/mizu?logo=GitHub&style=flat-square">
<a href="https://github.com/kubeshark/kubeshark/blob/main/LICENSE">
<img alt="GitHub License" src="https://img.shields.io/github/license/kubeshark/kubeshark?logo=GitHub&style=flat-square">
</a>
<a href="https://github.com/up9inc/mizu/releases/latest">
<img alt="GitHub Latest Release" src="https://img.shields.io/github/v/release/up9inc/mizu?logo=GitHub&style=flat-square">
<a href="https://github.com/kubeshark/kubeshark/releases/latest">
<img alt="GitHub Latest Release" src="https://img.shields.io/github/v/release/kubeshark/kubeshark?logo=GitHub&style=flat-square">
</a>
<a href="https://hub.docker.com/r/up9inc/mizu">
<img alt="Docker pulls" src="https://img.shields.io/docker/pulls/up9inc/mizu?color=%23099cec&logo=Docker&style=flat-square">
<a href="https://hub.docker.com/r/kubeshark/kubeshark">
<img alt="Docker pulls" src="https://img.shields.io/docker/pulls/kubeshark/kubeshark?color=%23099cec&logo=Docker&style=flat-square">
</a>
<a href="https://hub.docker.com/r/up9inc/mizu">
<img alt="Image size" src="https://img.shields.io/docker/image-size/up9inc/mizu/latest?logo=Docker&style=flat-square">
<a href="https://hub.docker.com/r/kubeshark/kubeshark">
<img alt="Image size" src="https://img.shields.io/docker/image-size/kubeshark/kubeshark/latest?logo=Docker&style=flat-square">
</a>
<a href="https://join.slack.com/t/up9/shared_invite/zt-tfjnduli-QzlR8VV4Z1w3YnPIAJfhlQ">
<a href="https://join.slack.com/t/mertyildiran/shared_invite/zt-1k3sybpq9-uAhFkuPJiJftKniqrGHGhg">
<img alt="Slack" src="https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&style=social">
</a>
</p>
# The API Traffic Viewer for Kubernetes
Kubeshark is an **observability and monitoring tool for** [**Kubernetes**](https://kubernetes.io/), enabling **dynamic analysis** of the microservices, detecting **anomalies** and **triggering functions** when certain patterns appear in runtime.
A simple-yet-powerful API traffic viewer for Kubernetes enabling you to view all API communication between microservices to help your debug and troubleshoot regressions.
Think of Kubeshark as a **Kubernetes-aware** combination of [**Wireshark**](https://www.wireshark.org/), [**BPF Compiler Collection (BCC) tools**](https://github.com/iovisor/bcc) and beyond.
Think TCPDump and Wireshark re-invented for Kubernetes.
![Simple UI](assets/kubeshark-ui.png)
![Simple UI](assets/mizu-ui.png)
## Quickstart
## Quickstart and documentation
Installing Kubeshark can't be any easier. Either choose the right binary, download and use directly from [the releases section](https://github.com/kubeshark/kubeshark/releases/), or use a shell script to download the right binary for your operating system and CPU architecture:
You can run Mizu on any Kubernetes cluster (version of 1.16.0 or higher) in a matter of seconds. See the [Mizu Getting Started Guide](https://getmizu.io/docs/) for how.
```shell
sh <(curl -Ls https://kubeshark.co/install)
```
For more comprehensive documentation, start with the [docs](https://getmizu.io/docs/mizu/mizu-cli).
## Deploy
## Working in this repo
Once you have the Kubeshark CLI installed on your system, run the command below to deploy the Kubeshark container into your Kubernetes cluster.
We ❤️ pull requests! See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for info on contributing changes. <br />
In the wiki you can find an intorduction to [mizu components](https://github.com/up9inc/mizu/wiki/Introduction-to-Mizu), and [development workflows](https://github.com/up9inc/mizu/wiki/Development-Workflows).
```shell
kubeshark tap
```
### Troubleshooting Installation
If something doesn't work or simply to play it safe prior to installing, make sure that:
> Kubeshark images are hosted on Docker Hub. Make sure you have access to https://hub.docker.com/
> Make sure `kubeshark` executable in your `PATH`.
### Select Pods
#### Monitoring a Specific Pod:
```shell
kubeshark tap catalogue-b87b45784-sxc8q
```
#### Monitoring a Set of Pods Using Regex:
```shell
kubeshark tap "(catalo*|front-end*)"
```
### Specify the Namespace
By default, Kubeshark is deployed into the `default` namespace.
To specify a different namespace:
```
kubeshark tap -n sock-shop
```
### Specify All Namespaces
The default deployment strategy of Kubeshark waits for the new pods
to be created. To simply deploy to all existing namespaces run:
```
kubeshark tap -A
```
## Documentation
Visit our documentation website: [docs.kubeshark.co](https://docs.kubeshark.co)
The documentation resources are open-source and can be found on GitHub: [kubeshark/docs](https://github.com/kubeshark/docs)
## Contributing
We ❤️ pull requests! See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for the contribution guide.
## Code of Conduct

View File

@ -14,9 +14,9 @@ module.exports = defineConfig({
greenFilterColor: 'rgb(210, 250, 210)',
redFilterColor: 'rgb(250, 214, 220)',
bodyJsonClass: '.hljs',
mizuWidth: 1920,
normalMizuHeight: 1080,
hugeMizuHeight: 3500,
kubesharkWidth: 1920,
normalKubesharkHeight: 1080,
hugeKubesharkHeight: 3500,
},
e2e: {
// We've imported your old cypress plugins here.

View File

@ -14,19 +14,19 @@ export function isValueExistsInElement(shouldInclude, content, domPathToContaine
});
}
export function resizeToHugeMizu() {
cy.viewport(Cypress.env('mizuWidth'), Cypress.env('hugeMizuHeight'));
export function resizeToHugeKubeshark() {
cy.viewport(Cypress.env('kubesharkWidth'), Cypress.env('hugeKubesharkHeight'));
}
export function resizeToNormalMizu() {
cy.viewport(Cypress.env('mizuWidth'), Cypress.env('normalMizuHeight'));
export function resizeToNormalKubeshark() {
cy.viewport(Cypress.env('kubesharkWidth'), Cypress.env('normalKubesharkHeight'));
}
export function verifyMinimumEntries() {
const entriesSent = Cypress.env('entriesCount');
const minimumEntries = Math.round((0.75 * entriesSent));
it(`Making sure that mizu shows at least ${minimumEntries} entries`, function () {
it(`Making sure that kubeshark shows at least ${minimumEntries} entries`, function () {
cy.get('#total-entries').then(number => {
const getNum = () => {
return parseInt(number.text());

View File

@ -1,9 +1,9 @@
import {
isValueExistsInElement,
resizeToHugeMizu,
resizeToHugeKubeshark,
} from "../testHelpers/TrafficHelper";
it('Loading Mizu', function () {
it('Loading Kubeshark', function () {
cy.visit(Cypress.env('testUrl'));
});
@ -12,7 +12,7 @@ checkEntries();
function checkEntries() {
it('checking all entries', function () {
cy.get('#entries-length').should('not.have.text', '0').then(() => {
resizeToHugeMizu();
resizeToHugeKubeshark();
cy.get('#list [id^=entry]').each(entryElement => {
entryElement.click();

View File

@ -1,6 +1,6 @@
import {isValueExistsInElement} from '../testHelpers/TrafficHelper';
it('Loading Mizu', function () {
it('Loading Kubeshark', function () {
cy.visit(Cypress.env('testUrl'));
});

View File

@ -1,6 +1,6 @@
import {checkFilterByMethod, valueTabs,} from "../testHelpers/TrafficHelper";
it('opening mizu', function () {
it('opening kubeshark', function () {
cy.visit(Cypress.env('testUrl'));
});

View File

@ -1,6 +1,6 @@
import {isValueExistsInElement} from '../testHelpers/TrafficHelper';
it('Loading Mizu', function () {
it('Loading Kubeshark', function () {
cy.visit(Cypress.env('testUrl'));
});

View File

@ -1,6 +1,6 @@
import {checkFilterByMethod, valueTabs,} from "../testHelpers/TrafficHelper";
it('opening mizu', function () {
it('opening kubeshark', function () {
cy.visit(Cypress.env('testUrl'));
});

View File

@ -3,8 +3,8 @@ import {
getEntryId,
leftOnHoverCheck,
leftTextCheck,
resizeToHugeMizu,
resizeToNormalMizu,
resizeToHugeKubeshark,
resizeToNormalKubeshark,
rightOnHoverCheck,
rightTextCheck,
verifyMinimumEntries,
@ -20,7 +20,7 @@ podsArray.forEach((podStr, index) => {
podsArray[index] = getExpectedDetailsDict(podAndNamespaceArr[0], podAndNamespaceArr[1]);
});
it('opening mizu', function () {
it('opening kubeshark', function () {
cy.visit(Cypress.env('testUrl'));
});
@ -98,11 +98,11 @@ if (Cypress.env('shouldCheckSrcAndDest')) {
});
checkFilter({
filter: `dst.name == "httpbin.mizu-tests"`,
filter: `dst.name == "httpbin.kubeshark-tests"`,
leftSidePath: '> :nth-child(3) > :nth-child(2) > :nth-child(3) > :nth-child(2)',
leftSideExpectedText: 'httpbin.mizu-tests',
leftSideExpectedText: 'httpbin.kubeshark-tests',
rightSidePath: '> :nth-child(2) > :nth-child(2) > :nth-child(2) > :nth-child(3) > :nth-child(2)',
rightSideExpectedText: 'httpbin.mizu-tests',
rightSideExpectedText: 'httpbin.kubeshark-tests',
applyByCtrlEnter: false,
numberOfRecords: 20
});
@ -224,7 +224,7 @@ function checkFilter(filterDetails) {
checkRightSideResponseBody();
});
resizeToHugeMizu();
resizeToHugeKubeshark();
// checking only 'leftTextCheck' on all entries because the rest of the checks require more time
cy.get(`#list [id^=entry]`).each(elem => {
@ -237,7 +237,7 @@ function checkFilter(filterDetails) {
deeperCheck(leftSidePath, rightSidePath, filter, rightSideExpectedText, entriesForDeeperCheck);
// reloading then waiting for the entries number to load
resizeToNormalMizu();
resizeToNormalKubeshark();
cy.reload();
waitForFetch(numberOfRecords);
pauseStream();
@ -320,7 +320,7 @@ function serviceMapCheck() {
cy.wait('@serviceMapRequest').then(({response}) => {
const body = response.body;
const nodeParams = {
destination: 'httpbin.mizu-tests',
destination: 'httpbin.kubeshark-tests',
source: '127.0.0.1'
};
serviceMapAPICheck(body, parseInt(entriesNum), nodeParams);

View File

@ -1,11 +1,11 @@
module github.com/up9inc/mizu/acceptanceTests
module github.com/kubeshark/kubeshark/acceptanceTests
go 1.17
require (
github.com/go-redis/redis/v8 v8.11.4
github.com/rabbitmq/amqp091-go v1.3.0
github.com/up9inc/mizu/shared v0.0.0
github.com/kubeshark/kubeshark/shared v0.0.0
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
k8s.io/apimachinery v0.23.3
k8s.io/client-go v0.23.3
@ -47,10 +47,10 @@ require (
sigs.k8s.io/yaml v1.3.0 // indirect
)
replace github.com/up9inc/mizu/logger v0.0.0 => ../logger
replace github.com/kubeshark/kubeshark/logger v0.0.0 => ../logger
replace github.com/up9inc/mizu/shared v0.0.0 => ../shared
replace github.com/kubeshark/kubeshark/shared v0.0.0 => ../shared
replace github.com/up9inc/mizu/tap/api v0.0.0 => ../tap/api
replace github.com/kubeshark/kubeshark/tap/api v0.0.0 => ../tap/api
replace github.com/up9inc/mizu/tap/dbgctl v0.0.0 => ../tap/dbgctl
replace github.com/kubeshark/kubeshark/tap/dbgctl v0.0.0 => ../tap/dbgctl

View File

@ -81,27 +81,27 @@ func TestLogs(t *testing.T) {
logsFileNames = append(logsFileNames, file.Name)
}
if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") {
if !Contains(logsFileNames, "kubeshark.kubeshark-api-server.kubeshark-api-server.log") {
t.Errorf("api server logs not found")
return
}
if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") {
if !Contains(logsFileNames, "kubeshark.kubeshark-api-server.basenine.log") {
t.Errorf("basenine logs not found")
return
}
if !Contains(logsFileNames, "mizu_cli.log") {
if !Contains(logsFileNames, "kubeshark_cli.log") {
t.Errorf("cli logs not found")
return
}
if !Contains(logsFileNames, "mizu_events.log") {
if !Contains(logsFileNames, "kubeshark_events.log") {
t.Errorf("events logs not found")
return
}
if !ContainsPartOfValue(logsFileNames, "mizu.mizu-tapper-daemon-set") {
if !ContainsPartOfValue(logsFileNames, "kubeshark.kubeshark-tapper-daemon-set") {
t.Errorf("tapper logs not found")
return
}
@ -179,27 +179,27 @@ func TestLogsPath(t *testing.T) {
logsFileNames = append(logsFileNames, file.Name)
}
if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") {
if !Contains(logsFileNames, "kubeshark.kubeshark-api-server.kubeshark-api-server.log") {
t.Errorf("api server logs not found")
return
}
if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") {
if !Contains(logsFileNames, "kubeshark.kubeshark-api-server.basenine.log") {
t.Errorf("basenine logs not found")
return
}
if !Contains(logsFileNames, "mizu_cli.log") {
if !Contains(logsFileNames, "kubeshark_cli.log") {
t.Errorf("cli logs not found")
return
}
if !Contains(logsFileNames, "mizu_events.log") {
if !Contains(logsFileNames, "kubeshark_events.log") {
t.Errorf("events logs not found")
return
}
if !ContainsPartOfValue(logsFileNames, "mizu.mizu-tapper-daemon-set") {
if !ContainsPartOfValue(logsFileNames, "kubeshark.kubeshark-tapper-daemon-set") {
t.Errorf("tapper logs not found")
return
}

View File

@ -29,33 +29,33 @@ fi
echo "Starting minikube..."
minikube start --cpus 2 --memory 6000
echo "Creating mizu tests namespaces"
kubectl create namespace mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create namespace mizu-tests2 --dry-run=client -o yaml | kubectl apply -f -
echo "Creating kubeshark tests namespaces"
kubectl create namespace kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create namespace kubeshark-tests2 --dry-run=client -o yaml | kubectl apply -f -
echo "Creating httpbin deployments"
kubectl create deployment httpbin --image=kennethreitz/httpbin -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create deployment httpbin2 --image=kennethreitz/httpbin -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create deployment httpbin --image=kennethreitz/httpbin -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create deployment httpbin2 --image=kennethreitz/httpbin -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create deployment httpbin --image=kennethreitz/httpbin -n mizu-tests2 --dry-run=client -o yaml | kubectl apply -f -
kubectl create deployment httpbin --image=kennethreitz/httpbin -n kubeshark-tests2 --dry-run=client -o yaml | kubectl apply -f -
echo "Creating redis deployment"
kubectl create deployment redis --image=redis -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create deployment redis --image=redis -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
echo "Creating rabbitmq deployment"
kubectl create deployment rabbitmq --image=rabbitmq -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl create deployment rabbitmq --image=rabbitmq -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
echo "Creating httpbin services"
kubectl expose deployment httpbin --type=NodePort --port=80 -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment httpbin2 --type=NodePort --port=80 -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment httpbin --type=NodePort --port=80 -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment httpbin2 --type=NodePort --port=80 -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment httpbin --type=NodePort --port=80 -n mizu-tests2 --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment httpbin --type=NodePort --port=80 -n kubeshark-tests2 --dry-run=client -o yaml | kubectl apply -f -
echo "Creating redis service"
kubectl expose deployment redis --type=LoadBalancer --port=6379 -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment redis --type=LoadBalancer --port=6379 -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
echo "Creating rabbitmq service"
kubectl expose deployment rabbitmq --type=LoadBalancer --port=5672 -n mizu-tests --dry-run=client -o yaml | kubectl apply -f -
kubectl expose deployment rabbitmq --type=LoadBalancer --port=5672 -n kubeshark-tests --dry-run=client -o yaml | kubectl apply -f -
echo "Starting proxy"
rm -f ${PROXY_LOG}
@ -64,15 +64,15 @@ PID1=$!
echo "kubectl proxy process id is ${PID1} and log of proxy in ${PROXY_LOG}"
if [[ -z "${CI}" ]]; then
echo "Setting env var of mizu ci image"
export MIZU_CI_IMAGE="mizu/ci:0.0"
echo "Setting env var of kubeshark ci image"
export KUBESHARK_CI_IMAGE="kubeshark/ci:0.0"
echo "Build agent image"
docker build -t "${MIZU_CI_IMAGE}" .
docker build -t "${KUBESHARK_CI_IMAGE}" .
else
echo "not building docker image in CI because it is created as separate step"
fi
minikube image load "${MIZU_CI_IMAGE}"
minikube image load "${KUBESHARK_CI_IMAGE}"
echo "Build cli"
cd cli && make build GIT_BRANCH=ci SUFFIX=ci

View File

@ -15,7 +15,7 @@ func TestTap(t *testing.T) {
basicTapTest(t, false)
}
func basicTapTest(t *testing.T, shouldCheckSrcAndDest bool, extraArgs... string) {
func basicTapTest(t *testing.T, shouldCheckSrcAndDest bool, extraArgs ...string) {
if testing.Short() {
t.Skip("ignored acceptance test")
}
@ -67,8 +67,8 @@ func basicTapTest(t *testing.T, shouldCheckSrcAndDest bool, extraArgs... string)
}
expectedPods := []PodDescriptor{
{Name: "httpbin", Namespace: "mizu-tests"},
{Name: "httpbin2", Namespace: "mizu-tests"},
{Name: "httpbin", Namespace: "kubeshark-tests"},
{Name: "httpbin2", Namespace: "kubeshark-tests"},
}
var expectedPodsStr string
@ -134,7 +134,7 @@ func TestTapGuiPort(t *testing.T) {
}
RunCypressTests(t, fmt.Sprintf("npx cypress run --spec \"cypress/e2e/tests/GuiPort.js\" --env name=%v,namespace=%v,port=%d",
"httpbin", "mizu-tests", guiPort))
"httpbin", "kubeshark-tests", guiPort))
})
}
}
@ -145,9 +145,9 @@ func TestTapAllNamespaces(t *testing.T) {
}
expectedPods := []PodDescriptor{
{Name: "httpbin", Namespace: "mizu-tests"},
{Name: "httpbin2", Namespace: "mizu-tests"},
{Name: "httpbin", Namespace: "mizu-tests2"},
{Name: "httpbin", Namespace: "kubeshark-tests"},
{Name: "httpbin2", Namespace: "kubeshark-tests"},
{Name: "httpbin", Namespace: "kubeshark-tests2"},
}
cliPath, cliPathErr := GetCliPath()
@ -190,9 +190,9 @@ func TestTapMultipleNamespaces(t *testing.T) {
}
expectedPods := []PodDescriptor{
{Name: "httpbin", Namespace: "mizu-tests"},
{Name: "httpbin2", Namespace: "mizu-tests"},
{Name: "httpbin", Namespace: "mizu-tests2"},
{Name: "httpbin", Namespace: "kubeshark-tests"},
{Name: "httpbin2", Namespace: "kubeshark-tests"},
{Name: "httpbin", Namespace: "kubeshark-tests2"},
}
cliPath, cliPathErr := GetCliPath()
@ -240,7 +240,7 @@ func TestTapRegex(t *testing.T) {
regexPodName := "httpbin2"
expectedPods := []PodDescriptor{
{Name: regexPodName, Namespace: "mizu-tests"},
{Name: regexPodName, Namespace: "kubeshark-tests"},
}
cliPath, cliPathErr := GetCliPath()
@ -365,8 +365,8 @@ func TestTapRedact(t *testing.T) {
}
proxyUrl := GetProxyUrl(DefaultNamespaceName, DefaultServiceName)
requestHeaders := map[string]string{"User-Header": "Mizu"}
requestBody := map[string]string{"User": "Mizu"}
requestHeaders := map[string]string{"User-Header": "Kubeshark"}
requestBody := map[string]string{"User": "Kubeshark"}
for i := 0; i < DefaultEntriesCount; i++ {
if _, requestErr := ExecuteHttpPostRequestWithHeaders(fmt.Sprintf("%v/post", proxyUrl), requestHeaders, requestBody); requestErr != nil {
t.Errorf("failed to send proxy request, err: %v", requestErr)
@ -415,8 +415,8 @@ func TestTapNoRedact(t *testing.T) {
}
proxyUrl := GetProxyUrl(DefaultNamespaceName, DefaultServiceName)
requestHeaders := map[string]string{"User-Header": "Mizu"}
requestBody := map[string]string{"User": "Mizu"}
requestHeaders := map[string]string{"User-Header": "Kubeshark"}
requestBody := map[string]string{"User": "Kubeshark"}
for i := 0; i < DefaultEntriesCount; i++ {
if _, requestErr := ExecuteHttpPostRequestWithHeaders(fmt.Sprintf("%v/post", proxyUrl), requestHeaders, requestBody); requestErr != nil {
t.Errorf("failed to send proxy request, err: %v", requestErr)
@ -526,23 +526,23 @@ func TestTapDumpLogs(t *testing.T) {
return
}
mizuFolderPath, mizuPathErr := GetMizuFolderPath()
if mizuPathErr != nil {
t.Errorf("failed to get mizu folder path, err: %v", mizuPathErr)
kubesharkFolderPath, kubesharkPathErr := GetKubesharkFolderPath()
if kubesharkPathErr != nil {
t.Errorf("failed to get kubeshark folder path, err: %v", kubesharkPathErr)
return
}
files, readErr := ioutil.ReadDir(mizuFolderPath)
files, readErr := ioutil.ReadDir(kubesharkFolderPath)
if readErr != nil {
t.Errorf("failed to read mizu folder files, err: %v", readErr)
t.Errorf("failed to read kubeshark folder files, err: %v", readErr)
return
}
var dumpLogsPath string
for _, file := range files {
fileName := file.Name()
if strings.Contains(fileName, "mizu_logs") {
dumpLogsPath = path.Join(mizuFolderPath, fileName)
if strings.Contains(fileName, "kubeshark_logs") {
dumpLogsPath = path.Join(kubesharkFolderPath, fileName)
break
}
}
@ -569,27 +569,27 @@ func TestTapDumpLogs(t *testing.T) {
logsFileNames = append(logsFileNames, file.Name)
}
if !Contains(logsFileNames, "mizu.mizu-api-server.mizu-api-server.log") {
if !Contains(logsFileNames, "kubeshark.kubeshark-api-server.kubeshark-api-server.log") {
t.Errorf("api server logs not found")
return
}
if !Contains(logsFileNames, "mizu.mizu-api-server.basenine.log") {
if !Contains(logsFileNames, "kubeshark.kubeshark-api-server.basenine.log") {
t.Errorf("basenine logs not found")
return
}
if !Contains(logsFileNames, "mizu_cli.log") {
if !Contains(logsFileNames, "kubeshark_cli.log") {
t.Errorf("cli logs not found")
return
}
if !Contains(logsFileNames, "mizu_events.log") {
if !Contains(logsFileNames, "kubeshark_events.log") {
t.Errorf("events logs not found")
return
}
if !ContainsPartOfValue(logsFileNames, "mizu.mizu-tapper-daemon-set") {
if !ContainsPartOfValue(logsFileNames, "kubeshark.kubeshark-tapper-daemon-set") {
t.Errorf("tapper logs not found")
return
}
@ -613,7 +613,7 @@ func TestIpResolving(t *testing.T) {
}
func TestRestrictedMode(t *testing.T) {
namespace := "mizu-tests"
namespace := "kubeshark-tests"
t.Log("creating permissions for restricted user")
if err := ApplyKubeFilesForTest(
@ -632,6 +632,6 @@ func TestRestrictedMode(t *testing.T) {
return
}
extraArgs := []string{"--set", fmt.Sprintf("mizu-resources-namespace=%s", namespace)}
t.Run("basic tap", func (testingT *testing.T) {basicTapTest(testingT, false, extraArgs...)})
extraArgs := []string{"--set", fmt.Sprintf("kubeshark-resources-namespace=%s", namespace)}
t.Run("basic tap", func(testingT *testing.T) { basicTapTest(testingT, false, extraArgs...) })
}

View File

@ -21,14 +21,14 @@ import (
"k8s.io/client-go/tools/clientcmd"
"k8s.io/client-go/util/homedir"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/shared"
)
const (
LongRetriesCount = 100
ShortRetriesCount = 10
DefaultApiServerPort = shared.DefaultApiServerPort
DefaultNamespaceName = "mizu-tests"
DefaultNamespaceName = "kubeshark-tests"
DefaultServiceName = "httpbin"
DefaultEntriesCount = 50
WaitAfterTapPodsReady = 3 * time.Second
@ -46,26 +46,26 @@ func GetCliPath() (string, error) {
return "", filePathErr
}
cliPath := path.Join(dir, "../cli/bin/mizu_ci")
cliPath := path.Join(dir, "../cli/bin/kubeshark_ci")
return cliPath, nil
}
func GetMizuFolderPath() (string, error) {
func GetKubesharkFolderPath() (string, error) {
home, homeDirErr := os.UserHomeDir()
if homeDirErr != nil {
return "", homeDirErr
}
return path.Join(home, ".mizu"), nil
return path.Join(home, ".kubeshark"), nil
}
func GetConfigPath() (string, error) {
mizuFolderPath, mizuPathError := GetMizuFolderPath()
if mizuPathError != nil {
return "", mizuPathError
kubesharkFolderPath, kubesharkPathError := GetKubesharkFolderPath()
if kubesharkPathError != nil {
return "", kubesharkPathError
}
return path.Join(mizuFolderPath, "config.yaml"), nil
return path.Join(kubesharkFolderPath, "config.yaml"), nil
}
func GetProxyUrl(namespace string, service string) string {
@ -213,7 +213,7 @@ func DeleteKubeFile(kubeContext string, namespace string, filename string) error
}
func getDefaultCommandArgs() []string {
agentImageValue := os.Getenv("MIZU_CI_IMAGE")
agentImageValue := os.Getenv("KUBESHARK_CI_IMAGE")
setFlag := "--set"
agentImage := fmt.Sprintf("agent-image=%s", agentImageValue)
imagePullPolicy := "image-pull-policy=IfNotPresent"
@ -244,7 +244,7 @@ func GetDefaultLogsCommandArgs() []string {
}
func GetDefaultTapNamespace() []string {
return []string{"-n", "mizu-tests"}
return []string{"-n", "kubeshark-tests"}
}
func GetDefaultConfigCommandArgs() []string {
@ -397,7 +397,7 @@ func GetLogsPath() (string, error) {
return "", filePathErr
}
logsPath := path.Join(dir, "mizu_logs.zip")
logsPath := path.Join(dir, "kubeshark_logs.zip")
return logsPath, nil
}

View File

@ -1,4 +1,4 @@
module github.com/up9inc/mizu/agent
module github.com/kubeshark/kubeshark/agent
go 1.17
@ -15,20 +15,20 @@ require (
github.com/google/uuid v1.3.0
github.com/gorilla/websocket v1.4.2
github.com/jinzhu/copier v0.3.5
github.com/kubeshark/kubeshark/logger v0.0.0
github.com/kubeshark/kubeshark/shared v0.0.0
github.com/kubeshark/kubeshark/tap v0.0.0
github.com/kubeshark/kubeshark/tap/api v0.0.0
github.com/kubeshark/kubeshark/tap/dbgctl v0.0.0
github.com/kubeshark/kubeshark/tap/extensions/amqp v0.0.0
github.com/kubeshark/kubeshark/tap/extensions/http v0.0.0
github.com/kubeshark/kubeshark/tap/extensions/kafka v0.0.0
github.com/kubeshark/kubeshark/tap/extensions/redis v0.0.0
github.com/nav-inc/datetime v0.1.3
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
github.com/orcaman/concurrent-map v1.0.0
github.com/stretchr/testify v1.7.0
github.com/up9inc/basenine/client/go v0.0.0-20220612112747-3b28eeac9c51
github.com/up9inc/mizu/logger v0.0.0
github.com/up9inc/mizu/shared v0.0.0
github.com/up9inc/mizu/tap v0.0.0
github.com/up9inc/mizu/tap/api v0.0.0
github.com/up9inc/mizu/tap/dbgctl v0.0.0
github.com/up9inc/mizu/tap/extensions/amqp v0.0.0
github.com/up9inc/mizu/tap/extensions/http v0.0.0
github.com/up9inc/mizu/tap/extensions/kafka v0.0.0
github.com/up9inc/mizu/tap/extensions/redis v0.0.0
github.com/wI2L/jsondiff v0.1.1
k8s.io/api v0.23.3
k8s.io/apimachinery v0.23.3
@ -144,20 +144,20 @@ require (
sigs.k8s.io/yaml v1.3.0 // indirect
)
replace github.com/up9inc/mizu/logger v0.0.0 => ../logger
replace github.com/kubeshark/kubeshark/logger v0.0.0 => ../logger
replace github.com/up9inc/mizu/shared v0.0.0 => ../shared
replace github.com/kubeshark/kubeshark/shared v0.0.0 => ../shared
replace github.com/up9inc/mizu/tap v0.0.0 => ../tap
replace github.com/kubeshark/kubeshark/tap v0.0.0 => ../tap
replace github.com/up9inc/mizu/tap/api v0.0.0 => ../tap/api
replace github.com/kubeshark/kubeshark/tap/api v0.0.0 => ../tap/api
replace github.com/up9inc/mizu/tap/extensions/amqp v0.0.0 => ../tap/extensions/amqp
replace github.com/kubeshark/kubeshark/tap/extensions/amqp v0.0.0 => ../tap/extensions/amqp
replace github.com/up9inc/mizu/tap/extensions/http v0.0.0 => ../tap/extensions/http
replace github.com/kubeshark/kubeshark/tap/extensions/http v0.0.0 => ../tap/extensions/http
replace github.com/up9inc/mizu/tap/extensions/kafka v0.0.0 => ../tap/extensions/kafka
replace github.com/kubeshark/kubeshark/tap/extensions/kafka v0.0.0 => ../tap/extensions/kafka
replace github.com/up9inc/mizu/tap/extensions/redis v0.0.0 => ../tap/extensions/redis
replace github.com/kubeshark/kubeshark/tap/extensions/redis v0.0.0 => ../tap/extensions/redis
replace github.com/up9inc/mizu/tap/dbgctl v0.0.0 => ../tap/dbgctl
replace github.com/kubeshark/kubeshark/tap/dbgctl v0.0.0 => ../tap/dbgctl

View File

@ -101,7 +101,6 @@ github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A=
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=

View File

@ -17,32 +17,32 @@ import (
"github.com/gin-contrib/pprof"
"github.com/gin-contrib/static"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/entries"
"github.com/up9inc/mizu/agent/pkg/middlewares"
"github.com/up9inc/mizu/agent/pkg/models"
"github.com/up9inc/mizu/agent/pkg/oas"
"github.com/up9inc/mizu/agent/pkg/routes"
"github.com/up9inc/mizu/agent/pkg/servicemap"
"github.com/up9inc/mizu/agent/pkg/utils"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/entries"
"github.com/kubeshark/kubeshark/agent/pkg/middlewares"
"github.com/kubeshark/kubeshark/agent/pkg/models"
"github.com/kubeshark/kubeshark/agent/pkg/oas"
"github.com/kubeshark/kubeshark/agent/pkg/routes"
"github.com/kubeshark/kubeshark/agent/pkg/servicemap"
"github.com/kubeshark/kubeshark/agent/pkg/utils"
"github.com/up9inc/mizu/agent/pkg/api"
"github.com/up9inc/mizu/agent/pkg/app"
"github.com/up9inc/mizu/agent/pkg/config"
"github.com/kubeshark/kubeshark/agent/pkg/api"
"github.com/kubeshark/kubeshark/agent/pkg/app"
"github.com/kubeshark/kubeshark/agent/pkg/config"
"github.com/gorilla/websocket"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
"github.com/kubeshark/kubeshark/tap"
tapApi "github.com/kubeshark/kubeshark/tap/api"
"github.com/kubeshark/kubeshark/tap/dbgctl"
"github.com/op/go-logging"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/up9inc/mizu/tap"
tapApi "github.com/up9inc/mizu/tap/api"
"github.com/up9inc/mizu/tap/dbgctl"
)
var tapperMode = flag.Bool("tap", false, "Run in tapper mode without API")
var apiServerMode = flag.Bool("api-server", false, "Run in API server mode with API")
var standaloneMode = flag.Bool("standalone", false, "Run in standalone tapper and API mode")
var apiServerAddress = flag.String("api-server-address", "", "Address of mizu API server")
var apiServerAddress = flag.String("api-server-address", "", "Address of kubeshark API server")
var namespace = flag.String("namespace", "", "Resolve IPs if they belong to resources in this namespace (default is all)")
var harsReaderMode = flag.Bool("hars-read", false, "Run in hars-read mode")
var harsDir = flag.String("hars-dir", "", "Directory to read hars from")
@ -94,7 +94,7 @@ func hostApi(socketHarOutputChannel chan<- *tapApi.OutputChannelItem) *gin.Engin
ginApp := gin.Default()
ginApp.GET("/echo", func(c *gin.Context) {
c.JSON(http.StatusOK, "Here is Mizu agent")
c.JSON(http.StatusOK, "Here is Kubeshark agent")
})
eventHandlers := api.RoutesEventHandlers{
@ -240,7 +240,7 @@ func setUIFlags(uiIndexPath string) error {
}
func getTrafficFilteringOptions() *tapApi.TrafficFilteringOptions {
filteringOptionsJson := os.Getenv(shared.MizuFilteringOptionsEnvVar)
filteringOptionsJson := os.Getenv(shared.KubesharkFilteringOptionsEnvVar)
if filteringOptionsJson == "" {
return &tapApi.TrafficFilteringOptions{
IgnoredUserAgents: []string{},
@ -249,7 +249,7 @@ func getTrafficFilteringOptions() *tapApi.TrafficFilteringOptions {
var filteringOptions tapApi.TrafficFilteringOptions
err := json.Unmarshal([]byte(filteringOptionsJson), &filteringOptions)
if err != nil {
panic(fmt.Sprintf("env var %s's value of %s is invalid! json must match the api.TrafficFilteringOptions struct %v", shared.MizuFilteringOptionsEnvVar, filteringOptionsJson, err))
panic(fmt.Sprintf("env var %s's value of %s is invalid! json must match the api.TrafficFilteringOptions struct %v", shared.KubesharkFilteringOptionsEnvVar, filteringOptionsJson, err))
}
return &filteringOptions
@ -271,7 +271,7 @@ func pipeTapChannelToSocket(connection *websocket.Conn, messageDataChannel <-cha
continue
}
if dbgctl.MizuTapperDisableSending {
if dbgctl.KubesharkTapperDisableSending {
continue
}

View File

@ -3,9 +3,9 @@ package api
import (
"fmt"
"github.com/kubeshark/kubeshark/agent/pkg/models"
tapApi "github.com/kubeshark/kubeshark/tap/api"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/agent/pkg/models"
tapApi "github.com/up9inc/mizu/tap/api"
)
type EntryStreamerSocketConnector interface {

View File

@ -11,19 +11,19 @@ import (
"strings"
"time"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/oas"
"github.com/up9inc/mizu/agent/pkg/servicemap"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/oas"
"github.com/kubeshark/kubeshark/agent/pkg/servicemap"
"github.com/up9inc/mizu/agent/pkg/har"
"github.com/up9inc/mizu/agent/pkg/holder"
"github.com/up9inc/mizu/agent/pkg/providers"
"github.com/kubeshark/kubeshark/agent/pkg/har"
"github.com/kubeshark/kubeshark/agent/pkg/holder"
"github.com/kubeshark/kubeshark/agent/pkg/providers"
"github.com/up9inc/mizu/agent/pkg/resolver"
"github.com/up9inc/mizu/agent/pkg/utils"
"github.com/kubeshark/kubeshark/agent/pkg/resolver"
"github.com/kubeshark/kubeshark/agent/pkg/utils"
"github.com/up9inc/mizu/logger"
tapApi "github.com/up9inc/mizu/tap/api"
"github.com/kubeshark/kubeshark/logger"
tapApi "github.com/kubeshark/kubeshark/tap/api"
)
var k8sResolver *resolver.Resolver
@ -106,27 +106,27 @@ func startReadingChannel(outputItems <-chan *tapApi.OutputChannelItem, extension
namespace = item.Namespace
}
mizuEntry := extension.Dissector.Analyze(item, resolvedSource, resolvedDestination, namespace)
kubesharkEntry := extension.Dissector.Analyze(item, resolvedSource, resolvedDestination, namespace)
data, err := json.Marshal(mizuEntry)
data, err := json.Marshal(kubesharkEntry)
if err != nil {
logger.Log.Errorf("Error while marshaling entry: %v", err)
continue
}
entryInserter := dependency.GetInstance(dependency.EntriesInserter).(EntryInserter)
if err := entryInserter.Insert(mizuEntry); err != nil {
if err := entryInserter.Insert(kubesharkEntry); err != nil {
logger.Log.Errorf("Error inserting entry, err: %v", err)
}
summary := extension.Dissector.Summarize(mizuEntry)
summary := extension.Dissector.Summarize(kubesharkEntry)
providers.EntryAdded(len(data), summary)
serviceMapGenerator := dependency.GetInstance(dependency.ServiceMapGeneratorDependency).(servicemap.ServiceMapSink)
serviceMapGenerator.NewTCPEntry(mizuEntry.Source, mizuEntry.Destination, &item.Protocol)
serviceMapGenerator.NewTCPEntry(kubesharkEntry.Source, kubesharkEntry.Destination, &item.Protocol)
oasGenerator := dependency.GetInstance(dependency.OasGeneratorDependency).(oas.OasGeneratorSink)
oasGenerator.HandleEntry(mizuEntry)
oasGenerator.HandleEntry(kubesharkEntry)
}
}

View File

@ -3,12 +3,13 @@ package api
import (
"encoding/json"
"fmt"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/up9inc/mizu/tap/api"
"sync"
"time"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
"github.com/kubeshark/kubeshark/tap/api"
basenine "github.com/up9inc/basenine/client/go"
)
type EntryInserter interface {
@ -50,7 +51,7 @@ func (e *BasenineEntryInserter) Insert(entry *api.Entry) error {
return nil
}
func initializeConnection() *basenine.Connection{
func initializeConnection() *basenine.Connection {
for {
connection, err := basenine.NewConnection(shared.BasenineHost, shared.BaseninePort)
if err != nil {

View File

@ -5,11 +5,11 @@ import (
"encoding/json"
"time"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
tapApi "github.com/kubeshark/kubeshark/tap/api"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
tapApi "github.com/up9inc/mizu/tap/api"
)
type EntryStreamer interface {

View File

@ -8,10 +8,10 @@ import (
"github.com/gin-gonic/gin"
"github.com/gorilla/websocket"
"github.com/up9inc/mizu/agent/pkg/models"
"github.com/up9inc/mizu/agent/pkg/utils"
"github.com/up9inc/mizu/logger"
tapApi "github.com/up9inc/mizu/tap/api"
"github.com/kubeshark/kubeshark/agent/pkg/models"
"github.com/kubeshark/kubeshark/agent/pkg/utils"
"github.com/kubeshark/kubeshark/logger"
tapApi "github.com/kubeshark/kubeshark/tap/api"
)
var (

View File

@ -6,15 +6,15 @@ import (
"sync"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/models"
"github.com/up9inc/mizu/agent/pkg/providers/tappedPods"
"github.com/up9inc/mizu/agent/pkg/providers/tappers"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/models"
"github.com/kubeshark/kubeshark/agent/pkg/providers/tappedPods"
"github.com/kubeshark/kubeshark/agent/pkg/providers/tappers"
tapApi "github.com/up9inc/mizu/tap/api"
tapApi "github.com/kubeshark/kubeshark/tap/api"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
)
type BrowserClient struct {

View File

@ -3,9 +3,9 @@ package api
import (
"encoding/json"
"github.com/up9inc/mizu/agent/pkg/providers/tappedPods"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/agent/pkg/providers/tappedPods"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
)
func BroadcastTappedPodsStatus() {

View File

@ -6,18 +6,18 @@ import (
"time"
"github.com/antelman107/net-wait-go/wait"
"github.com/kubeshark/kubeshark/agent/pkg/api"
"github.com/kubeshark/kubeshark/agent/pkg/providers"
"github.com/kubeshark/kubeshark/agent/pkg/utils"
"github.com/kubeshark/kubeshark/logger"
tapApi "github.com/kubeshark/kubeshark/tap/api"
"github.com/kubeshark/kubeshark/tap/dbgctl"
amqpExt "github.com/kubeshark/kubeshark/tap/extensions/amqp"
httpExt "github.com/kubeshark/kubeshark/tap/extensions/http"
kafkaExt "github.com/kubeshark/kubeshark/tap/extensions/kafka"
redisExt "github.com/kubeshark/kubeshark/tap/extensions/redis"
"github.com/op/go-logging"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/agent/pkg/api"
"github.com/up9inc/mizu/agent/pkg/providers"
"github.com/up9inc/mizu/agent/pkg/utils"
"github.com/up9inc/mizu/logger"
tapApi "github.com/up9inc/mizu/tap/api"
"github.com/up9inc/mizu/tap/dbgctl"
amqpExt "github.com/up9inc/mizu/tap/extensions/amqp"
httpExt "github.com/up9inc/mizu/tap/extensions/http"
kafkaExt "github.com/up9inc/mizu/tap/extensions/kafka"
redisExt "github.com/up9inc/mizu/tap/extensions/redis"
)
var (
@ -42,7 +42,7 @@ func LoadExtensions() {
ProtocolsMap[k] = v
}
if !dbgctl.MizuTapperDisableNonHttpExtensions {
if !dbgctl.KubesharkTapperDisableNonHttpExtensions {
extensionAmqp := &tapApi.Extension{}
dissectorAmqp := amqpExt.NewDissector()
dissectorAmqp.Register(extensionAmqp)

View File

@ -3,9 +3,10 @@ package config
import (
"encoding/json"
"fmt"
"github.com/up9inc/mizu/shared"
"io/ioutil"
"os"
"github.com/kubeshark/kubeshark/shared"
)
// these values are used when the config.json file is not present
@ -14,7 +15,7 @@ const (
DefaultDatabasePath string = "./entries"
)
var Config *shared.MizuAgentConfig
var Config *shared.KubesharkAgentConfig
func LoadConfig() error {
if Config != nil {
@ -45,8 +46,8 @@ func applyDefaultConfig() error {
return nil
}
func getDefaultConfig() (*shared.MizuAgentConfig, error) {
return &shared.MizuAgentConfig{
func getDefaultConfig() (*shared.KubesharkAgentConfig, error) {
return &shared.KubesharkAgentConfig{
MaxDBSizeBytes: defaultMaxDatabaseSizeBytes,
AgentDatabasePath: DefaultDatabasePath,
}, nil

View File

@ -4,10 +4,10 @@ import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/kubeshark/kubeshark/agent/pkg/app"
"github.com/kubeshark/kubeshark/agent/pkg/config"
"github.com/kubeshark/kubeshark/shared"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/agent/pkg/app"
"github.com/up9inc/mizu/agent/pkg/config"
"github.com/up9inc/mizu/shared"
)
func Flush(c *gin.Context) {

View File

@ -3,14 +3,14 @@ package controllers
import (
"net/http"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/entries"
"github.com/up9inc/mizu/agent/pkg/models"
"github.com/up9inc/mizu/agent/pkg/validation"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/entries"
"github.com/kubeshark/kubeshark/agent/pkg/models"
"github.com/kubeshark/kubeshark/agent/pkg/validation"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/logger"
)
func HandleEntriesError(c *gin.Context, err error) bool {

View File

@ -4,8 +4,8 @@ import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/version"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/agent/pkg/version"
"github.com/kubeshark/kubeshark/shared"
)
func GetVersion(c *gin.Context) {

View File

@ -5,9 +5,9 @@ import (
"github.com/chanced/openapi"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/oas"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/oas"
"github.com/kubeshark/kubeshark/logger"
)
func GetOASServers(c *gin.Context) {

View File

@ -5,8 +5,8 @@ import (
"testing"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/oas"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/oas"
)
func TestGetOASServers(t *testing.T) {

View File

@ -4,8 +4,8 @@ import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/kubeshark/kubeshark/shared"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/shared"
)
type ValidateResponse struct {

View File

@ -5,9 +5,9 @@ import (
"time"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/replay"
"github.com/up9inc/mizu/agent/pkg/validation"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/agent/pkg/replay"
"github.com/kubeshark/kubeshark/agent/pkg/validation"
"github.com/kubeshark/kubeshark/logger"
)
const (

View File

@ -3,8 +3,8 @@ package controllers
import (
"net/http"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/servicemap"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/servicemap"
"github.com/gin-gonic/gin"
)

View File

@ -7,12 +7,12 @@ import (
"net/http/httptest"
"testing"
"github.com/up9inc/mizu/agent/pkg/dependency"
"github.com/up9inc/mizu/agent/pkg/servicemap"
"github.com/kubeshark/kubeshark/agent/pkg/dependency"
"github.com/kubeshark/kubeshark/agent/pkg/servicemap"
"github.com/gin-gonic/gin"
tapApi "github.com/kubeshark/kubeshark/tap/api"
"github.com/stretchr/testify/suite"
tapApi "github.com/up9inc/mizu/tap/api"
)
const (
@ -43,7 +43,7 @@ var ProtocolHttp = &tapApi.Protocol{
},
LongName: "Hypertext Transfer Protocol -- HTTP/1.1",
Macro: "http",
BackgroundColor: "#205cf5",
BackgroundColor: "#326de6",
ForegroundColor: "#ffffff",
FontSize: 12,
ReferenceLink: "https://datatracker.ietf.org/doc/html/rfc2616",

View File

@ -9,15 +9,15 @@ import (
core "k8s.io/api/core/v1"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/api"
"github.com/up9inc/mizu/agent/pkg/holder"
"github.com/up9inc/mizu/agent/pkg/providers"
"github.com/up9inc/mizu/agent/pkg/providers/tappedPods"
"github.com/up9inc/mizu/agent/pkg/providers/tappers"
"github.com/up9inc/mizu/agent/pkg/validation"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/up9inc/mizu/shared/kubernetes"
"github.com/kubeshark/kubeshark/agent/pkg/api"
"github.com/kubeshark/kubeshark/agent/pkg/holder"
"github.com/kubeshark/kubeshark/agent/pkg/providers"
"github.com/kubeshark/kubeshark/agent/pkg/providers/tappedPods"
"github.com/kubeshark/kubeshark/agent/pkg/providers/tappers"
"github.com/kubeshark/kubeshark/agent/pkg/validation"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
"github.com/kubeshark/kubeshark/shared/kubernetes"
)
func HealthCheck(c *gin.Context) {

View File

@ -6,12 +6,12 @@ import (
"fmt"
"time"
"github.com/kubeshark/kubeshark/agent/pkg/app"
"github.com/kubeshark/kubeshark/agent/pkg/models"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
tapApi "github.com/kubeshark/kubeshark/tap/api"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/agent/pkg/app"
"github.com/up9inc/mizu/agent/pkg/models"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
tapApi "github.com/up9inc/mizu/tap/api"
)
type EntriesProvider interface {

View File

@ -5,7 +5,7 @@ import (
"time"
"unicode/utf8"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/logger"
)
/*

View File

@ -8,7 +8,7 @@ import (
"strings"
"time"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/logger"
)
func BuildHeaders(rawHeaders map[string]interface{}) ([]Header, string, string, string, string, string) {

View File

@ -1,6 +1,6 @@
package holder
import "github.com/up9inc/mizu/agent/pkg/resolver"
import "github.com/kubeshark/kubeshark/agent/pkg/resolver"
var k8sResolver *resolver.Resolver

View File

@ -3,11 +3,11 @@ package models
import (
"encoding/json"
"github.com/up9inc/mizu/agent/pkg/har"
tapApi "github.com/up9inc/mizu/tap/api"
"github.com/kubeshark/kubeshark/agent/pkg/har"
tapApi "github.com/kubeshark/kubeshark/tap/api"
"github.com/kubeshark/kubeshark/shared"
basenine "github.com/up9inc/basenine/client/go"
"github.com/up9inc/mizu/shared"
)
type EntriesRequest struct {

View File

@ -2,9 +2,10 @@ package oas
import (
"fmt"
"github.com/chanced/openapi"
"math"
"strings"
"github.com/chanced/openapi"
)
type Counter struct {
@ -66,8 +67,8 @@ func (m *CounterMap) addOther(other *CounterMap) {
}
func setCounterMsgIfOk(oldStr string, cnt *Counter) string {
tpl := "Mizu observed %d entries (%d failed), at %.3f hits/s, average response time is %.3f seconds"
if oldStr == "" || (strings.HasPrefix(oldStr, "Mizu ") && strings.HasSuffix(oldStr, " seconds")) {
tpl := "Kubeshark observed %d entries (%d failed), at %.3f hits/s, average response time is %.3f seconds"
if oldStr == "" || (strings.HasPrefix(oldStr, "Kubeshark ") && strings.HasSuffix(oldStr, " seconds")) {
return fmt.Sprintf(tpl, cnt.Entries, cnt.Failures, cnt.SumDuration/float64(cnt.Entries), cnt.SumRT/float64(cnt.Entries))
}
return oldStr

View File

@ -14,9 +14,9 @@ import (
"strings"
"testing"
"github.com/up9inc/mizu/agent/pkg/har"
"github.com/kubeshark/kubeshark/agent/pkg/har"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/logger"
)
func getFiles(baseDir string) (result []string, err error) {

View File

@ -24,7 +24,7 @@ var ignoredHeaders = []string{
"keep-alive", "etag", "alt-svc", "x-csrf-token", "x-ua-compatible", "vary", "x-powered-by",
"age", "allow", "www-authenticate", "expect-ct", "timing-allow-origin", "referrer-policy",
"x-aspnet-version", "x-aspnetmvc-version", "x-timer", "x-abuse-info", "x-mod-pagespeed",
"duration_ms", // UP9 custom
"duration_ms",
}
var ignoredHeaderPrefixes = []string{

View File

@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "http://carts",
"description": "Mizu observed 3 entries (0 failed), at 2.287 hits/s, average response time is 0.017 seconds",
"description": "Kubeshark observed 3 entries (0 failed), at 2.287 hits/s, average response time is 0.017 seconds",
"version": "1.0"
},
"servers": [
@ -14,7 +14,7 @@
"/carts/{cartId}/items": {
"get": {
"summary": "/carts/{cartId}/items",
"description": "Mizu observed 3 entries (0 failed), at 2.287 hits/s, average response time is 0.017 seconds",
"description": "Kubeshark observed 3 entries (0 failed), at 2.287 hits/s, average response time is 0.017 seconds",
"operationId": "84c9b926-1f73-4ab4-b381-3c124528959f",
"responses": {
"200": {
@ -93,4 +93,4 @@
"sumRT": 0.05,
"sumDuration": 6.859940528869629
}
}
}

View File

@ -12,7 +12,7 @@
"catalogue"
],
"summary": "/catalogue",
"description": "Mizu observed 3 entries (0 failed), at 2.647 hits/s, average response time is 0.008 seconds",
"description": "Kubeshark observed 3 entries (0 failed), at 2.647 hits/s, average response time is 0.008 seconds",
"operationId": "dd6c3dbe-6b6b-4ddd-baed-757e237ddb8a",
"parameters": [
{
@ -221,7 +221,7 @@
"catalogue"
],
"summary": "/catalogue/size",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.013 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.013 seconds",
"operationId": "2315e69d-9d66-48cf-b3d3-fec9c30bd28b",
"parameters": [
{
@ -298,7 +298,7 @@
"catalogue"
],
"summary": "/catalogue/{id}",
"description": "Mizu observed 4 entries (0 failed), at 1.899 hits/s, average response time is 0.003 seconds",
"description": "Kubeshark observed 4 entries (0 failed), at 1.899 hits/s, average response time is 0.003 seconds",
"parameters": [
{
"name": "non-required-header",
@ -412,7 +412,7 @@
"/tags": {
"get": {
"summary": "/tags",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.007 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.007 seconds",
"operationId": "c4d7d0ed-1a78-4370-a049-efe3abc631a6",
"responses": {
"200": {
@ -482,4 +482,4 @@
"sumRT": 0.05899999999999999,
"sumDuration": 15.538749694824219
}
}
}

View File

@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "https://httpbin.org",
"description": "Mizu observed 19 entries (0 failed), at 0.106 hits/s, average response time is 0.172 seconds",
"description": "Kubeshark observed 19 entries (0 failed), at 0.106 hits/s, average response time is 0.172 seconds",
"version": "1.0"
},
"servers": [
@ -14,7 +14,7 @@
"/appears-once": {
"get": {
"summary": "/appears-once",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.630 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.630 seconds",
"operationId": "2d34623e-fde8-4720-8390-9a7439051755",
"responses": {
"200": {
@ -53,7 +53,7 @@
"/appears-twice": {
"get": {
"summary": "/appears-twice",
"description": "Mizu observed 2 entries (0 failed), at 0.500 hits/s, average response time is 0.630 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.500 hits/s, average response time is 0.630 seconds",
"operationId": "9c5330f3-8062-468b-b5a3-df1ad82b4846",
"responses": {
"200": {
@ -92,7 +92,7 @@
"/body-optional": {
"post": {
"summary": "/body-optional",
"description": "Mizu observed 3 entries (0 failed), at 0.003 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 3 entries (0 failed), at 0.003 hits/s, average response time is 0.001 seconds",
"operationId": "34f3d66c-b1f7-4dca-9cab-987fcc8ae472",
"responses": {
"200": {
@ -140,7 +140,7 @@
"/body-required": {
"post": {
"summary": "/body-required",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "ff6add53-ab1c-4d4e-b590-0835fa318276",
"responses": {
"200": {
@ -189,7 +189,7 @@
"/form-multipart": {
"post": {
"summary": "/form-multipart",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "153f0925-9fc7-4e9f-9d33-f1470f25f0f7",
"responses": {
"200": {
@ -261,7 +261,7 @@
"/form-urlencoded": {
"post": {
"summary": "/form-urlencoded",
"description": "Mizu observed 2 entries (0 failed), at 0.500 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.500 hits/s, average response time is 0.001 seconds",
"operationId": "c92189f5-5636-46eb-ac71-92b17941a568",
"responses": {
"200": {
@ -348,7 +348,7 @@
"param-patterns"
],
"summary": "/param-patterns/prefix-gibberish-fine/{prefixgibberishfineId}",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "85270437-7aae-4a5b-b988-3662092463d0",
"responses": {
"200": {
@ -406,7 +406,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}",
"description": "Mizu observed 2 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "da597734-1cf5-4d3b-917b-6b02dacf7b7b",
"responses": {
"200": {
@ -477,7 +477,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}/1",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "e965a245-9cfc-48ed-94e1-f765eadb3960",
"responses": {
"200": {
@ -548,7 +548,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}/static",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "7af420dc-f8b7-450f-8f6f-18b039aa3cde",
"responses": {
"200": {
@ -619,7 +619,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}/{param1}",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "02a1771d-2d50-4a8c-8be2-29c7e59b8435",
"responses": {
"200": {
@ -702,7 +702,7 @@
"/{Id}": {
"get": {
"summary": "/{Id}",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.630 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.630 seconds",
"operationId": "77ec4910-d47a-46a5-8234-fb80a11034b4",
"responses": {
"200": {
@ -761,7 +761,7 @@
"/{Id}/sub1": {
"get": {
"summary": "/{Id}/sub1",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.111 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.111 seconds",
"operationId": "198675eb-9faf-407b-83fa-0483a730bbbe",
"responses": {
"200": {
@ -819,7 +819,7 @@
"/{Id}/sub2": {
"get": {
"summary": "/{Id}/sub2",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.630 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.630 seconds",
"operationId": "31d880f1-152f-4dd6-84a7-463e13b694a5",
"responses": {
"200": {
@ -894,4 +894,4 @@
"sumRT": 3.273999999999999,
"sumDuration": 2.0100011825561523
}
}
}

View File

@ -9,7 +9,7 @@
"/hc": {
"get": {
"summary": "/hc",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "c9fdb168-cd8a-48d2-ac37-887ddadb810c",
"responses": {
"200": {
@ -51,7 +51,7 @@
"models"
],
"summary": "/models/aaa/blacklist",
"description": "Mizu observed 2 entries (0 failed), at 0.420 hits/s, average response time is 0.002 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.420 hits/s, average response time is 0.002 seconds",
"operationId": "aa04b7c2-11fc-49bd-86b5-fec0a336216d",
"responses": {
"200": {
@ -93,7 +93,7 @@
"models"
],
"summary": "/models/andrey2/blacklist",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "a61a1b56-7205-4246-99de-baec013a53d9",
"responses": {
"200": {
@ -135,7 +135,7 @@
"models"
],
"summary": "/models/default/blacklist",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "371ca033-3863-4546-bc7e-03b291a7a188",
"responses": {
"200": {
@ -177,7 +177,7 @@
"models"
],
"summary": "/models/roee/blacklist",
"description": "Mizu observed 2 entries (0 failed), at 0.211 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.211 hits/s, average response time is 0.001 seconds",
"operationId": "fba33b70-58d1-43e4-9223-38e854e78a77",
"responses": {
"200": {
@ -219,7 +219,7 @@
"models"
],
"summary": "/models/roee/status",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.001 seconds",
"operationId": "0653c2af-ef3f-43cd-b7e1-48f951d34fa2",
"responses": {
"200": {
@ -298,7 +298,7 @@
"models"
],
"summary": "/models/{id}/blacklist",
"description": "Mizu observed 39 entries (0 failed), at 0.078 hits/s, average response time is 0.001 seconds",
"description": "Kubeshark observed 39 entries (0 failed), at 0.078 hits/s, average response time is 0.001 seconds",
"operationId": "ce1b76bc-9bff-4438-a21d-0a7a6e5be503",
"responses": {
"200": {
@ -371,7 +371,7 @@
"models"
],
"summary": "/models/{id}/status",
"description": "Mizu observed 7 entries (0 failed), at 0.543 hits/s, average response time is 0.193 seconds",
"description": "Kubeshark observed 7 entries (0 failed), at 0.543 hits/s, average response time is 0.193 seconds",
"operationId": "2c46cc41-1ec7-4636-b97e-13e4a7296c65",
"responses": {
"200": {
@ -444,7 +444,7 @@
"models"
],
"summary": "/models/{id}/suites/all/runs",
"description": "Mizu observed 69 entries (0 failed), at 0.093 hits/s, average response time is 0.029 seconds",
"description": "Kubeshark observed 69 entries (0 failed), at 0.093 hits/s, average response time is 0.029 seconds",
"operationId": "6776caf3-87e7-4515-899d-4d4d6cfc0bb8",
"responses": {
"200": {
@ -520,7 +520,7 @@
"models"
],
"summary": "/models/{id}/suites/all/runs/state",
"description": "Mizu observed 2 entries (0 failed), at 0.997 hits/s, average response time is 0.514 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.997 hits/s, average response time is 0.514 seconds",
"operationId": "fe8186fa-b221-46e1-8130-9be1f00a7c2d",
"responses": {
"200": {
@ -622,7 +622,7 @@
"proxies"
],
"summary": "/proxies",
"description": "Mizu observed 2 entries (0 failed), at 1.587 hits/s, average response time is 0.386 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 1.587 hits/s, average response time is 0.386 seconds",
"operationId": "bff7bf3e-effa-43ad-8fce-bab2847a77aa",
"responses": {
"200": {
@ -674,7 +674,7 @@
"proxies"
],
"summary": "/proxies/",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 1.022 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 1.022 seconds",
"operationId": "9c12fbeb-b4cd-40a7-8962-5b9b01619a8e",
"parameters": [
{
@ -748,7 +748,7 @@
"proxies"
],
"summary": "/proxies/local",
"description": "Mizu observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.610 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.000 hits/s, average response time is 0.610 seconds",
"operationId": "0f676cec-87ba-4a03-ac72-f48c3e90d5b8",
"responses": {
"200": {
@ -1568,7 +1568,7 @@
"/tapping/state": {
"get": {
"summary": "/tapping/state",
"description": "Mizu observed 8 entries (0 failed), at 0.760 hits/s, average response time is 0.258 seconds",
"description": "Kubeshark observed 8 entries (0 failed), at 0.760 hits/s, average response time is 0.258 seconds",
"operationId": "b0c1e867-43ee-4f94-bcf8-58cd0ba0f5c8",
"responses": {
"200": {
@ -1630,7 +1630,7 @@
},
"post": {
"summary": "/tapping/state",
"description": "Mizu observed 6 entries (1 failed), at 0.570 hits/s, average response time is 0.431 seconds",
"description": "Kubeshark observed 6 entries (1 failed), at 0.570 hits/s, average response time is 0.431 seconds",
"operationId": "4245a3e5-ebff-4a5b-a7d7-a7fbae4b0fce",
"responses": {
"200": {
@ -1784,4 +1784,4 @@
"sumRT": 11.506999999999994,
"sumDuration": 29.188997983932495
}
}
}

View File

@ -5,9 +5,9 @@ import (
"net/url"
"sync"
"github.com/up9inc/mizu/agent/pkg/har"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/tap/api"
"github.com/kubeshark/kubeshark/agent/pkg/har"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/tap/api"
)
var (
@ -16,7 +16,7 @@ var (
)
type OasGeneratorSink interface {
HandleEntry(mizuEntry *api.Entry)
HandleEntry(kubesharkEntry *api.Entry)
}
type OasGenerator interface {
@ -58,34 +58,34 @@ func (g *defaultOasGenerator) IsStarted() bool {
return g.started
}
func (g *defaultOasGenerator) HandleEntry(mizuEntry *api.Entry) {
func (g *defaultOasGenerator) HandleEntry(kubesharkEntry *api.Entry) {
if !g.started {
return
}
if mizuEntry.Protocol.Name == "http" {
dest := mizuEntry.Destination.Name
if kubesharkEntry.Protocol.Name == "http" {
dest := kubesharkEntry.Destination.Name
if dest == "" {
logger.Log.Debugf("OAS: Unresolved entry %d", mizuEntry.Id)
logger.Log.Debugf("OAS: Unresolved entry %d", kubesharkEntry.Id)
return
}
entry, err := har.NewEntry(mizuEntry.Request, mizuEntry.Response, mizuEntry.StartTime, mizuEntry.ElapsedTime)
entry, err := har.NewEntry(kubesharkEntry.Request, kubesharkEntry.Response, kubesharkEntry.StartTime, kubesharkEntry.ElapsedTime)
if err != nil {
logger.Log.Warningf("Failed to turn MizuEntry %d into HAR Entry: %s", mizuEntry.Id, err)
logger.Log.Warningf("Failed to turn KubesharkEntry %d into HAR Entry: %s", kubesharkEntry.Id, err)
return
}
entryWSource := &EntryWithSource{
Entry: *entry,
Source: mizuEntry.Source.Name,
Source: kubesharkEntry.Source.Name,
Destination: dest,
Id: mizuEntry.Id,
Id: kubesharkEntry.Id,
}
g.handleHARWithSource(entryWSource)
} else {
logger.Log.Debugf("OAS: Unsupported protocol in entry %d: %s", mizuEntry.Id, mizuEntry.Protocol.Name)
logger.Log.Debugf("OAS: Unsupported protocol in entry %d: %s", kubesharkEntry.Id, kubesharkEntry.Protocol.Name)
}
}

View File

@ -2,7 +2,7 @@ package oas
import (
"encoding/json"
"github.com/up9inc/mizu/agent/pkg/har"
"github.com/kubeshark/kubeshark/agent/pkg/har"
"testing"
"time"
)

View File

@ -16,10 +16,10 @@ import (
"github.com/chanced/openapi"
"github.com/google/uuid"
"github.com/kubeshark/kubeshark/logger"
"github.com/nav-inc/datetime"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/agent/pkg/har"
"github.com/kubeshark/kubeshark/agent/pkg/har"
"time"
)

View File

@ -11,8 +11,8 @@ import (
"time"
"github.com/chanced/openapi"
"github.com/up9inc/mizu/agent/pkg/har"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/agent/pkg/har"
"github.com/kubeshark/kubeshark/logger"
"github.com/wI2L/jsondiff"
)
@ -23,7 +23,7 @@ func outputSpec(label string, spec *openapi.OpenAPI, t *testing.T) string {
panic(err)
}
if os.Getenv("MIZU_OAS_WRITE_FILES") != "" {
if os.Getenv("KUBESHARK_OAS_WRITE_FILES") != "" {
path := "./oas-samples"
err := os.MkdirAll(path, 0o755)
if err != nil {
@ -169,7 +169,7 @@ func TestFileSingle(t *testing.T) {
t.FailNow()
}
if os.Getenv("MIZU_OAS_WRITE_FILES") != "" {
if os.Getenv("KUBESHARK_OAS_WRITE_FILES") != "" {
err = ioutil.WriteFile(file+".spec.json", []byte(specText), 0644)
if err != nil {
panic(err)

View File

@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "https://httpbin.org",
"description": "Mizu observed 19 entries (0 failed), at 0.10 hits/s, average response time is 0.17 seconds",
"description": "Kubeshark observed 19 entries (0 failed), at 0.10 hits/s, average response time is 0.17 seconds",
"version": "1.0"
},
"servers": [
@ -14,7 +14,7 @@
"/appears-once": {
"get": {
"summary": "/appears-once",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.63 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.63 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -53,7 +53,7 @@
"/appears-twice": {
"get": {
"summary": "/appears-twice",
"description": "Mizu observed 2 entries (0 failed), at 0.50 hits/s, average response time is 0.63 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.50 hits/s, average response time is 0.63 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -92,7 +92,7 @@
"/body-optional": {
"post": {
"summary": "/body-optional",
"description": "Mizu observed 3 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 3 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -140,7 +140,7 @@
"/body-required": {
"post": {
"summary": "/body-required",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -189,7 +189,7 @@
"/form-multipart": {
"post": {
"summary": "/form-multipart",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -261,7 +261,7 @@
"/form-urlencoded": {
"post": {
"summary": "/form-urlencoded",
"description": "Mizu observed 2 entries (0 failed), at 0.50 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.50 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -348,7 +348,7 @@
"param-patterns"
],
"summary": "/param-patterns/prefix-gibberish-fine/{prefixgibberishfineId}",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -406,7 +406,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}",
"description": "Mizu observed 2 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 2 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -477,7 +477,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}/1",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -548,7 +548,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}/static",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -619,7 +619,7 @@
"param-patterns"
],
"summary": "/param-patterns/{parampatternId}/{param1}",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.00 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -702,7 +702,7 @@
"/{Id}": {
"get": {
"summary": "/{Id}",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.63 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.63 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -761,7 +761,7 @@
"/{Id}/sub1": {
"get": {
"summary": "/{Id}/sub1",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.11 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.11 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -819,7 +819,7 @@
"/{Id}/sub2": {
"get": {
"summary": "/{Id}/sub2",
"description": "Mizu observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.63 seconds",
"description": "Kubeshark observed 1 entries (0 failed), at 0.00 hits/s, average response time is 0.63 seconds",
"operationId": "<UUID4>",
"responses": {
"200": {
@ -894,4 +894,4 @@
"sumRT": 3.27,
"sumDuration": 2.01
}
}
}

View File

@ -8,7 +8,7 @@ import (
"strings"
"github.com/chanced/openapi"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/logger"
)
type NodePath = []string

View File

@ -6,10 +6,10 @@ import (
"strconv"
"strings"
"github.com/up9inc/mizu/agent/pkg/har"
"github.com/kubeshark/kubeshark/agent/pkg/har"
"github.com/chanced/openapi"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/logger"
)
func exampleResolver(ref string) (*openapi.ExampleObj, error) {

View File

@ -9,8 +9,8 @@ import (
"time"
"github.com/jinzhu/copier"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/tap/api"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/tap/api"
)
type GeneralStats struct {

View File

@ -5,8 +5,8 @@ import (
"testing"
"time"
"github.com/up9inc/mizu/agent/pkg/providers"
"github.com/up9inc/mizu/tap/api"
"github.com/kubeshark/kubeshark/agent/pkg/providers"
"github.com/kubeshark/kubeshark/tap/api"
)
func TestNoEntryAddedCount(t *testing.T) {

View File

@ -5,10 +5,10 @@ import (
"strings"
"sync"
"github.com/up9inc/mizu/agent/pkg/providers/tappers"
"github.com/up9inc/mizu/agent/pkg/utils"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/agent/pkg/providers/tappers"
"github.com/kubeshark/kubeshark/agent/pkg/utils"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
)
const FilePath = shared.DataDirPath + "tapped-pods.json"

View File

@ -4,9 +4,9 @@ import (
"os"
"sync"
"github.com/up9inc/mizu/agent/pkg/utils"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/agent/pkg/utils"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
)
const FilePath = shared.DataDirPath + "tappers-status.json"

View File

@ -10,9 +10,9 @@ import (
"time"
"github.com/google/uuid"
"github.com/up9inc/mizu/agent/pkg/app"
tapApi "github.com/up9inc/mizu/tap/api"
mizuhttp "github.com/up9inc/mizu/tap/extensions/http"
"github.com/kubeshark/kubeshark/agent/pkg/app"
tapApi "github.com/kubeshark/kubeshark/tap/api"
kubesharkhttp "github.com/kubeshark/kubeshark/tap/extensions/http"
)
var (
@ -71,8 +71,8 @@ func getEntryFromRequestResponse(extension *tapApi.Extension, request *http.Requ
IsRequest: true,
CaptureTime: captureTime,
CaptureSize: 0,
Payload: &mizuhttp.HTTPPayload{
Type: mizuhttp.TypeHttpRequest,
Payload: &kubesharkhttp.HTTPPayload{
Type: kubesharkhttp.TypeHttpRequest,
Data: request,
},
},
@ -80,8 +80,8 @@ func getEntryFromRequestResponse(extension *tapApi.Extension, request *http.Requ
IsRequest: false,
CaptureTime: captureTime,
CaptureSize: 0,
Payload: &mizuhttp.HTTPPayload{
Type: mizuhttp.TypeHttpResponse,
Payload: &kubesharkhttp.HTTPPayload{
Type: kubesharkhttp.TypeHttpResponse,
Data: response,
},
},
@ -121,7 +121,7 @@ func ExecuteRequest(replayData *Details, timeout time.Duration) *Response {
for headerKey, headerValue := range replayData.Headers {
request.Header.Add(headerKey, headerValue)
}
request.Header.Add("x-mizu", uuid.New().String())
request.Header.Add("x-kubeshark", uuid.New().String())
response, requestErr := client.Do(request)
if requestErr != nil {

View File

@ -11,8 +11,8 @@ import (
"encoding/json"
"github.com/google/uuid"
tapApi "github.com/up9inc/mizu/tap/api"
mizuhttp "github.com/up9inc/mizu/tap/extensions/http"
tapApi "github.com/kubeshark/kubeshark/tap/api"
kubesharkhttp "github.com/kubeshark/kubeshark/tap/extensions/http"
)
func TestValid(t *testing.T) {
@ -60,7 +60,7 @@ func TestValid(t *testing.T) {
for headerKey, headerValue := range replayData.Headers {
request.Header.Add(headerKey, headerValue)
}
request.Header.Add("x-mizu", uuid.New().String())
request.Header.Add("x-kubeshark", uuid.New().String())
response, requestErr := client.Do(request)
if requestErr != nil {
@ -68,7 +68,7 @@ func TestValid(t *testing.T) {
}
extensionHttp := &tapApi.Extension{}
dissectorHttp := mizuhttp.NewDissector()
dissectorHttp := kubesharkhttp.NewDissector()
dissectorHttp.Register(extensionHttp)
extensionHttp.Dissector = dissectorHttp
extension := extensionHttp

View File

@ -1,29 +1,29 @@
<!--
(NOT RELEVANT CURRENTLY)
## Installation
To be able to import this package, you must add `replace github.com/up9inc/mizu/resolver => ../resolver` to the end of your `go.mod` file
To be able to import this package, you must add `replace github.com/kubeshark/kubeshark/resolver => ../resolver` to the end of your `go.mod` file
And then add `github.com/up9inc/mizu/resolver v0.0.0` to your require block
And then add `github.com/kubeshark/kubeshark/resolver v0.0.0` to your require block
full example `go.mod`:
```
module github.com/up9inc/mizu/cli
module github.com/kubeshark/kubeshark/cli
go 1.16
require (
github.com/spf13/cobra v1.1.3
github.com/up9inc/mizu/resolver v0.0.0
github.com/kubeshark/kubeshark/resolver v0.0.0
k8s.io/api v0.21.0
k8s.io/apimachinery v0.21.0
k8s.io/client-go v0.21.0
)
replace github.com/up9inc/mizu/resolver => ../resolver
replace github.com/kubeshark/kubeshark/resolver => ../resolver
```
Now you will be able to import `github.com/up9inc/mizu/resolver` in any `.go` file
Now you will be able to import `github.com/kubeshark/kubeshark/resolver` in any `.go` file
-->
## Usage

View File

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/up9inc/mizu/logger"
"github.com/kubeshark/kubeshark/logger"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
cmap "github.com/orcaman/concurrent-map"

View File

@ -1,7 +1,7 @@
package routes
import (
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
"github.com/gin-gonic/gin"
)

View File

@ -2,7 +2,7 @@ package routes
import (
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
)
// EntriesRoutes defines the group of har entries routes.

View File

@ -1,7 +1,7 @@
package routes
import (
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
"github.com/gin-gonic/gin"
)

View File

@ -2,7 +2,7 @@ package routes
import (
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
)
// OASRoutes methods to access OAS spec

View File

@ -2,7 +2,7 @@ package routes
import (
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
)
func QueryRoutes(ginApp *gin.Engine) {

View File

@ -2,7 +2,7 @@ package routes
import (
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
)
// ReplayRoutes defines the group of replay routes.

View File

@ -2,7 +2,7 @@ package routes
import (
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
)
func ServiceMapRoutes(ginApp *gin.Engine) {

View File

@ -2,7 +2,7 @@ package routes
import (
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/agent/pkg/controllers"
"github.com/kubeshark/kubeshark/agent/pkg/controllers"
)
func StatusRoutes(ginApp *gin.Engine) {

View File

@ -1,7 +1,7 @@
package servicemap
import (
tapApi "github.com/up9inc/mizu/tap/api"
tapApi "github.com/kubeshark/kubeshark/tap/api"
)
type ServiceMapStatus struct {

View File

@ -5,8 +5,8 @@ import (
"github.com/jinzhu/copier"
"github.com/up9inc/mizu/logger"
tapApi "github.com/up9inc/mizu/tap/api"
"github.com/kubeshark/kubeshark/logger"
tapApi "github.com/kubeshark/kubeshark/tap/api"
)
const (

View File

@ -5,8 +5,8 @@ import (
"strings"
"testing"
tapApi "github.com/kubeshark/kubeshark/tap/api"
"github.com/stretchr/testify/suite"
tapApi "github.com/up9inc/mizu/tap/api"
)
const (
@ -57,7 +57,7 @@ var (
},
LongName: "Hypertext Transfer Protocol -- HTTP/1.1",
Macro: "http",
BackgroundColor: "#205cf5",
BackgroundColor: "#326de6",
ForegroundColor: "#ffffff",
FontSize: 12,
ReferenceLink: "https://datatracker.ietf.org/doc/html/rfc2616",

View File

@ -12,8 +12,8 @@ import (
"time"
"github.com/gin-gonic/gin"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
)
var (

View File

Before

Width:  |  Height:  |  Size: 811 KiB

After

Width:  |  Height:  |  Size: 811 KiB

94
assets/kubeshark-logo.svg Normal file
View File

@ -0,0 +1,94 @@
<svg width="365.85028" height="84.530319" viewBox="0 0 365.85028 84.530319" fill="none" xmlns="http://www.w3.org/2000/svg">
<g
id="Layer_2"
transform="translate(0.09726289)">
<g
id="Layer_1-2">
<path
style="fill:#326de6"
d="m 43.697266,0 c -0.8,0 -1.7,-7.8125e-4 -2.5,0.19921875 l -30.5,14.70117225 c -1.5000052,0.7 -2.6000004,1.999218 -3.0000004,3.699218 L 0.09765625,51.5 c -0.3,1.7 0.09960962,3.400781 1.09960935,4.800781 l 21.0996094,26.09961 c 1.2,1.2 2.899609,1.999609 4.599609,2.099609 h 33.701172 c 1.8,0.2 3.49961,-0.599609 4.59961,-2.099609 l 21.099609,-26.09961 c 1,-1.4 1.401172,-3.100781 1.201172,-4.800781 L 79.896484,18.800781 c -0.5,-1.6 -1.699218,-2.901172 -3.199218,-3.701172 L 46.197266,0.5 c -0.8,-0.4 -1.7,-0.5 -2.5,-0.5 z m 22.818359,15.484375 a 1.4619351,1.4619351 0 0 1 1.503906,1.462891 2.9127558,2.9127558 0 0 1 -0.697265,1.884765 16.523949,16.523949 0 0 0 -3.021485,5.302735 6.6495148,6.6495148 0 0 1 -3.089843,3.652343 c -5.91826,3.255388 -11.1875,5.654297 -11.1875,5.654297 1.524079,-0.0335 2.86482,0.09854 4.054687,0.339844 l 0.716797,-1.568359 a 0.26693874,0.26693874 0 0 1 0.507812,0.08594 l 0.160157,1.828125 c 0.241188,0.07385 0.471303,0.153424 0.697265,0.236328 l 1.28125,-1.435547 a 0.26693874,0.26693874 0 0 1 0.460938,0.234375 l -0.390625,1.808594 c 0.190161,0.0967 0.356133,0.202814 0.533203,0.304688 L 59.410156,33.9375 a 0.26693874,0.26693874 0 0 1 0.44336,0.263672 l -0.544922,1.902344 c 0.131484,0.100317 0.249231,0.201225 0.371094,0.302734 l 1.804687,-0.925781 a 0.26693874,0.26693874 0 0 1 0.34375,0.384765 l -1.052734,1.605469 c 0.193913,0.21427 0.370731,0.422885 0.529297,0.625 l 1.908203,-0.400391 a 0.26693874,0.26693874 0 0 1 0.230468,0.460938 l -1.328125,1.171875 c 0.04054,0.07431 0.11559,0.182968 0.146485,0.246094 a 0.4464948,0.4464948 0 0 1 -0.232422,0.609375 48.930273,48.930273 0 0 0 -10.314453,5.910156 c -2.628678,1.872418 -5.507342,3.256782 -7.984375,4.238281 -0.654096,3.953096 -3.256673,6.553592 -4.251953,7.417969 a 0.87976722,0.87976722 0 0 1 -0.84375,0.173828 0.87995885,0.87995885 0 0 1 -0.601563,-0.998047 c 0.403872,-2.175221 0.375769,-3.813371 0.298828,-4.824219 -0.04123,0.0106 -0.129623,0.03717 -0.167969,0.04688 a 13.074058,13.074058 0 0 0 -2.65625,0.966796 11.895733,11.895733 0 0 0 -0.65039,0.365235 11.838628,11.838628 0 0 0 -0.527344,0.314453 11.895733,11.895733 0 0 0 -0.492187,0.345703 11.838628,11.838628 0 0 0 -0.609375,0.453125 c -0.236674,0.196431 -0.459867,0.403754 -0.669922,0.619141 -0.189209,0.194011 -0.363842,0.39622 -0.53125,0.603515 -0.518529,1.301101 -0.720526,2.855804 0.09766,4.41211 a 5.1377563,5.1377563 0 0 0 3.373047,2.560546 26.202921,26.202921 0 0 0 6.078125,0.660157 4.1583421,4.1583421 0 0 0 3.384766,-1.72461 c 1.663527,-2.318707 5.169313,-6.471626 9.99414,-8.277343 a 34.752434,34.752434 0 0 0 5.21875,-2.396485 c 1.396015,-0.807906 3.019403,0.604478 2.433594,2.107422 a 7.7023228,7.7023228 0 0 1 -2.587891,3.494141 c -3.68751,2.69679 -7.761718,6.164264 -7.761719,10.126953 0,0 -0.291599,4.431548 3.244141,7.169922 a 1.1662521,1.1662521 0 0 1 -0.708984,2.083984 c -3.356185,0.04235 -8.286592,-1.069904 -11.835938,-6.941406 a 22.909207,22.909207 0 0 1 -4.214843,1.015625 h -0.0039 c -3.074111,0.47499 -5.780878,0.558997 -8.085937,0.230469 l 0.0039,0.0098 c 0,0 -16.614575,-0.614601 -16.021484,-16.695312 0.176839,-4.794721 1.64669,-8.927518 3.617187,-12.375 C 18.16014,39.986781 17.79688,38.65623 17.28125,37.388672 a 1.4696003,1.4696003 0 0 1 0.140625,-1.386719 l 1.705078,-2.496094 A 0.15886017,0.15886017 0 0 0 18.912109,33.28125 l -2.759765,1.755859 C 15.659283,34.137796 15.146296,33.32412 14.689453,32.648438 A 2.1703863,2.1703863 0 0 1 15.625,29.427734 c 2.666513,-1.121219 5.899198,-1.704278 9.982422,-1.246093 a 36.480542,36.480542 0 0 0 5.708984,0.142578 C 48.430863,18.814384 61.805489,16.163693 66.345703,15.5 a 1.4619351,1.4619351 0 0 1 0.169922,-0.01563 z"
transform="translate(-0.09743584)"
id="path6" />
<g
id="g857"
transform="matrix(0.19162867,0,0,0.19162867,8.490619,13.182287)"><g
id="g849"
style="fill:#485a75"><path
id="path839"
data-original="#485a75"
d="m 192.963,97.984 c -4.249,-8.947 -6.27,-19.006 -6.563,-29.928 a 1.414,1.414 0 0 0 -2.736,-0.449 55.314,55.314 0 0 0 -2.656,9.6 21.038,21.038 0 0 0 3.958,16.393 35.833,35.833 0 0 0 5.808,6.066 1.419,1.419 0 0 0 2.189,-1.682 z"
style="fill:#485a75" /><path
id="path841"
data-original="#485a75"
d="m 177.85,105.342 c -4.249,-8.947 -6.27,-19.006 -6.563,-29.928 a 1.414,1.414 0 0 0 -2.736,-0.449 55.314,55.314 0 0 0 -2.656,9.6 21.038,21.038 0 0 0 3.958,16.394 35.72,35.72 0 0 0 5.808,6.066 1.419,1.419 0 0 0 2.189,-1.683 z"
style="fill:#485a75" /><path
id="path843"
data-original="#485a75"
d="m 163.212,112.168 c -4.249,-8.947 -6.27,-19.006 -6.563,-29.928 a 1.414,1.414 0 0 0 -2.736,-0.449 55.314,55.314 0 0 0 -2.656,9.6 21.038,21.038 0 0 0 3.958,16.394 35.718,35.718 0 0 0 5.808,6.066 1.419,1.419 0 0 0 2.189,-1.683 z"
style="fill:#485a75" /><path
id="path845"
data-original="#485a75"
d="m 282.539,41.775 a 3.464,3.464 0 0 1 -2.442,-5.922 l 2.594,-2.577 a 3.4644893,3.4644893 0 1 1 4.883,4.916 l -2.594,2.577 a 3.455,3.455 0 0 1 -2.441,1.006 z"
style="fill:#485a75" /><circle
id="circle847"
data-original="#485a75"
r="5.0100002"
cy="49.93"
cx="242.799"
style="fill:#485a75" /></g></g><path
style="opacity:1;fill:#326de6;fill-opacity:1;stroke:none;stroke-width:0.70809567;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 39.03763,34.543061 c -1.527793,-1.496038 -1.827598,-2.980669 -1.058708,-5.242707 0.127475,-0.375025 0.218266,-0.50615 0.350457,-0.50615 0.152165,0 0.188106,0.09647 0.244306,0.655726 0.216618,2.155597 0.449111,3.24366 0.975953,4.567454 0.461821,1.160417 0.302867,1.323615 -0.512008,0.525677 z"
id="path900"
transform="translate(-0.09743584)" /><path
style="opacity:1;fill:#326de6;fill-opacity:1;stroke:none;stroke-width:0.70809567;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 42.006337,33.406311 c -1.337815,-1.184989 -1.866757,-2.629191 -1.538123,-4.199632 0.240017,-1.146966 0.464694,-1.723928 0.67132,-1.723928 0.159683,0 0.190274,0.122336 0.292808,1.17094 0.16981,1.736629 0.586255,3.459239 1.068721,4.420732 0.174454,0.347664 0.153619,0.638924 -0.04552,0.636332 -0.05889,-7.68e-4 -0.261033,-0.137766 -0.449207,-0.304444 z"
id="path902"
transform="translate(-0.09743584)" /><path
style="opacity:1;fill:#326de6;fill-opacity:1;stroke:none;stroke-width:0.70809567;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 44.593492,31.684332 c -1.06996,-1.096616 -1.495754,-2.317349 -1.27225,-3.647492 0.06476,-0.385406 0.209609,-0.983895 0.321888,-1.329977 0.160604,-0.495034 0.243576,-0.629239 0.389027,-0.629239 0.167866,0 0.195552,0.106755 0.300777,1.15978 0.178804,1.789343 0.514135,3.175579 1.092636,4.516885 0.109635,0.254197 0.118901,0.363706 0.03765,0.444957 -0.173562,0.173562 -0.231396,0.139321 -0.869728,-0.514914 z"
id="path904"
transform="translate(-0.09743584)" /><path
style="opacity:1;fill:#326de6;fill-opacity:1;stroke:none;stroke-width:0.70809567;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 54.796786,23.600645 c -0.300846,-0.126947 -0.598408,-0.559802 -0.598408,-0.870489 0,-0.192938 0.100882,-0.378642 0.330349,-0.608109 0.289083,-0.289083 0.372038,-0.323583 0.664085,-0.276191 0.411876,0.06684 0.590137,0.209069 0.754324,0.601856 0.107229,0.256525 0.107229,0.352363 0,0.608889 -0.06999,0.167444 -0.190498,0.356886 -0.267791,0.420982 -0.193757,0.160673 -0.644482,0.223522 -0.882559,0.123062 z"
id="path906"
transform="translate(-0.09743584)" /><path
style="opacity:1;fill:#326de6;fill-opacity:1;stroke:none;stroke-width:0.70809567;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 62.366634,20.995747 c -0.30085,-0.260136 -0.326767,-0.517366 -0.08785,-0.871899 0.220552,-0.327277 0.758517,-0.743997 0.960464,-0.743997 0.06271,0 0.225096,0.08737 0.360847,0.194149 0.379108,0.298207 0.323778,0.598735 -0.208173,1.130685 -0.485833,0.485834 -0.722376,0.552984 -1.025291,0.291062 z"
id="path908"
transform="translate(-0.09743584)" /><g
aria-label="Kubeshark"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:40px;line-height:1.25;font-family:'Work Sans';-inkscape-font-specification:'Work Sans';letter-spacing:0px;word-spacing:0px;fill:#326de6;fill-opacity:1;stroke:none"
id="text833"
transform="translate(4)"><path
d="m 127.72418,23.395281 -15.70667,18.797333 -0.55733,-1.317333 -7.95467,9.677334 -1.672,-7.042667 16.21334,-20.114667 z m -21.63467,0 v 33.44 h -8.714665 v -33.44 z m 8.76534,11.045333 13.47733,22.394667 h -9.88 L 108.31885,39.304614 Z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path830" /><path
d="m 139.93478,57.341948 q -2.584,0 -4.56,-0.861333 -1.92534,-0.912 -3.04,-2.888 -1.11467,-1.976 -1.11467,-5.168001 V 31.501947 h 8.61333 v 14.896001 q 0,2.432 0.96267,3.394667 0.96267,0.962666 2.736,0.962666 0.912,0 1.72267,-0.304 0.81066,-0.354666 1.41867,-1.013333 0.608,-0.709333 0.912,-1.773334 0.35466,-1.114666 0.35466,-2.584 V 31.501947 h 8.61334 v 25.333334 h -7.70134 l -0.25333,-4.762666 q -1.216,2.685333 -3.39467,4.002666 -2.17867,1.266667 -5.26933,1.266667 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path832" /><path
d="m 178.99876,57.341948 q -2.48267,0 -4.408,-1.114667 -1.87467,-1.114666 -3.09067,-3.04 -1.216,-1.976 -1.57067,-4.458666 l 0.81067,-1.064001 -0.456,9.170667 h -7.54933 V 20.760614 h 8.61333 v 18.696 l -0.81067,-1.216 q 0.70934,-3.141333 2.888,-5.168 2.17867,-2.077333 5.87734,-2.077333 2.93866,0 5.21866,1.570666 2.33067,1.570667 3.59734,4.560001 1.31733,2.938666 1.31733,7.144 0,4.104 -1.31733,7.042667 -1.31734,2.938666 -3.648,4.509333 -2.33067,1.52 -5.472,1.52 z m -2.98934,-6.333333 q 2.22934,0 3.496,-1.621334 1.26667,-1.672 1.26667,-5.218667 0,-3.546666 -1.26667,-5.168 -1.26666,-1.672 -3.496,-1.672 -1.46933,0 -2.53333,0.861334 -1.01333,0.810666 -1.57067,2.330666 -0.55733,1.52 -0.55733,3.698667 0,2.178667 0.55733,3.698667 0.55734,1.52 1.62134,2.330667 1.064,0.76 2.48266,0.76 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path834" /><path
d="m 206.86537,57.341948 q -4.20534,0 -7.296,-1.570667 -3.04,-1.570666 -4.712,-4.509333 -1.672,-2.938667 -1.672,-7.093334 0,-4.154666 1.672,-7.093333 1.672,-2.938667 4.66133,-4.509334 3.04,-1.570666 6.94133,-1.570666 4.00267,0 6.78934,1.570666 2.83733,1.52 4.30666,4.256001 1.46934,2.685333 1.46934,6.181333 0,0.912 -0.0507,1.824 -0.0507,0.912 -0.152,1.52 h -20.064 v -4.610667 h 16.264 l -4.104,1.570667 q 0,-3.04 -1.11467,-4.661333 -1.064,-1.621334 -3.344,-1.621334 -1.62133,0 -2.78666,0.76 -1.11467,0.76 -1.72267,2.381334 -0.55733,1.621333 -0.55733,4.154666 0,2.482667 0.65866,4.053334 0.65867,1.52 1.87467,2.229333 1.216,0.658667 2.93867,0.658667 1.92533,0 3.04,-0.76 1.16533,-0.76 1.72266,-2.128 l 6.89067,2.28 q -0.70933,2.178667 -2.48267,3.698667 -1.72266,1.469333 -4.15466,2.229333 -2.38134,0.76 -5.016,0.76 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path836" /><path
d="m 234.47862,57.341948 q -3.8,0 -7.09333,-1.216 -3.24267,-1.266667 -5.37067,-3.597333 l 4.05334,-4.762667 q 1.26666,1.621333 3.344,2.736 2.128,1.064 4.712,1.064 1.57066,0 2.584,-0.456 1.01333,-0.456 1.01333,-1.418667 0,-0.709333 -0.50667,-1.114667 -0.50666,-0.456 -2.02666,-0.76 l -3.54667,-0.709333 q -4.76267,-0.962667 -6.78933,-2.837333 -1.976,-1.925334 -1.976,-5.016 0,-2.077334 1.26666,-3.952001 1.26667,-1.925333 3.90134,-3.090666 2.63466,-1.216 6.73866,-1.216 3.85067,0 6.78934,1.114666 2.93866,1.114667 4.66133,3.242667 l -4.104,4.661334 q -1.216,-1.52 -3.14133,-2.381334 -1.92534,-0.861333 -3.85067,-0.861333 -1.216,0 -2.07733,0.253333 -0.81067,0.202667 -1.216,0.608 -0.40534,0.405334 -0.40534,1.013334 0,0.658666 0.608,1.165333 0.65867,0.456 2.38134,0.810667 l 4.61066,0.912 q 3.90134,0.709333 5.624,2.584 1.72267,1.874666 1.72267,4.509333 0,2.482667 -1.31733,4.458667 -1.31734,1.976 -3.952,3.141333 -2.63467,1.114667 -6.63734,1.114667 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path838" /><path
d="M 250.8439,56.835281 V 20.760614 h 8.61334 v 15.352 q 1.11466,-2.533333 3.192,-3.8 2.07733,-1.317333 4.81333,-1.317333 2.63467,0 4.56,1.013333 1.976,1.013333 3.09067,2.989333 1.11466,1.976001 1.11466,4.965334 v 16.872 h -8.61333 V 42.344614 q 0,-2.736 -1.01333,-3.749333 -0.96267,-1.064 -2.584,-1.064 -1.216,0 -2.28,0.608 -1.064,0.608 -1.672,1.925333 -0.608,1.317334 -0.608,3.445334 v 13.325333 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path840" /><path
d="m 296.39319,40.773948 q 0,-1.773334 -1.01334,-2.786667 -0.96266,-1.064 -2.63466,-1.064 -1.672,0 -2.888,0.861333 -1.16534,0.810667 -1.62134,2.938667 l -7.296,-1.722667 q 0.70934,-3.648 3.74934,-5.826667 3.04,-2.178666 8.56266,-2.178666 3.69867,0 6.28267,1.114666 2.63467,1.064 4.00267,3.242667 1.41866,2.128 1.41866,5.269334 v 9.272 q 0,1.976 1.77334,1.976 0.912,0 1.46933,-0.202667 l -0.50667,4.914667 q -1.52,0.709333 -3.69866,0.709333 -1.976,0 -3.496,-0.608 -1.52,-0.658666 -2.38134,-1.925333 -0.86133,-1.317333 -0.86133,-3.293333 v -0.304 l 0.96267,-0.354667 q 0,2.178667 -1.31734,3.648 -1.26666,1.469333 -3.344,2.178667 -2.02666,0.709333 -4.256,0.709333 -2.584,0 -4.50933,-0.810667 -1.92533,-0.810666 -2.98933,-2.330666 -1.01334,-1.570667 -1.01334,-3.850667 0,-2.736 1.62134,-4.509334 1.672,-1.824 5.21866,-2.533333 l 9.576,-1.976 -0.0507,4.56 -4.864,1.013333 q -1.52,0.304 -2.28,0.912 -0.70934,0.557334 -0.70934,1.722667 0,1.114667 0.81067,1.672 0.81067,0.557334 1.92533,0.557334 0.86134,0 1.62134,-0.253334 0.81066,-0.253333 1.41866,-0.76 0.608,-0.557333 0.96267,-1.368 0.35467,-0.810667 0.35467,-1.925333 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path842" /><path
d="M 311.59312,56.835281 V 31.501947 h 7.6 l 0.35467,5.472001 q 0.96267,-2.837334 2.83733,-4.408001 1.92534,-1.570666 4.864,-1.570666 0.96267,0 1.62134,0.152 0.70933,0.152 1.11466,0.405333 l -0.86133,7.093334 q -0.50667,-0.202667 -1.31733,-0.304 -0.76,-0.152 -1.87467,-0.152 -1.52,0 -2.83733,0.658666 -1.31734,0.658667 -2.128,1.976 -0.76,1.266667 -0.76,3.242667 v 12.768 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path844" /><path
d="m 361.1957,31.501947 -12.16,12.970667 -1.62133,0.456 -7.24534,8.106667 -0.0507,-8.816 11.50133,-12.717334 z M 341.99303,20.760614 V 56.835281 H 333.3797 V 20.760614 Z m 8.36,18.341334 11.4,17.733333 h -9.52533 l -7.49867,-12.666667 z"
style="font-size:50.66666794px;fill:#326de6;fill-opacity:1"
id="path846" /></g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

BIN
assets/kubeshark-ui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 640 KiB

View File

@ -15,9 +15,9 @@ help: ## This help.
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
install:
go install mizu.go
go install kubeshark.go
build-debug: ## Build mizu CLI for debug
build-debug: ## Build kubeshark CLI for debug
export GCLFAGS='-gcflags="all=-N -l"'
${MAKE} build-base
@ -25,15 +25,15 @@ build:
export LDFLAGS_EXT='-s -w'
${MAKE} build-base
build-base: ## Build mizu CLI binary (select platform via GOOS / GOARCH env variables).
build-base: ## Build kubeshark CLI binary (select platform via GOOS / GOARCH env variables).
go build ${GCLFAGS} -ldflags="${LDFLAGS_EXT} \
-X 'github.com/up9inc/mizu/cli/mizu.GitCommitHash=$(COMMIT_HASH)' \
-X 'github.com/up9inc/mizu/cli/mizu.Branch=$(GIT_BRANCH)' \
-X 'github.com/up9inc/mizu/cli/mizu.BuildTimestamp=$(BUILD_TIMESTAMP)' \
-X 'github.com/up9inc/mizu/cli/mizu.Platform=$(SUFFIX)' \
-X 'github.com/up9inc/mizu/cli/mizu.Ver=$(VER)'" \
-o bin/mizu_$(SUFFIX) mizu.go
(cd bin && shasum -a 256 mizu_${SUFFIX} > mizu_${SUFFIX}.sha256)
-X 'github.com/kubeshark/kubeshark/cli/kubeshark.GitCommitHash=$(COMMIT_HASH)' \
-X 'github.com/kubeshark/kubeshark/cli/kubeshark.Branch=$(GIT_BRANCH)' \
-X 'github.com/kubeshark/kubeshark/cli/kubeshark.BuildTimestamp=$(BUILD_TIMESTAMP)' \
-X 'github.com/kubeshark/kubeshark/cli/kubeshark.Platform=$(SUFFIX)' \
-X 'github.com/kubeshark/kubeshark/cli/kubeshark.Ver=$(VER)'" \
-o bin/kubeshark_$(SUFFIX) kubeshark.go
(cd bin && shasum -a 256 kubeshark_${SUFFIX} > kubeshark_${SUFFIX}.sha256)
build-all: ## Build for all supported platforms.
echo "Compiling for every OS and Platform" && \
@ -43,7 +43,7 @@ build-all: ## Build for all supported platforms.
$(MAKE) build GOOS=darwin GOARCH=amd64 && \
$(MAKE) build GOOS=darwin GOARCH=arm64 && \
$(MAKE) build GOOS=windows GOARCH=amd64 && \
mv ./bin/mizu_windows_amd64 ./bin/mizu.exe && \
mv ./bin/kubeshark_windows_amd64 ./bin/kubeshark.exe && \
echo "---------" && \
find ./bin -ls

View File

@ -1,35 +1,35 @@
# Mizu release _VER_
Mizu CHANGELOG is now part of [Mizu wiki](https://github.com/up9inc/mizu/wiki/CHANGELOG)
# Kubeshark release _VER_
Kubeshark CHANGELOG is now part of [Kubeshark wiki](https://github.com/kubeshark/kubeshark/wiki/CHANGELOG)
## Download Mizu for your platform
## Download Kubeshark for your platform
**Mac** (x86-64/Intel)
```
curl -Lo mizu https://github.com/up9inc/mizu/releases/download/_VER_/mizu_darwin_amd64 && chmod 755 mizu
curl -Lo kubeshark https://github.com/kubeshark/kubeshark/releases/download/_VER_/kubeshark_darwin_amd64 && chmod 755 kubeshark
```
**Mac** (AArch64/Apple M1 silicon)
```
rm -f mizu && curl -Lo mizu https://github.com/up9inc/mizu/releases/download/_VER_/mizu_darwin_arm64 && chmod 755 mizu
rm -f kubeshark && curl -Lo kubeshark https://github.com/kubeshark/kubeshark/releases/download/_VER_/kubeshark_darwin_arm64 && chmod 755 kubeshark
```
**Linux** (x86-64)
```
curl -Lo mizu https://github.com/up9inc/mizu/releases/download/_VER_/mizu_linux_amd64 && chmod 755 mizu
curl -Lo kubeshark https://github.com/kubeshark/kubeshark/releases/download/_VER_/kubeshark_linux_amd64 && chmod 755 kubeshark
```
**Linux** (AArch64)
```
curl -Lo mizu https://github.com/up9inc/mizu/releases/download/_VER_/mizu_linux_arm64 && chmod 755 mizu
curl -Lo kubeshark https://github.com/kubeshark/kubeshark/releases/download/_VER_/kubeshark_linux_arm64 && chmod 755 kubeshark
```
**Windows** (x86-64)
```
curl -LO https://github.com/up9inc/mizu/releases/download/_VER_/mizu.exe
curl -LO https://github.com/kubeshark/kubeshark/releases/download/_VER_/kubeshark.exe
```
### Checksums
SHA256 checksums available for compiled binaries.
Run `shasum -a 256 -c mizu_OS_ARCH.sha256` to verify.
Run `shasum -a 256 -c kubeshark_OS_ARCH.sha256` to verify.

View File

@ -7,11 +7,11 @@ import (
"net/http"
"time"
"github.com/up9inc/mizu/cli/utils"
"github.com/kubeshark/kubeshark/cli/utils"
"github.com/up9inc/mizu/cli/config"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared"
"github.com/kubeshark/kubeshark/cli/config"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared"
core "k8s.io/api/core/v1"
)

View File

@ -2,22 +2,22 @@ package bucket
import (
"fmt"
"github.com/up9inc/mizu/cli/utils"
"github.com/kubeshark/kubeshark/cli/utils"
"io/ioutil"
"net/http"
"time"
)
type Provider struct {
url string
client *http.Client
url string
client *http.Client
}
const DefaultTimeout = 2 * time.Second
func NewProvider(url string, timeout time.Duration) *Provider {
return &Provider{
url: url,
url: url,
client: &http.Client{
Timeout: timeout,
},

View File

@ -2,16 +2,16 @@ package cmd
import (
"github.com/creasty/defaults"
"github.com/kubeshark/kubeshark/cli/config/configStructs"
"github.com/kubeshark/kubeshark/logger"
"github.com/spf13/cobra"
"github.com/up9inc/mizu/cli/config/configStructs"
"github.com/up9inc/mizu/logger"
)
var checkCmd = &cobra.Command{
Use: "check",
Short: "Check the Mizu installation for potential problems",
Short: "Check the Kubeshark installation for potential problems",
RunE: func(cmd *cobra.Command, args []string) error {
runMizuCheck()
runKubesharkCheck()
return nil
},
}
@ -24,7 +24,7 @@ func init() {
logger.Log.Debug(err)
}
checkCmd.Flags().Bool(configStructs.PreTapCheckName, defaultCheckConfig.PreTap, "Check pre-tap Mizu installation for potential problems")
checkCmd.Flags().Bool(configStructs.PreInstallCheckName, defaultCheckConfig.PreInstall, "Check pre-install Mizu installation for potential problems")
checkCmd.Flags().Bool(configStructs.PreTapCheckName, defaultCheckConfig.PreTap, "Check pre-tap Kubeshark installation for potential problems")
checkCmd.Flags().Bool(configStructs.PreInstallCheckName, defaultCheckConfig.PreInstall, "Check pre-install Kubeshark installation for potential problems")
checkCmd.Flags().Bool(configStructs.ImagePullCheckName, defaultCheckConfig.ImagePull, "Test connectivity to container image registry by creating and removing a temporary pod in 'default' namespace")
}

View File

@ -6,9 +6,9 @@ import (
"regexp"
"time"
"github.com/up9inc/mizu/cli/uiUtils"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared/kubernetes"
"github.com/kubeshark/kubeshark/cli/uiUtils"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared/kubernetes"
core "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
@ -17,7 +17,7 @@ func ImagePullInCluster(ctx context.Context, kubernetesProvider *kubernetes.Prov
logger.Log.Infof("\nimage-pull-in-cluster\n--------------------")
namespace := "default"
podName := "mizu-test"
podName := "kubeshark-test"
defer func() {
if err := kubernetesProvider.RemovePod(ctx, namespace, podName); err != nil {
@ -31,11 +31,11 @@ func ImagePullInCluster(ctx context.Context, kubernetesProvider *kubernetes.Prov
}
if err := checkImagePulled(ctx, kubernetesProvider, namespace, podName); err != nil {
logger.Log.Errorf("%v cluster is not able to pull mizu containers from docker hub, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), err)
logger.Log.Errorf("%v cluster is not able to pull kubeshark containers from docker hub, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), err)
return false
}
logger.Log.Infof("%v cluster is able to pull mizu containers from docker hub", fmt.Sprintf(uiUtils.Green, "√"))
logger.Log.Infof("%v cluster is able to pull kubeshark containers from docker hub", fmt.Sprintf(uiUtils.Green, "√"))
return true
}
@ -85,7 +85,7 @@ func createImagePullInClusterPod(ctx context.Context, kubernetesProvider *kubern
Containers: []core.Container{
{
Name: "probe",
Image: "up9inc/busybox",
Image: "kubeshark/busybox",
ImagePullPolicy: "Always",
Command: []string{"cat"},
Stdin: true,

View File

@ -3,11 +3,11 @@ package check
import (
"fmt"
"github.com/up9inc/mizu/cli/config"
"github.com/up9inc/mizu/cli/uiUtils"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared/kubernetes"
"github.com/up9inc/mizu/shared/semver"
"github.com/kubeshark/kubeshark/cli/config"
"github.com/kubeshark/kubeshark/cli/uiUtils"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared/kubernetes"
"github.com/kubeshark/kubeshark/shared/semver"
)
func KubernetesApi() (*kubernetes.Provider, *semver.SemVersion, bool) {

View File

@ -6,11 +6,11 @@ import (
"fmt"
"strings"
"github.com/up9inc/mizu/cli/bucket"
"github.com/up9inc/mizu/cli/config"
"github.com/up9inc/mizu/cli/uiUtils"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared/kubernetes"
"github.com/kubeshark/kubeshark/cli/bucket"
"github.com/kubeshark/kubeshark/cli/config"
"github.com/kubeshark/kubeshark/cli/uiUtils"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared/kubernetes"
rbac "k8s.io/api/rbac/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/scheme"
@ -41,7 +41,7 @@ func TapKubernetesPermissions(ctx context.Context, embedFS embed.FS, kubernetesP
switch resource := obj.(type) {
case *rbac.Role:
return checkRulesPermissions(ctx, kubernetesProvider, resource.Rules, config.Config.MizuResourcesNamespace)
return checkRulesPermissions(ctx, kubernetesProvider, resource.Rules, config.Config.KubesharkResourcesNamespace)
case *rbac.ClusterRole:
return checkRulesPermissions(ctx, kubernetesProvider, resource.Rules, "")
}

View File

@ -4,29 +4,29 @@ import (
"context"
"fmt"
"github.com/up9inc/mizu/cli/config"
"github.com/up9inc/mizu/cli/uiUtils"
"github.com/up9inc/mizu/logger"
"github.com/up9inc/mizu/shared/kubernetes"
"github.com/kubeshark/kubeshark/cli/config"
"github.com/kubeshark/kubeshark/cli/uiUtils"
"github.com/kubeshark/kubeshark/logger"
"github.com/kubeshark/kubeshark/shared/kubernetes"
)
func KubernetesResources(ctx context.Context, kubernetesProvider *kubernetes.Provider) bool {
logger.Log.Infof("\nk8s-components\n--------------------")
exist, err := kubernetesProvider.DoesNamespaceExist(ctx, config.Config.MizuResourcesNamespace)
allResourcesExist := checkResourceExist(config.Config.MizuResourcesNamespace, "namespace", exist, err)
exist, err := kubernetesProvider.DoesNamespaceExist(ctx, config.Config.KubesharkResourcesNamespace)
allResourcesExist := checkResourceExist(config.Config.KubesharkResourcesNamespace, "namespace", exist, err)
exist, err = kubernetesProvider.DoesConfigMapExist(ctx, config.Config.MizuResourcesNamespace, kubernetes.ConfigMapName)
exist, err = kubernetesProvider.DoesConfigMapExist(ctx, config.Config.KubesharkResourcesNamespace, kubernetes.ConfigMapName)
allResourcesExist = checkResourceExist(kubernetes.ConfigMapName, "config map", exist, err) && allResourcesExist
exist, err = kubernetesProvider.DoesServiceAccountExist(ctx, config.Config.MizuResourcesNamespace, kubernetes.ServiceAccountName)
exist, err = kubernetesProvider.DoesServiceAccountExist(ctx, config.Config.KubesharkResourcesNamespace, kubernetes.ServiceAccountName)
allResourcesExist = checkResourceExist(kubernetes.ServiceAccountName, "service account", exist, err) && allResourcesExist
if config.Config.IsNsRestrictedMode() {
exist, err = kubernetesProvider.DoesRoleExist(ctx, config.Config.MizuResourcesNamespace, kubernetes.RoleName)
exist, err = kubernetesProvider.DoesRoleExist(ctx, config.Config.KubesharkResourcesNamespace, kubernetes.RoleName)
allResourcesExist = checkResourceExist(kubernetes.RoleName, "role", exist, err) && allResourcesExist
exist, err = kubernetesProvider.DoesRoleBindingExist(ctx, config.Config.MizuResourcesNamespace, kubernetes.RoleBindingName)
exist, err = kubernetesProvider.DoesRoleBindingExist(ctx, config.Config.KubesharkResourcesNamespace, kubernetes.RoleBindingName)
allResourcesExist = checkResourceExist(kubernetes.RoleBindingName, "role binding", exist, err) && allResourcesExist
} else {
exist, err = kubernetesProvider.DoesClusterRoleExist(ctx, kubernetes.ClusterRoleName)
@ -36,7 +36,7 @@ func KubernetesResources(ctx context.Context, kubernetesProvider *kubernetes.Pro
allResourcesExist = checkResourceExist(kubernetes.ClusterRoleBindingName, "cluster role binding", exist, err) && allResourcesExist
}
exist, err = kubernetesProvider.DoesServiceExist(ctx, config.Config.MizuResourcesNamespace, kubernetes.ApiServerPodName)
exist, err = kubernetesProvider.DoesServiceExist(ctx, config.Config.KubesharkResourcesNamespace, kubernetes.ApiServerPodName)
allResourcesExist = checkResourceExist(kubernetes.ApiServerPodName, "service", exist, err) && allResourcesExist
allResourcesExist = checkPodResourcesExist(ctx, kubernetesProvider) && allResourcesExist
@ -45,7 +45,7 @@ func KubernetesResources(ctx context.Context, kubernetesProvider *kubernetes.Pro
}
func checkPodResourcesExist(ctx context.Context, kubernetesProvider *kubernetes.Provider) bool {
if pods, err := kubernetesProvider.ListPodsByAppLabel(ctx, config.Config.MizuResourcesNamespace, kubernetes.ApiServerPodName); err != nil {
if pods, err := kubernetesProvider.ListPodsByAppLabel(ctx, config.Config.KubesharkResourcesNamespace, kubernetes.ApiServerPodName); err != nil {
logger.Log.Errorf("%v error checking if '%v' pod is running, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.ApiServerPodName, err)
return false
} else if len(pods) == 0 {
@ -58,7 +58,7 @@ func checkPodResourcesExist(ctx context.Context, kubernetesProvider *kubernetes.
logger.Log.Infof("%v '%v' pod running", fmt.Sprintf(uiUtils.Green, "√"), kubernetes.ApiServerPodName)
if pods, err := kubernetesProvider.ListPodsByAppLabel(ctx, config.Config.MizuResourcesNamespace, kubernetes.TapperPodName); err != nil {
if pods, err := kubernetesProvider.ListPodsByAppLabel(ctx, config.Config.KubesharkResourcesNamespace, kubernetes.TapperPodName); err != nil {
logger.Log.Errorf("%v error checking if '%v' pods are running, err: %v", fmt.Sprintf(uiUtils.Red, "✗"), kubernetes.TapperPodName, err)
return false
} else {

Some files were not shown because too many files have changed in this diff Show More