diff --git a/cmd/helmChart.go b/cmd/helmChart.go index e6a1389b0..77a8e9d01 100644 --- a/cmd/helmChart.go +++ b/cmd/helmChart.go @@ -162,6 +162,7 @@ var frontServiceMappings = serviceAccountMappings var persistentVolumeMappings = map[string]interface{}{ "metadata.namespace": "{{ .Values.tap.selfnamespace }}", "spec.resources.requests.storage": "{{ .Values.tap.storagelimit }}", + "spec.storageClassName": "{{ .Values.tap.storageclass }}", } var workerDaemonSetMappings = map[string]interface{}{ "metadata.namespace": "{{ .Values.tap.selfnamespace }}", diff --git a/cmd/tap.go b/cmd/tap.go index 056613618..60913e6be 100644 --- a/cmd/tap.go +++ b/cmd/tap.go @@ -52,7 +52,8 @@ func init() { tapCmd.Flags().String(configStructs.ProxyHostLabel, defaultTapConfig.Proxy.Host, "Provide a custom host for the proxy/port-forward") tapCmd.Flags().StringSliceP(configStructs.NamespacesLabel, "n", defaultTapConfig.Namespaces, "Namespaces selector") tapCmd.Flags().StringP(configStructs.SelfNamespaceLabel, "s", defaultTapConfig.SelfNamespace, "Self-namespace of Kubeshark") - tapCmd.Flags().String(configStructs.StorageLimitLabel, defaultTapConfig.StorageLimit, "Override the default storage limit. (per node)") + tapCmd.Flags().String(configStructs.StorageLimitLabel, defaultTapConfig.StorageLimit, "Override the default storage limit (per node)") + tapCmd.Flags().String(configStructs.StorageClassLabel, defaultTapConfig.StorageClass, "Override the default storage class of the PersistentVolumeClaim (per node)") tapCmd.Flags().Bool(configStructs.DryRunLabel, defaultTapConfig.DryRun, "Preview of all pods matching the regex, without tapping them") tapCmd.Flags().StringP(configStructs.PcapLabel, "p", defaultTapConfig.Pcap, fmt.Sprintf("Capture from a PCAP snapshot of %s (.tar.gz) using your Docker Daemon instead of Kubernetes", misc.Software)) tapCmd.Flags().Bool(configStructs.ServiceMeshLabel, defaultTapConfig.ServiceMesh, "Capture the encrypted traffic if the cluster is configured with a service mesh and with mTLS") diff --git a/config/configStructs/tapConfig.go b/config/configStructs/tapConfig.go index 38caa516b..872f592af 100644 --- a/config/configStructs/tapConfig.go +++ b/config/configStructs/tapConfig.go @@ -18,6 +18,7 @@ const ( NamespacesLabel = "namespaces" SelfNamespaceLabel = "selfnamespace" StorageLimitLabel = "storagelimit" + StorageClassLabel = "storageclass" DryRunLabel = "dryrun" PcapLabel = "pcap" ServiceMeshLabel = "servicemesh" @@ -82,6 +83,7 @@ type TapConfig struct { Namespaces []string `yaml:"namespaces"` SelfNamespace string `yaml:"selfnamespace" default:"kubeshark"` StorageLimit string `yaml:"storagelimit" default:"200Mi"` + StorageClass string `yaml:"storageclass" default:"standard"` DryRun bool `yaml:"dryrun" default:"false"` Pcap string `yaml:"pcap" default:""` Resources ResourcesConfig `yaml:"resources"` diff --git a/helm-chart/templates/08-persistent-volume-claim.yaml b/helm-chart/templates/08-persistent-volume-claim.yaml index 20db93116..be0264288 100644 --- a/helm-chart/templates/08-persistent-volume-claim.yaml +++ b/helm-chart/templates/08-persistent-volume-claim.yaml @@ -16,5 +16,5 @@ spec: resources: requests: storage: '{{ .Values.tap.storagelimit }}' - storageClassName: standard + storageClassName: '{{ .Values.tap.storageclass }}' status: {} diff --git a/helm-chart/values.yaml b/helm-chart/values.yaml index 6b3f8b731..1c338828a 100644 --- a/helm-chart/values.yaml +++ b/helm-chart/values.yaml @@ -19,6 +19,7 @@ tap: namespaces: [] selfnamespace: kubeshark storagelimit: 200Mi + storageclass: standard dryrun: false pcap: "" resources: diff --git a/kubernetes/provider.go b/kubernetes/provider.go index b9b49a5aa..6d72890ac 100644 --- a/kubernetes/provider.go +++ b/kubernetes/provider.go @@ -715,7 +715,7 @@ func (provider *Provider) BuildPersistentVolumeClaim() (*core.PersistentVolumeCl return nil, fmt.Errorf("invalid capacity for the workers: %s", config.Config.Tap.StorageLimit) } - storageClassName := "standard" + storageClassName := config.Config.Tap.StorageClass return &core.PersistentVolumeClaim{ TypeMeta: metav1.TypeMeta{