mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-04-28 11:55:51 +00:00
69 lines
1.3 KiB
Go
69 lines
1.3 KiB
Go
package kubernetes
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/kubeshark/kubeshark/config/configStructs"
|
|
"github.com/kubeshark/kubeshark/docker"
|
|
"github.com/rs/zerolog/log"
|
|
core "k8s.io/api/core/v1"
|
|
)
|
|
|
|
func CreateWorkers(
|
|
kubernetesProvider *Provider,
|
|
selfServiceAccountExists bool,
|
|
ctx context.Context,
|
|
namespace string,
|
|
resources configStructs.ResourceRequirements,
|
|
imagePullPolicy core.PullPolicy,
|
|
imagePullSecrets []core.LocalObjectReference,
|
|
serviceMesh bool,
|
|
tls bool,
|
|
debug bool,
|
|
) error {
|
|
persistentVolumeClaim, err := kubernetesProvider.BuildPersistentVolumeClaim()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if _, err = kubernetesProvider.CreatePersistentVolumeClaim(
|
|
ctx,
|
|
namespace,
|
|
persistentVolumeClaim,
|
|
); err != nil {
|
|
return err
|
|
}
|
|
|
|
image := docker.GetWorkerImage()
|
|
|
|
var serviceAccountName string
|
|
if selfServiceAccountExists {
|
|
serviceAccountName = ServiceAccountName
|
|
} else {
|
|
serviceAccountName = ""
|
|
}
|
|
|
|
log.Info().Msg("Creating the worker DaemonSet...")
|
|
|
|
if err := kubernetesProvider.ApplyWorkerDaemonSet(
|
|
ctx,
|
|
namespace,
|
|
WorkerDaemonSetName,
|
|
image,
|
|
WorkerPodName,
|
|
serviceAccountName,
|
|
resources,
|
|
imagePullPolicy,
|
|
imagePullSecrets,
|
|
serviceMesh,
|
|
tls,
|
|
debug,
|
|
); err != nil {
|
|
return err
|
|
}
|
|
|
|
log.Info().Msg("Successfully created the worker DaemonSet.")
|
|
|
|
return nil
|
|
}
|