Use Nomad jobs as runners instead of allocations
As we can't control which allocations are destroyed when downscaling a job, we decided to use Nomad jobs as our runners. Thus for each runner we prewarm for an environment, a corresponding job is created in Nomad. We create a default job that serves as a template for the runners. Using this, already existing execution environments can easily be restored, once Poseidon is restarted.
This commit is contained in:

committed by
Maximilian Paß

parent
8de489929e
commit
c7d59810e5
14
nomad/job.go
14
nomad/job.go
@@ -5,10 +5,20 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
TaskGroupName = "default-group"
|
||||
TaskName = "default-task"
|
||||
TaskGroupName = "default-group"
|
||||
TaskName = "default-task"
|
||||
DefaultJobIDFormat = "%s-default"
|
||||
)
|
||||
|
||||
func DefaultJobID(id string) string {
|
||||
return fmt.Sprintf(DefaultJobIDFormat, id)
|
||||
}
|
||||
|
||||
func (nc *nomadAPIClient) jobInfo(jobID string) (job *nomadApi.Job, err error) {
|
||||
job, _, err = nc.client.Jobs().Info(jobID, nil)
|
||||
return
|
||||
}
|
||||
|
||||
// LoadJobList loads the list of jobs from the Nomad api.
|
||||
func (nc *nomadAPIClient) LoadJobList() (list []*nomadApi.JobListStub, err error) {
|
||||
list, _, err = nc.client.Jobs().List(nc.queryOptions)
|
||||
|
Reference in New Issue
Block a user