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"
8
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -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.
|
||||
|
4
.github/workflows/acceptance_tests.yml
vendored
@ -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
|
||||
|
||||
|
4
.github/workflows/acceptance_tests_on_pr.yml
vendored
@ -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
|
||||
|
||||
|
44
.github/workflows/build-custom-branch.yml
vendored
@ -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
|
4
.github/workflows/build.yml
vendored
@ -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
|
||||
|
18
.github/workflows/release.yml
vendored
@ -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: |
|
||||
|
2
.github/workflows/test.yml
vendored
@ -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
@ -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
|
||||
|
18
Dockerfile
@ -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"]
|
||||
|
12
Makefile
@ -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.
|
||||
|
||||
|
93
README.md
@ -1,41 +1,94 @@
|
||||

|
||||
<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.
|
||||

|
||||
|
||||

|
||||
## 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
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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());
|
||||
|
@ -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();
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {isValueExistsInElement} from '../testHelpers/TrafficHelper';
|
||||
|
||||
it('Loading Mizu', function () {
|
||||
it('Loading Kubeshark', function () {
|
||||
cy.visit(Cypress.env('testUrl'));
|
||||
});
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {checkFilterByMethod, valueTabs,} from "../testHelpers/TrafficHelper";
|
||||
|
||||
it('opening mizu', function () {
|
||||
it('opening kubeshark', function () {
|
||||
cy.visit(Cypress.env('testUrl'));
|
||||
});
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {isValueExistsInElement} from '../testHelpers/TrafficHelper';
|
||||
|
||||
it('Loading Mizu', function () {
|
||||
it('Loading Kubeshark', function () {
|
||||
cy.visit(Cypress.env('testUrl'));
|
||||
});
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import {checkFilterByMethod, valueTabs,} from "../testHelpers/TrafficHelper";
|
||||
|
||||
it('opening mizu', function () {
|
||||
it('opening kubeshark', function () {
|
||||
cy.visit(Cypress.env('testUrl'));
|
||||
});
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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...) })
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
38
agent/go.mod
@ -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
|
||||
|
@ -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=
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
@ -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 (
|
||||
|
@ -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 {
|
||||
|
@ -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() {
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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 {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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 {
|
||||
|
@ -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 (
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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",
|
||||
|
@ -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) {
|
||||
|
@ -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 {
|
||||
|
@ -5,7 +5,7 @@ import (
|
||||
"time"
|
||||
"unicode/utf8"
|
||||
|
||||
"github.com/up9inc/mizu/logger"
|
||||
"github.com/kubeshark/kubeshark/logger"
|
||||
)
|
||||
|
||||
/*
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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{
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/chanced/openapi"
|
||||
"github.com/up9inc/mizu/logger"
|
||||
"github.com/kubeshark/kubeshark/logger"
|
||||
)
|
||||
|
||||
type NodePath = []string
|
||||
|
@ -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) {
|
||||
|
@ -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 {
|
||||
|
@ -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) {
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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.
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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.
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package servicemap
|
||||
|
||||
import (
|
||||
tapApi "github.com/up9inc/mizu/tap/api"
|
||||
tapApi "github.com/kubeshark/kubeshark/tap/api"
|
||||
)
|
||||
|
||||
type ServiceMapStatus struct {
|
||||
|
@ -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 (
|
||||
|
@ -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",
|
||||
|
@ -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 (
|
||||
|
Before Width: | Height: | Size: 811 KiB After Width: | Height: | Size: 811 KiB |
94
assets/kubeshark-logo.svg
Normal 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 |
BIN
assets/kubeshark-ui-clean.png
Normal file
After Width: | Height: | Size: 629 KiB |
BIN
assets/kubeshark-ui.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 640 KiB |
22
cli/Makefile
@ -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
|
||||
|
||||
|
@ -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.
|
||||
|
||||
|
||||
|
@ -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"
|
||||
)
|
||||
|
||||
|
@ -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,
|
||||
},
|
||||
|
@ -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")
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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) {
|
||||
|
@ -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, "")
|
||||
}
|
||||
|
@ -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 {
|
||||
|