Skip to content

Commit

Permalink
Add step to pass api server env vars to spark jobs
Browse files Browse the repository at this point in the history
  • Loading branch information
deadlycoconuts committed Jan 6, 2025
1 parent 6b36c4c commit 887ced0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
10 changes: 7 additions & 3 deletions api/batch/resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ package batch

import (
"fmt"
"os"
"strconv"
"time"

Expand Down Expand Up @@ -150,7 +151,7 @@ func (t *BatchJobTemplater) createDriverSpec(job *models.PredictionJob) (v1beta2
return v1beta2.DriverSpec{}, fmt.Errorf("invalid driver memory request: %s", job.Config.ResourceRequest.DriverMemoryRequest)
}

envVars, err := addEnvVars(job)
envVars, err := t.addEnvVars(job)
if err != nil {
return v1beta2.DriverSpec{}, err
}
Expand Down Expand Up @@ -194,7 +195,7 @@ func (t *BatchJobTemplater) createExecutorSpec(job *models.PredictionJob) (v1bet
return v1beta2.ExecutorSpec{}, fmt.Errorf("invalid executor memory request: %s", job.Config.ResourceRequest.ExecutorMemoryRequest)
}

envVars, err := addEnvVars(job)
envVars, err := t.addEnvVars(job)
if err != nil {
return v1beta2.ExecutorSpec{}, err
}
Expand Down Expand Up @@ -263,13 +264,16 @@ func getCoreRequest(cpuRequest resource.Quantity) *int32 {
return &core
}

func addEnvVars(job *models.PredictionJob) ([]corev1.EnvVar, error) {
func (t *BatchJobTemplater) addEnvVars(job *models.PredictionJob) ([]corev1.EnvVar, error) {
envVars := []corev1.EnvVar{
{
Name: envServiceAccountPathKey,
Value: envServiceAccountPath,
},
}
for _, ev := range t.batchConfig.APIServerEnvVars {
envVars = append(envVars, corev1.EnvVar{Name: ev, Value: os.Getenv(ev)})
}
for _, ev := range job.Config.EnvVars.ToKubernetesEnvVars() {
if ev.Name == envServiceAccountPathKey {
return []corev1.EnvVar{}, fmt.Errorf("environment variable '%s' cannot be changed", ev.Name)
Expand Down
2 changes: 2 additions & 0 deletions api/config/batch.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,6 @@ type BatchConfig struct {
Tolerations []v1.Toleration
// Node Selectors for Jobs Specification
NodeSelectors map[string]string
// APIServerEnvVars specifies the environment variables that are propagated from the API server to the Spark job
APIServerEnvVars []string
}

0 comments on commit 887ced0

Please sign in to comment.