mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-09-22 02:27:05 +00:00
improvements and fixes
This commit is contained in:
@@ -144,9 +144,8 @@ func GetHARs(c *fiber.Ctx) error {
|
|||||||
return c.Status(fiber.StatusOK).SendStream(buffer)
|
return c.Status(fiber.StatusOK).SendStream(buffer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func uploadEntriesImpl(token string, model string) {
|
func uploadEntriesImpl(token string, model string, envPrefix string) {
|
||||||
baseUrl := "igorgov-dev.dev.testr.io"
|
sleepTime := time.Second * 10
|
||||||
sleepTime := int64(time.Second * 10)
|
|
||||||
|
|
||||||
var timestampFrom int64 = 0
|
var timestampFrom int64 = 0
|
||||||
|
|
||||||
@@ -165,11 +164,12 @@ func uploadEntriesImpl(token string, model string) {
|
|||||||
|
|
||||||
var in bytes.Buffer
|
var in bytes.Buffer
|
||||||
w := zlib.NewWriter(&in)
|
w := zlib.NewWriter(&in)
|
||||||
w.Write(body)
|
_, _ = w.Write(body)
|
||||||
w.Close()
|
_ = w.Close()
|
||||||
reqBody := ioutil.NopCloser(bytes.NewReader(in.Bytes()))
|
reqBody := ioutil.NopCloser(bytes.NewReader(in.Bytes()))
|
||||||
|
|
||||||
postUrl, _ := url.Parse("https://traffic." + baseUrl + "/dumpTrafficBulk/" + model)
|
postUrl, _ := url.Parse("https://traffic." + envPrefix + "/dumpTrafficBulk/" + model)
|
||||||
|
fmt.Println(postUrl)
|
||||||
req := &http.Request{
|
req := &http.Request{
|
||||||
Method: "POST",
|
Method: "POST",
|
||||||
URL: postUrl,
|
URL: postUrl,
|
||||||
@@ -184,12 +184,15 @@ func uploadEntriesImpl(token string, model string) {
|
|||||||
if postErr != nil {
|
if postErr != nil {
|
||||||
log.Fatal(postErr)
|
log.Fatal(postErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Finish uploading %v entries to %s\n", len(entriesArray), postUrl)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
fmt.Println("Nothing to upload")
|
fmt.Println("Nothing to upload")
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println("Sleeping for " + string(sleepTime) + "seconds...")
|
fmt.Printf("Sleeping for %v...\n", sleepTime)
|
||||||
time.Sleep(time.Duration(sleepTime))
|
time.Sleep(sleepTime)
|
||||||
timestampFrom = timestampTo
|
timestampFrom = timestampTo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -202,7 +205,7 @@ func UploadEntries(c *fiber.Ctx) error {
|
|||||||
if err := validation.Validate(entriesFilter); err != nil {
|
if err := validation.Validate(entriesFilter); err != nil {
|
||||||
return c.Status(fiber.StatusBadRequest).JSON(err)
|
return c.Status(fiber.StatusBadRequest).JSON(err)
|
||||||
}
|
}
|
||||||
go uploadEntriesImpl(entriesFilter.Token, entriesFilter.Model)
|
go uploadEntriesImpl(entriesFilter.Token, entriesFilter.Model, entriesFilter.Dest)
|
||||||
return c.Status(fiber.StatusOK).SendString("OK")
|
return c.Status(fiber.StatusOK).SendString("OK")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -52,6 +52,7 @@ type EntriesFilter struct {
|
|||||||
type UploadEntriesRequestBody struct {
|
type UploadEntriesRequestBody struct {
|
||||||
Token string `query:"token"`
|
Token string `query:"token"`
|
||||||
Model string `query:"model"`
|
Model string `query:"model"`
|
||||||
|
Dest string `query:"dest"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type HarFetchRequestBody struct {
|
type HarFetchRequestBody struct {
|
||||||
|
@@ -16,6 +16,7 @@ type MizuTapOptions struct {
|
|||||||
Namespace string
|
Namespace string
|
||||||
AllNamespaces bool
|
AllNamespaces bool
|
||||||
Analyze bool
|
Analyze bool
|
||||||
|
AnalyzeDestination string
|
||||||
KubeConfigPath string
|
KubeConfigPath string
|
||||||
MizuImage string
|
MizuImage string
|
||||||
MizuPodPort uint16
|
MizuPodPort uint16
|
||||||
@@ -62,7 +63,8 @@ func init() {
|
|||||||
|
|
||||||
tapCmd.Flags().Uint16VarP(&mizuTapOptions.GuiPort, "gui-port", "p", 8899, "Provide a custom port for the web interface webserver")
|
tapCmd.Flags().Uint16VarP(&mizuTapOptions.GuiPort, "gui-port", "p", 8899, "Provide a custom port for the web interface webserver")
|
||||||
tapCmd.Flags().StringVarP(&mizuTapOptions.Namespace, "namespace", "n", "", "Namespace selector")
|
tapCmd.Flags().StringVarP(&mizuTapOptions.Namespace, "namespace", "n", "", "Namespace selector")
|
||||||
tapCmd.Flags().BoolVarP(&mizuTapOptions.Analyze, "analyze", "", false, "Analyze traffic")
|
tapCmd.Flags().BoolVar(&mizuTapOptions.Analyze, "analyze", false, "Analyze traffic")
|
||||||
|
tapCmd.Flags().StringVar(&mizuTapOptions.AnalyzeDestination, "dest", "up9.app", "Destination environment")
|
||||||
tapCmd.Flags().BoolVarP(&mizuTapOptions.AllNamespaces, "all-namespaces", "A", false, "Tap all namespaces")
|
tapCmd.Flags().BoolVarP(&mizuTapOptions.AllNamespaces, "all-namespaces", "A", false, "Tap all namespaces")
|
||||||
tapCmd.Flags().StringVarP(&mizuTapOptions.KubeConfigPath, "kube-config", "k", "", "Path to kube-config file")
|
tapCmd.Flags().StringVarP(&mizuTapOptions.KubeConfigPath, "kube-config", "k", "", "Path to kube-config file")
|
||||||
tapCmd.Flags().StringVarP(&mizuTapOptions.MizuImage, "mizu-image", "", fmt.Sprintf("gcr.io/up9-docker-hub/mizu/%s:latest", mizu.Branch), "Custom image for mizu collector")
|
tapCmd.Flags().StringVarP(&mizuTapOptions.MizuImage, "mizu-image", "", fmt.Sprintf("gcr.io/up9-docker-hub/mizu/%s:latest", mizu.Branch), "Custom image for mizu collector")
|
||||||
|
@@ -74,7 +74,7 @@ func RunMizuTap(podRegexQuery *regexp.Regexp, tappingOptions *MizuTapOptions) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
go portForwardApiPod(ctx, kubernetesProvider, cancel, tappingOptions) // TODO convert this to job for built in pod ttl or have the running app handle this
|
go portForwardApiPod(ctx, kubernetesProvider, cancel, tappingOptions, ) // TODO convert this to job for built in pod ttl or have the running app handle this
|
||||||
go watchPodsForTapping(ctx, kubernetesProvider, cancel, podRegexQuery, tappingOptions)
|
go watchPodsForTapping(ctx, kubernetesProvider, cancel, podRegexQuery, tappingOptions)
|
||||||
go syncApiStatus(ctx, cancel, tappingOptions)
|
go syncApiStatus(ctx, cancel, tappingOptions)
|
||||||
|
|
||||||
@@ -275,13 +275,12 @@ func portForwardApiPod(ctx context.Context, kubernetesProvider *kubernetes.Provi
|
|||||||
fmt.Printf("Web interface is now available at http://localhost:%d\n", tappingOptions.GuiPort)
|
fmt.Printf("Web interface is now available at http://localhost:%d\n", tappingOptions.GuiPort)
|
||||||
|
|
||||||
if tappingOptions.Analyze {
|
if tappingOptions.Analyze {
|
||||||
baseUrl := "igorgov-dev.dev.testr.io"
|
token := CreateAnonymousToken(tappingOptions.AnalyzeDestination)
|
||||||
token := CreateAnonymousToken(baseUrl)
|
_, err := http.Get(fmt.Sprintf("http://localhost:8899/api/uploadEntries?token=%s&model=%s&dest=%s", token.Token, token.Model, tappingOptions.AnalyzeDestination))
|
||||||
_, err := http.Get("http://localhost:8899/api/uploadEntries")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
fmt.Println("https://" + baseUrl + "/share/" + token.Token)
|
fmt.Println("https://" + tappingOptions.AnalyzeDestination + "/share/" + token.Token)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Reference in New Issue
Block a user