diff --git a/cmd/tapRunner.go b/cmd/tapRunner.go index 500e08048..f6904d94e 100644 --- a/cmd/tapRunner.go +++ b/cmd/tapRunner.go @@ -70,7 +70,7 @@ func tap() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() // cancel will be called when this function exits - state.targetNamespaces = getNamespaces(kubernetesProvider) + state.targetNamespaces = kubernetesProvider.GetNamespaces() if config.Config.IsNsRestrictedMode() { if len(state.targetNamespaces) != 1 || !utils.Contains(state.targetNamespaces, config.Config.Tap.SelfNamespace) { @@ -495,17 +495,3 @@ func postFrontStarted(ctx context.Context, kubernetesProvider *kubernetes.Provid utils.OpenBrowser(url) } } - -func getNamespaces(kubernetesProvider *kubernetes.Provider) []string { - if config.Config.Tap.AllNamespaces { - return []string{kubernetes.K8sAllNamespaces} - } else if len(config.Config.Tap.Namespaces) > 0 { - return utils.Unique(config.Config.Tap.Namespaces) - } else { - currentNamespace, err := kubernetesProvider.CurrentNamespace() - if err != nil { - log.Fatal().Err(err).Msg("Error getting current namespace!") - } - return []string{currentNamespace} - } -} diff --git a/config/configStructs/tapConfig.go b/config/configStructs/tapConfig.go index 342ca32f8..746439cd5 100644 --- a/config/configStructs/tapConfig.go +++ b/config/configStructs/tapConfig.go @@ -74,7 +74,7 @@ type TapConfig struct { Proxy ProxyConfig `yaml:"proxy"` PodRegexStr string `yaml:"regex" default:".*"` Namespaces []string `yaml:"namespaces"` - AllNamespaces bool `yaml:"allnamespaces" default:"false"` + AllNamespaces bool `yaml:"allnamespaces" default:"true"` SelfNamespace string `yaml:"selfnamespace" default:"kubeshark"` StorageLimit string `yaml:"storagelimit" default:"200MB"` DryRun bool `yaml:"dryrun" default:"false"` diff --git a/kubernetes/provider.go b/kubernetes/provider.go index 249fb040b..2bf9ef7c7 100644 --- a/kubernetes/provider.go +++ b/kubernetes/provider.go @@ -9,12 +9,14 @@ import ( "net/url" "path/filepath" "regexp" + "strings" "github.com/kubeshark/kubeshark/config" "github.com/kubeshark/kubeshark/config/configStructs" "github.com/kubeshark/kubeshark/docker" "github.com/kubeshark/kubeshark/misc" "github.com/kubeshark/kubeshark/semver" + "github.com/kubeshark/kubeshark/utils" "github.com/rs/zerolog/log" auth "k8s.io/api/authorization/v1" core "k8s.io/api/core/v1" @@ -226,6 +228,24 @@ func (provider *Provider) BuildHubPod(opts *PodOptions) (*core.Pod, error) { "memory": memRequests, }, }, + Env: []core.EnvVar{ + { + Name: "POD_REGEX", + Value: config.Config.Tap.PodRegexStr, + }, + { + Name: "NAMESPACES", + Value: strings.Join(provider.GetNamespaces(), ","), + }, + { + Name: "STORAGE_LIMIT", + Value: config.Config.Tap.StorageLimit, + }, + { + Name: "LICENSE", + Value: "", + }, + }, }, } @@ -1076,6 +1096,20 @@ func (provider *Provider) GetKubernetesVersion() (*semver.SemVersion, error) { return &serverVersionSemVer, nil } +func (provider *Provider) GetNamespaces() []string { + if config.Config.Tap.AllNamespaces { + return []string{K8sAllNamespaces} + } else if len(config.Config.Tap.Namespaces) > 0 { + return utils.Unique(config.Config.Tap.Namespaces) + } else { + currentNamespace, err := provider.CurrentNamespace() + if err != nil { + log.Fatal().Err(err).Msg("Error getting current namespace!") + } + return []string{currentNamespace} + } +} + func getClientSet(config *rest.Config) (*kubernetes.Clientset, error) { clientSet, err := kubernetes.NewForConfig(config) if err != nil { diff --git a/manifests/04-hub-pod.yaml b/manifests/04-hub-pod.yaml index 8ac0d1a83..1ad08f4ae 100644 --- a/manifests/04-hub-pod.yaml +++ b/manifests/04-hub-pod.yaml @@ -12,6 +12,13 @@ spec: containers: - command: - ./hub + env: + - name: POD_REGEX + value: .* + - name: NAMESPACES + - name: STORAGE_LIMIT + value: 200MB + - name: LICENSE image: docker.io/kubeshark/hub:latest imagePullPolicy: Always name: kubeshark-hub