Skip to content

Commit

Permalink
template: restore driver handle on update (#15915)
Browse files Browse the repository at this point in the history
When the template hook Update() method is called it may recreate the
template manager if the Nomad or Vault token has been updated.

This caused the new template manager did not have a driver handler
because this was only being set on the Poststart hook, which is not
called for inplace updates.
  • Loading branch information
lgfa29 committed Jan 27, 2023
1 parent e53b591 commit b668e74
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .changelog/15915.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
template: Fixed a bug that caused the chage script to fail to run
```
12 changes: 11 additions & 1 deletion client/allocrunner/taskrunner/template_hook.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,12 @@ type templateHook struct {
templateManager *template.TaskTemplateManager
managerLock sync.Mutex

// driverHandle is the task driver executor used by the template manager to
// run scripts when the template change mode is set to script.
//
// Must obtain a managerLock before changing. It may be nil.
driverHandle ti.ScriptExecutor

// consulNamespace is the current Consul namespace
consulNamespace string

Expand Down Expand Up @@ -124,7 +130,8 @@ func (h *templateHook) Poststart(ctx context.Context, req *interfaces.TaskPostst
}

if req.DriverExec != nil {
h.templateManager.SetDriverHandle(req.DriverExec)
h.driverHandle = req.DriverExec
h.templateManager.SetDriverHandle(h.driverHandle)
} else {
for _, tmpl := range h.config.templates {
if tmpl.ChangeMode == structs.TemplateChangeModeScript {
Expand Down Expand Up @@ -158,6 +165,9 @@ func (h *templateHook) newManager() (unblock chan struct{}, err error) {
}

h.templateManager = m
if h.driverHandle != nil {
h.templateManager.SetDriverHandle(h.driverHandle)
}
return unblock, nil
}

Expand Down

0 comments on commit b668e74

Please sign in to comment.