diff --git a/internal/k8s/vald/benchmark/job/job_template.go b/internal/k8s/vald/benchmark/job/job_template.go index 486af7cd9e..dbde9ff4a5 100644 --- a/internal/k8s/vald/benchmark/job/job_template.go +++ b/internal/k8s/vald/benchmark/job/job_template.go @@ -38,7 +38,9 @@ const ( ) const ( - svcAccount = "vald-benchmark-operator" + volumeName = "vald-benchmark-job-config" + configMapName = "vald-benchmark-operator-config" + svcAccount = "vald-benchmark-operator" ) type BenchmarkJobTpl interface { @@ -138,6 +140,53 @@ func (b *benchmarkJobTpl) CreateJobTpl(opts ...BenchmarkJobOption) (k8s.Job, err }, }, }, + { + Name: "MY_NODE_NAME", + ValueFrom: &corev1.EnvVarSource{ + FieldRef: &corev1.ObjectFieldSelector{ + FieldPath: "spec.nodeName", + }, + }, + }, + { + Name: "MY_POD_NAMESPACE", + ValueFrom: &corev1.EnvVarSource{ + FieldRef: &corev1.ObjectFieldSelector{ + FieldPath: "metadata.namespace", + }, + }, + }, + { + Name: "MY_POD_NAME", + ValueFrom: &corev1.EnvVarSource{ + FieldRef: &corev1.ObjectFieldSelector{ + FieldPath: "metadata.name", + }, + }, + }, + }, + VolumeMounts: []corev1.VolumeMount{ + { + Name: volumeName, + MountPath: "/etc/server", + }, + }, + }, + } + // mount benchmark operator config map. + // It is used for bind only observability config for each benchmark job + mode := int32(420) + b.jobTpl.Spec.Template.Spec.Volumes = []corev1.Volume{ + { + Name: volumeName, + VolumeSource: corev1.VolumeSource{ + ConfigMap: &corev1.ConfigMapVolumeSource{ + LocalObjectReference: corev1.LocalObjectReference{ + // FIXME: get benchmark operator configmap name + Name: configMapName, + }, + DefaultMode: &mode, + }, }, }, } diff --git a/pkg/tools/benchmark/job/config/config.go b/pkg/tools/benchmark/job/config/config.go index adec58d118..a81c68d1c9 100644 --- a/pkg/tools/benchmark/job/config/config.go +++ b/pkg/tools/benchmark/job/config/config.go @@ -54,6 +54,7 @@ var ( NAME = os.Getenv("CRD_NAME") JOBNAME_ANNOTATION = "before-job-name" JOBNAMESPACE_ANNOTATION = "before-job-namespace" + SERVICE_NAME = "vald-benchmark-job" ) // NewConfig represents the set config from the given setting file path. @@ -74,6 +75,7 @@ func NewConfig(ctx context.Context, path string) (cfg *Config, err error) { if cfg.Observability != nil { cfg.Observability = cfg.Observability.Bind() + cfg.Observability.OTLP.Attribute.ServiceName = SERVICE_NAME } else { cfg.Observability = new(config.Observability) } diff --git a/pkg/tools/benchmark/job/usecase/benchmarkd.go b/pkg/tools/benchmark/job/usecase/benchmarkd.go index 1036125b2e..e20714f627 100644 --- a/pkg/tools/benchmark/job/usecase/benchmarkd.go +++ b/pkg/tools/benchmark/job/usecase/benchmarkd.go @@ -197,6 +197,7 @@ func (r *run) Start(ctx context.Context) (<-chan error, error) { if r.observability != nil { oech = r.observability.Start(ctx) } + dech, err = r.job.Start(ctx) if err != nil { ech <- err