From 3c13a8d96bcb1d191ac5e9af5589d5223dfd1c7b Mon Sep 17 00:00:00 2001 From: Volodymyr Stoiko Date: Mon, 31 Mar 2025 23:04:18 +0300 Subject: [PATCH 1/7] Exit properly from scripts command (#1731) * Fix scripts command exit * Switch to debug --- cmd/scripts.go | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/cmd/scripts.go b/cmd/scripts.go index 8959511fa..9a5123061 100644 --- a/cmd/scripts.go +++ b/cmd/scripts.go @@ -123,7 +123,7 @@ func createScript(provider *kubernetes.Provider, script misc.ConfigMapScript) (i } if k8serrors.IsConflict(err) { - log.Warn().Err(err).Msg("Conflict detected, retrying update...") + log.Debug().Err(err).Msg("Conflict detected, retrying update...") time.Sleep(500 * time.Millisecond) continue } @@ -332,23 +332,29 @@ func watchConfigMap(ctx context.Context, provider *kubernetes.Provider) { continue } - for event := range watcher.ResultChan() { - select { - case <-ctx.Done(): - log.Info().Msg("ConfigMap watcher loop exiting gracefully.") - watcher.Stop() - return - - default: + // Create a goroutine to process events + watcherClosed := make(chan struct{}) + go func() { + defer close(watcherClosed) + for event := range watcher.ResultChan() { if event.Type == watch.Added { log.Info().Msg("ConfigMap created or modified") runScriptsSync(provider) } else if event.Type == watch.Deleted { log.Warn().Msg("ConfigMap deleted, waiting for recreation...") - watcher.Stop() break } } + }() + + // Wait for either context cancellation or watcher completion + select { + case <-ctx.Done(): + watcher.Stop() + log.Info().Msg("ConfigMap watcher stopping due to context cancellation") + return + case <-watcherClosed: + log.Info().Msg("Watcher closed, restarting...") } time.Sleep(5 * time.Second) From 59ef0f8f80aec34f52ec04de11a567710d74e18f Mon Sep 17 00:00:00 2001 From: Serhii Ponomarenko <116438358+tiptophelmet@users.noreply.github.com> Date: Tue, 1 Apr 2025 23:08:46 +0300 Subject: [PATCH 2/7] :hammer: Add `tap.dashboard.completeStreamingEnabled` flag (#1733) --- config/configStruct.go | 3 +++ config/configStructs/tapConfig.go | 5 +++++ helm-chart/templates/06-front-deployment.yaml | 6 ++++++ helm-chart/values.yaml | 2 ++ 4 files changed, 16 insertions(+) diff --git a/config/configStruct.go b/config/configStruct.go index a911dc64c..4cd4bef31 100644 --- a/config/configStruct.go +++ b/config/configStruct.go @@ -135,6 +135,9 @@ func CreateDefaultConfig() ConfigStruct { LDAP: []uint16{389}, DIAMETER: []uint16{3868}, }, + Dashboard: configStructs.DashboardConfig{ + CompleteStreamingEnabled: true, + }, }, } } diff --git a/config/configStructs/tapConfig.go b/config/configStructs/tapConfig.go index 1be086b04..923223cb0 100644 --- a/config/configStructs/tapConfig.go +++ b/config/configStructs/tapConfig.go @@ -195,6 +195,10 @@ type RoutingConfig struct { Front FrontRoutingConfig `yaml:"front" json:"front"` } +type DashboardConfig struct { + CompleteStreamingEnabled bool `yaml:"completeStreamingEnabled" json:"completeStreamingEnabled" default:"true"` +} + type FrontRoutingConfig struct { BasePath string `yaml:"basePath" json:"basePath" default:""` } @@ -320,6 +324,7 @@ type TapConfig struct { Routing RoutingConfig `yaml:"routing" json:"routing"` IPv6 bool `yaml:"ipv6" json:"ipv6" default:"true"` Debug bool `yaml:"debug" json:"debug" default:"false"` + Dashboard DashboardConfig `yaml:"dashboard" json:"dashboard"` Telemetry TelemetryConfig `yaml:"telemetry" json:"telemetry"` ResourceGuard ResourceGuardConfig `yaml:"resourceGuard" json:"resourceGuard"` Watchdog WatchdogConfig `yaml:"watchdog" json:"watchdog"` diff --git a/helm-chart/templates/06-front-deployment.yaml b/helm-chart/templates/06-front-deployment.yaml index 1644bf450..6fd699df5 100644 --- a/helm-chart/templates/06-front-deployment.yaml +++ b/helm-chart/templates/06-front-deployment.yaml @@ -36,6 +36,12 @@ spec: {{- else -}} {{ .Values.tap.auth.type }} {{- end }}' + - name: REACT_APP_COMPLETE_STREAMING_ENABLED + value: '{{- if and (hasKey .Values.tap "dashboard") (hasKey .Values.tap.dashboard "completeStreamingEnabled") -}} + {{ eq .Values.tap.dashboard.completeStreamingEnabled true | ternary "true" "false" }} + {{- else -}} + true + {{- end }}' - name: REACT_APP_AUTH_SAML_IDP_METADATA_URL value: '{{ not (eq .Values.tap.auth.saml.idpMetadataUrl "") | ternary .Values.tap.auth.saml.idpMetadataUrl " " }}' - name: REACT_APP_TIMEZONE diff --git a/helm-chart/values.yaml b/helm-chart/values.yaml index 97342ca36..a898a8e58 100644 --- a/helm-chart/values.yaml +++ b/helm-chart/values.yaml @@ -136,6 +136,8 @@ tap: basePath: "" ipv6: true debug: false + dashboard: + completeStreamingEnabled: true telemetry: enabled: true resourceGuard: From a9147330784db7ff9a15096ac6a2274de4c8ca16 Mon Sep 17 00:00:00 2001 From: Volodymyr Stoiko Date: Tue, 1 Apr 2025 23:29:04 +0300 Subject: [PATCH 3/7] Allow reading logs (#1734) Co-authored-by: Alon Girmonsky <1990761+alongir@users.noreply.github.com> --- helm-chart/templates/02-cluster-role.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/helm-chart/templates/02-cluster-role.yaml b/helm-chart/templates/02-cluster-role.yaml index 7191853c9..5c9f56d83 100644 --- a/helm-chart/templates/02-cluster-role.yaml +++ b/helm-chart/templates/02-cluster-role.yaml @@ -72,3 +72,9 @@ rules: - list - update - patch + - apiGroups: + - "" + resources: + - pods/log + verbs: + - get \ No newline at end of file From a6eabbbdee7cb00ebbcd4f3dcc5c7dfb5a5237a2 Mon Sep 17 00:00:00 2001 From: Serhii Ponomarenko <116438358+tiptophelmet@users.noreply.github.com> Date: Fri, 4 Apr 2025 20:07:02 +0300 Subject: [PATCH 4/7] :hammer: Add `tap.auth.dexOidc.bypassSslCaCheck` flag (#1737) * :hammer: Add `tap.auth.dexOidc.bypassSslCaCheck` flag * :memo: Update docs for Dex SSL CA bypass * :hammer: Bring back deleted Dex node-selector-terms --- config/configStructs/tapConfig.go | 1 + helm-chart/README.md | 13 +++++++++++++ helm-chart/templates/12-config-map.yaml | 9 +++++++++ helm-chart/values.yaml | 6 ++++++ 4 files changed, 29 insertions(+) diff --git a/config/configStructs/tapConfig.go b/config/configStructs/tapConfig.go index 923223cb0..99bf42159 100644 --- a/config/configStructs/tapConfig.go +++ b/config/configStructs/tapConfig.go @@ -138,6 +138,7 @@ type NodeSelectorTermsConfig struct { Hub []v1.NodeSelectorTerm `yaml:"hub" json:"hub" default:"[]"` Workers []v1.NodeSelectorTerm `yaml:"workers" json:"workers" default:"[]"` Front []v1.NodeSelectorTerm `yaml:"front" json:"front" default:"[]"` + Dex []v1.NodeSelectorTerm `yaml:"dex" json:"dex" default:"[]"` } type TolerationsConfig struct { diff --git a/helm-chart/README.md b/helm-chart/README.md index c18b30137..2aa877b09 100644 --- a/helm-chart/README.md +++ b/helm-chart/README.md @@ -351,8 +351,20 @@ tap: clientSecret: create your own client password refreshTokenLifetime: "3960h" # 165 days oauth2StateParamExpiry: "10m" + bypassSslCaCheck: false ``` +--- + +**Note:**
+Set `tap.auth.dexOidc.bypassSslCaCheck: true` +to allow Kubeshark communication with Dex IdP having an unknown SSL Certificate Authority. + +This setting allows you to prevent such SSL CA-related errors:
+`tls: failed to verify certificate: x509: certificate signed by unknown authority` + +--- + Once you run `helm install kubeshark kubeshark/kubeshark -f ./values.yaml`, Kubeshark will be installed with (Dex) OIDC authentication enabled. --- @@ -443,6 +455,7 @@ tap: refreshTokenLifetime: "3960h" # 165 days oauth2StateParamExpiry: "10m" + bypassSslCaCheck: false dexConfig: # This field is REQUIRED! # diff --git a/helm-chart/templates/12-config-map.yaml b/helm-chart/templates/12-config-map.yaml index 3cf3d7144..a7e554e6c 100644 --- a/helm-chart/templates/12-config-map.yaml +++ b/helm-chart/templates/12-config-map.yaml @@ -33,6 +33,15 @@ data: AUTH_OIDC_ISSUER: '{{ default "not set" (((.Values.tap).auth).dexOidc).issuer }}' AUTH_OIDC_REFRESH_TOKEN_LIFETIME: '{{ default "3960h" (((.Values.tap).auth).dexOidc).refreshTokenLifetime }}' AUTH_OIDC_STATE_PARAM_EXPIRY: '{{ default "10m" (((.Values.tap).auth).dexOidc).oauth2StateParamExpiry }}' + AUTH_OIDC_BYPASS_SSL_CA_CHECK: '{{- if and + (hasKey .Values.tap "auth") + (hasKey .Values.tap.auth "dexOidc") + (hasKey .Values.tap.auth.dexOidc "bypassSslCaCheck") + -}} + {{ eq .Values.tap.auth.dexOidc.bypassSslCaCheck true | ternary "true" "false" }} + {{- else -}} + false + {{- end }}' TELEMETRY_DISABLED: '{{ not .Values.internetConnectivity | ternary "true" (not .Values.tap.telemetry.enabled | ternary "true" "false") }}' SCRIPTING_DISABLED: '{{- if .Values.tap.liveConfigMapChangesDisabled -}} {{- if .Values.demoModeEnabled -}} diff --git a/helm-chart/values.yaml b/helm-chart/values.yaml index a898a8e58..f4e2d41f9 100644 --- a/helm-chart/values.yaml +++ b/helm-chart/values.yaml @@ -99,6 +99,12 @@ tap: operator: In values: - linux + dex: + - matchExpressions: + - key: kubernetes.io/os + operator: In + values: + - linux tolerations: hub: [] workers: From 25ecc18d39b60eec0113205a74b137fc0baa9652 Mon Sep 17 00:00:00 2001 From: Serhii Ponomarenko <116438358+tiptophelmet@users.noreply.github.com> Date: Mon, 7 Apr 2025 18:23:04 +0300 Subject: [PATCH 5/7] :hammer: Add default value for Dex node selector terms (#1740) --- config/configStruct.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/config/configStruct.go b/config/configStruct.go index 4cd4bef31..2082d82e2 100644 --- a/config/configStruct.go +++ b/config/configStruct.go @@ -50,6 +50,17 @@ func CreateDefaultConfig() ConfigStruct { }, }, }, + Dex: []v1.NodeSelectorTerm{ + { + MatchExpressions: []v1.NodeSelectorRequirement{ + { + Key: "kubernetes.io/os", + Operator: v1.NodeSelectorOpIn, + Values: []string{"linux"}, + }, + }, + }, + }, }, Tolerations: configStructs.TolerationsConfig{ Workers: []v1.Toleration{ From 59026d4ad400c6d2ce3f297c4dea9cb530a4b661 Mon Sep 17 00:00:00 2001 From: Volodymyr Stoiko Date: Mon, 7 Apr 2025 18:25:27 +0300 Subject: [PATCH 6/7] Add pvc volumeMode (#1739) Co-authored-by: Alon Girmonsky <1990761+alongir@users.noreply.github.com> --- config/configStructs/tapConfig.go | 93 ++++++++++--------- helm-chart/README.md | 1 + .../templates/08-persistent-volume-claim.yaml | 1 + helm-chart/values.yaml | 8 +- 4 files changed, 51 insertions(+), 52 deletions(-) diff --git a/config/configStructs/tapConfig.go b/config/configStructs/tapConfig.go index 99bf42159..b2f2f650d 100644 --- a/config/configStructs/tapConfig.go +++ b/config/configStructs/tapConfig.go @@ -295,52 +295,53 @@ type SeLinuxOptionsConfig struct { } type TapConfig struct { - Docker DockerConfig `yaml:"docker" json:"docker"` - Proxy ProxyConfig `yaml:"proxy" json:"proxy"` - PodRegexStr string `yaml:"regex" json:"regex" default:".*"` - Namespaces []string `yaml:"namespaces" json:"namespaces" default:"[]"` - ExcludedNamespaces []string `yaml:"excludedNamespaces" json:"excludedNamespaces" default:"[]"` - BpfOverride string `yaml:"bpfOverride" json:"bpfOverride" default:""` - Stopped bool `yaml:"stopped" json:"stopped" default:"false"` - Release ReleaseConfig `yaml:"release" json:"release"` - PersistentStorage bool `yaml:"persistentStorage" json:"persistentStorage" default:"false"` - PersistentStorageStatic bool `yaml:"persistentStorageStatic" json:"persistentStorageStatic" default:"false"` - EfsFileSytemIdAndPath string `yaml:"efsFileSytemIdAndPath" json:"efsFileSytemIdAndPath" default:""` - StorageLimit string `yaml:"storageLimit" json:"storageLimit" default:"5000Mi"` - StorageClass string `yaml:"storageClass" json:"storageClass" default:"standard"` - DryRun bool `yaml:"dryRun" json:"dryRun" default:"false"` - DnsConfig DnsConfig `yaml:"dns" json:"dns"` - Resources ResourcesConfig `yaml:"resources" json:"resources"` - Probes ProbesConfig `yaml:"probes" json:"probes"` - ServiceMesh bool `yaml:"serviceMesh" json:"serviceMesh" default:"true"` - Tls bool `yaml:"tls" json:"tls" default:"true"` - DisableTlsLog bool `yaml:"disableTlsLog" json:"disableTlsLog" default:"true"` - PacketCapture string `yaml:"packetCapture" json:"packetCapture" default:"best"` - Labels map[string]string `yaml:"labels" json:"labels" default:"{}"` - Annotations map[string]string `yaml:"annotations" json:"annotations" default:"{}"` - NodeSelectorTerms NodeSelectorTermsConfig `yaml:"nodeSelectorTerms" json:"nodeSelectorTerms" default:"{}"` - Tolerations TolerationsConfig `yaml:"tolerations" json:"tolerations" default:"{}"` - Auth AuthConfig `yaml:"auth" json:"auth"` - Ingress IngressConfig `yaml:"ingress" json:"ingress"` - Routing RoutingConfig `yaml:"routing" json:"routing"` - IPv6 bool `yaml:"ipv6" json:"ipv6" default:"true"` - Debug bool `yaml:"debug" json:"debug" default:"false"` - Dashboard DashboardConfig `yaml:"dashboard" json:"dashboard"` - Telemetry TelemetryConfig `yaml:"telemetry" json:"telemetry"` - ResourceGuard ResourceGuardConfig `yaml:"resourceGuard" json:"resourceGuard"` - Watchdog WatchdogConfig `yaml:"watchdog" json:"watchdog"` - Sentry SentryConfig `yaml:"sentry" json:"sentry"` - DefaultFilter string `yaml:"defaultFilter" json:"defaultFilter" default:"!dns and !error"` - LiveConfigMapChangesDisabled bool `yaml:"liveConfigMapChangesDisabled" json:"liveConfigMapChangesDisabled" default:"false"` - GlobalFilter string `yaml:"globalFilter" json:"globalFilter" default:""` - EnabledDissectors []string `yaml:"enabledDissectors" json:"enabledDissectors"` - PortMapping PortMapping `yaml:"portMapping" json:"portMapping"` - CustomMacros map[string]string `yaml:"customMacros" json:"customMacros" default:"{\"https\":\"tls and (http or http2)\"}"` - Metrics MetricsConfig `yaml:"metrics" json:"metrics"` - Pprof PprofConfig `yaml:"pprof" json:"pprof"` - Misc MiscConfig `yaml:"misc" json:"misc"` - SecurityContext SecurityContextConfig `yaml:"securityContext" json:"securityContext"` - MountBpf bool `yaml:"mountBpf" json:"mountBpf" default:"true"` + Docker DockerConfig `yaml:"docker" json:"docker"` + Proxy ProxyConfig `yaml:"proxy" json:"proxy"` + PodRegexStr string `yaml:"regex" json:"regex" default:".*"` + Namespaces []string `yaml:"namespaces" json:"namespaces" default:"[]"` + ExcludedNamespaces []string `yaml:"excludedNamespaces" json:"excludedNamespaces" default:"[]"` + BpfOverride string `yaml:"bpfOverride" json:"bpfOverride" default:""` + Stopped bool `yaml:"stopped" json:"stopped" default:"false"` + Release ReleaseConfig `yaml:"release" json:"release"` + PersistentStorage bool `yaml:"persistentStorage" json:"persistentStorage" default:"false"` + PersistentStorageStatic bool `yaml:"persistentStorageStatic" json:"persistentStorageStatic" default:"false"` + PersistentStoragePvcVolumeMode string `yaml:"persistentStoragePvcVolumeMode" json:"persistentStoragePvcVolumeMode" default:"FileSystem"` + EfsFileSytemIdAndPath string `yaml:"efsFileSytemIdAndPath" json:"efsFileSytemIdAndPath" default:""` + StorageLimit string `yaml:"storageLimit" json:"storageLimit" default:"5000Mi"` + StorageClass string `yaml:"storageClass" json:"storageClass" default:"standard"` + DryRun bool `yaml:"dryRun" json:"dryRun" default:"false"` + DnsConfig DnsConfig `yaml:"dns" json:"dns"` + Resources ResourcesConfig `yaml:"resources" json:"resources"` + Probes ProbesConfig `yaml:"probes" json:"probes"` + ServiceMesh bool `yaml:"serviceMesh" json:"serviceMesh" default:"true"` + Tls bool `yaml:"tls" json:"tls" default:"true"` + DisableTlsLog bool `yaml:"disableTlsLog" json:"disableTlsLog" default:"true"` + PacketCapture string `yaml:"packetCapture" json:"packetCapture" default:"best"` + Labels map[string]string `yaml:"labels" json:"labels" default:"{}"` + Annotations map[string]string `yaml:"annotations" json:"annotations" default:"{}"` + NodeSelectorTerms NodeSelectorTermsConfig `yaml:"nodeSelectorTerms" json:"nodeSelectorTerms" default:"{}"` + Tolerations TolerationsConfig `yaml:"tolerations" json:"tolerations" default:"{}"` + Auth AuthConfig `yaml:"auth" json:"auth"` + Ingress IngressConfig `yaml:"ingress" json:"ingress"` + Routing RoutingConfig `yaml:"routing" json:"routing"` + IPv6 bool `yaml:"ipv6" json:"ipv6" default:"true"` + Debug bool `yaml:"debug" json:"debug" default:"false"` + Dashboard DashboardConfig `yaml:"dashboard" json:"dashboard"` + Telemetry TelemetryConfig `yaml:"telemetry" json:"telemetry"` + ResourceGuard ResourceGuardConfig `yaml:"resourceGuard" json:"resourceGuard"` + Watchdog WatchdogConfig `yaml:"watchdog" json:"watchdog"` + Sentry SentryConfig `yaml:"sentry" json:"sentry"` + DefaultFilter string `yaml:"defaultFilter" json:"defaultFilter" default:"!dns and !error"` + LiveConfigMapChangesDisabled bool `yaml:"liveConfigMapChangesDisabled" json:"liveConfigMapChangesDisabled" default:"false"` + GlobalFilter string `yaml:"globalFilter" json:"globalFilter" default:""` + EnabledDissectors []string `yaml:"enabledDissectors" json:"enabledDissectors"` + PortMapping PortMapping `yaml:"portMapping" json:"portMapping"` + CustomMacros map[string]string `yaml:"customMacros" json:"customMacros" default:"{\"https\":\"tls and (http or http2)\"}"` + Metrics MetricsConfig `yaml:"metrics" json:"metrics"` + Pprof PprofConfig `yaml:"pprof" json:"pprof"` + Misc MiscConfig `yaml:"misc" json:"misc"` + SecurityContext SecurityContextConfig `yaml:"securityContext" json:"securityContext"` + MountBpf bool `yaml:"mountBpf" json:"mountBpf" default:"true"` } func (config *TapConfig) PodRegex() *regexp.Regexp { diff --git a/helm-chart/README.md b/helm-chart/README.md index 2aa877b09..f4748b168 100644 --- a/helm-chart/README.md +++ b/helm-chart/README.md @@ -144,6 +144,7 @@ Example for overriding image names: | `tap.release.namespace` | Helm release namespace | `default` | | `tap.persistentStorage` | Use `persistentVolumeClaim` instead of `emptyDir` | `false` | | `tap.persistentStorageStatic` | Use static persistent volume provisioning (explicitly defined `PersistentVolume` ) | `false` | +| `tap.persistentStoragePvcVolumeMode` | Set the pvc volume mode (Filesystem\|Block) | `Filesystem` | | `tap.efsFileSytemIdAndPath` | [EFS file system ID and, optionally, subpath and/or access point](https://github.com/kubernetes-sigs/aws-efs-csi-driver/blob/master/examples/kubernetes/access_points/README.md) `::` | "" | | `tap.storageLimit` | Limit of either the `emptyDir` or `persistentVolumeClaim` | `500Mi` | | `tap.storageClass` | Storage class of the `PersistentVolumeClaim` | `standard` | diff --git a/helm-chart/templates/08-persistent-volume-claim.yaml b/helm-chart/templates/08-persistent-volume-claim.yaml index 079899161..49c4cb4c5 100644 --- a/helm-chart/templates/08-persistent-volume-claim.yaml +++ b/helm-chart/templates/08-persistent-volume-claim.yaml @@ -33,6 +33,7 @@ metadata: name: kubeshark-persistent-volume-claim namespace: {{ .Release.Namespace }} spec: + volumeMode: {{ .Values.tap.persistentStoragePvcVolumeMode }} accessModes: - ReadWriteMany resources: diff --git a/helm-chart/values.yaml b/helm-chart/values.yaml index f4e2d41f9..c9d25741f 100644 --- a/helm-chart/values.yaml +++ b/helm-chart/values.yaml @@ -33,6 +33,7 @@ tap: namespace: default persistentStorage: false persistentStorageStatic: false + persistentStoragePvcVolumeMode: FileSystem efsFileSytemIdAndPath: "" storageLimit: 5000Mi storageClass: standard @@ -99,12 +100,7 @@ tap: operator: In values: - linux - dex: - - matchExpressions: - - key: kubernetes.io/os - operator: In - values: - - linux + dex: [] tolerations: hub: [] workers: From ac5bf9b276c7a607547c938ba05b7ed8a86b6c83 Mon Sep 17 00:00:00 2001 From: Alon Girmonsky <1990761+alongir@users.noreply.github.com> Date: Mon, 7 Apr 2025 08:47:37 -0700 Subject: [PATCH 7/7] Make changes in default values (#1735) * Disable Intercom support by default. Support can be enabled using a helm flag. * updated the license notification as a result of a successful helm installation. * GenAI assistant enabled by default --- config/configStruct.go | 4 ++-- helm-chart/README.md | 2 +- helm-chart/templates/NOTES.txt | 2 +- helm-chart/values.yaml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/config/configStruct.go b/config/configStruct.go index 2082d82e2..f794d001b 100644 --- a/config/configStruct.go +++ b/config/configStruct.go @@ -172,9 +172,9 @@ type ConfigStruct struct { HeadlessMode bool `yaml:"headless" json:"headless" default:"false"` License string `yaml:"license" json:"license" default:""` CloudLicenseEnabled bool `yaml:"cloudLicenseEnabled" json:"cloudLicenseEnabled" default:"true"` - AiAssistantEnabled bool `yaml:"aiAssistantEnabled" json:"aiAssistantEnabled" default:"false"` + AiAssistantEnabled bool `yaml:"aiAssistantEnabled" json:"aiAssistantEnabled" default:"true"` DemoModeEnabled bool `yaml:"demoModeEnabled" json:"demoModeEnabled" default:"false"` - SupportChatEnabled bool `yaml:"supportChatEnabled" json:"supportChatEnabled" default:"true"` + SupportChatEnabled bool `yaml:"supportChatEnabled" json:"supportChatEnabled" default:"false"` InternetConnectivity bool `yaml:"internetConnectivity" json:"internetConnectivity" default:"true"` Scripting configStructs.ScriptingConfig `yaml:"scripting" json:"scripting"` Manifests ManifestsConfig `yaml:"manifests,omitempty" json:"manifests,omitempty"` diff --git a/helm-chart/README.md b/helm-chart/README.md index f4748b168..bfae9388a 100644 --- a/helm-chart/README.md +++ b/helm-chart/README.md @@ -223,7 +223,7 @@ Example for overriding image names: | `scripting.source` | Source directory of the scripts | `""` | | `scripting.watchScripts` | Enable watch mode for the scripts in source directory | `true` | | `timezone` | IANA time zone applied to time shown in the front-end | `""` (local time zone applies) | -| `supportChatEnabled` | Enable real-time support chat channel based on Intercom | `true` | +| `supportChatEnabled` | Enable real-time support chat channel based on Intercom | `false` | | `internetConnectivity` | Turns off API requests that are dependant on Internet connectivity such as `telemetry` and `online-support`. | `true` | KernelMapping pairs kernel versions with a diff --git a/helm-chart/templates/NOTES.txt b/helm-chart/templates/NOTES.txt index b1a6a1d72..1beaa0e5d 100644 --- a/helm-chart/templates/NOTES.txt +++ b/helm-chart/templates/NOTES.txt @@ -28,7 +28,7 @@ Notices: - Support chat using Intercom is enabled. It can be disabled using `--set supportChatEnabled=false` {{- end }} {{- if eq .Values.license ""}} -- No license key was detected. You can get your license key from https://console.kubeshark.co/. +- No license key was detected. You can either log-in/sign-up through the dashboard, or download the license key from https://console.kubeshark.co/. {{- end }} {{ if .Values.tap.ingress.enabled }} diff --git a/helm-chart/values.yaml b/helm-chart/values.yaml index c9d25741f..e3921539c 100644 --- a/helm-chart/values.yaml +++ b/helm-chart/values.yaml @@ -242,9 +242,9 @@ dumpLogs: false headless: false license: "" cloudLicenseEnabled: true -aiAssistantEnabled: false +aiAssistantEnabled: true demoModeEnabled: false -supportChatEnabled: true +supportChatEnabled: false internetConnectivity: true scripting: env: {}