Add persistentstorage option

This commit is contained in:
M. Mert Yildiran
2023-05-08 00:50:56 +03:00
parent a9b598bc41
commit a33a3467fc
6 changed files with 39 additions and 34 deletions

View File

@@ -855,18 +855,23 @@ func (provider *Provider) BuildWorkerDaemonSet(
MountPath: PersistentVolumeHostPath,
}
// VolumeMount(s)
volumeMounts := []core.VolumeMount{
procfsVolumeMount,
sysfsVolumeMount,
}
if config.Config.Tap.PersistentStorage {
volumeMounts = append(volumeMounts, persistentVolumeMount)
}
// Containers
containers := []core.Container{
{
Name: podName,
Image: podImage,
ImagePullPolicy: imagePullPolicy,
VolumeMounts: []core.VolumeMount{
procfsVolumeMount,
sysfsVolumeMount,
persistentVolumeMount,
},
Command: command,
VolumeMounts: volumeMounts,
Command: command,
Resources: core.ResourceRequirements{
Limits: core.ResourceList{
"cpu": cpuLimit,
@@ -887,6 +892,15 @@ func (provider *Provider) BuildWorkerDaemonSet(
},
}
// Volume(s)
volumes := []core.Volume{
procfsVolume,
sysfsVolume,
}
if config.Config.Tap.PersistentStorage {
volumes = append(volumes, persistentVolume)
}
// Pod
pod := DaemonSetPod{
ObjectMeta: metav1.ObjectMeta{
@@ -897,14 +911,10 @@ func (provider *Provider) BuildWorkerDaemonSet(
}, provider),
},
Spec: core.PodSpec{
ServiceAccountName: ServiceAccountName,
HostNetwork: true,
Containers: containers,
Volumes: []core.Volume{
procfsVolume,
sysfsVolume,
persistentVolume,
},
ServiceAccountName: ServiceAccountName,
HostNetwork: true,
Containers: containers,
Volumes: volumes,
DNSPolicy: core.DNSClusterFirstWithHostNet,
TerminationGracePeriodSeconds: new(int64),
Tolerations: provider.BuildTolerations(),

View File

@@ -3,6 +3,7 @@ package kubernetes
import (
"context"
"github.com/kubeshark/kubeshark/config"
"github.com/kubeshark/kubeshark/config/configStructs"
"github.com/kubeshark/kubeshark/docker"
"github.com/rs/zerolog/log"
@@ -21,17 +22,19 @@ func CreateWorkers(
tls bool,
debug bool,
) error {
persistentVolumeClaim, err := kubernetesProvider.BuildPersistentVolumeClaim()
if err != nil {
return err
}
if config.Config.Tap.PersistentStorage {
persistentVolumeClaim, err := kubernetesProvider.BuildPersistentVolumeClaim()
if err != nil {
return err
}
if _, err = kubernetesProvider.CreatePersistentVolumeClaim(
ctx,
namespace,
persistentVolumeClaim,
); err != nil {
return err
if _, err = kubernetesProvider.CreatePersistentVolumeClaim(
ctx,
namespace,
persistentVolumeClaim,
); err != nil {
return err
}
}
image := docker.GetWorkerImage()