mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-09-29 06:17:40 +00:00
41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
package check
|
|
|
|
import (
|
|
"github.com/kubeshark/kubeshark/config"
|
|
"github.com/kubeshark/kubeshark/internal/connect"
|
|
"github.com/kubeshark/kubeshark/kubernetes"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func ServerConnection(kubernetesProvider *kubernetes.Provider) bool {
|
|
log.Info().Str("procedure", "server-connectivity").Msg("Checking:")
|
|
|
|
var connectedToHub, connectedToFront bool
|
|
|
|
if err := checkProxy(kubernetes.GetLocalhostOnPort(config.Config.Tap.Proxy.Hub.SrcPort), "/echo", kubernetesProvider); err != nil {
|
|
log.Error().Err(err).Msg("Couldn't connect to Hub using proxy!")
|
|
} else {
|
|
connectedToHub = true
|
|
log.Info().Msg("Connected successfully to Hub using proxy.")
|
|
}
|
|
|
|
if err := checkProxy(kubernetes.GetLocalhostOnPort(config.Config.Tap.Proxy.Front.SrcPort), "", kubernetesProvider); err != nil {
|
|
log.Error().Err(err).Msg("Couldn't connect to Front using proxy!")
|
|
} else {
|
|
connectedToFront = true
|
|
log.Info().Msg("Connected successfully to Front using proxy.")
|
|
}
|
|
|
|
return connectedToHub && connectedToFront
|
|
}
|
|
|
|
func checkProxy(serverUrl string, path string, kubernetesProvider *kubernetes.Provider) error {
|
|
log.Info().Str("url", serverUrl).Msg("Connecting:")
|
|
connector := connect.NewConnector(serverUrl, connect.DefaultRetries, connect.DefaultTimeout)
|
|
if err := connector.TestConnection(path); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|