diff --git a/command/agent/agent.go b/command/agent/agent.go index 0871f39434a..cea21eb6c02 100644 --- a/command/agent/agent.go +++ b/command/agent/agent.go @@ -390,6 +390,27 @@ func convertServerConfig(agentConfig *Config) (*nomad.Config, error) { } conf.ACLTokenExpirationGCThreshold = dur } + if gcThreshold := agentConfig.Server.RootKeyGCThreshold; gcThreshold != "" { + dur, err := time.ParseDuration(gcThreshold) + if err != nil { + return nil, err + } + conf.RootKeyGCThreshold = dur + } + if gcInterval := agentConfig.Server.RootKeyGCInterval; gcInterval != "" { + dur, err := time.ParseDuration(gcInterval) + if err != nil { + return nil, err + } + conf.RootKeyGCInterval = dur + } + if rotationThreshold := agentConfig.Server.RootKeyRotationThreshold; rotationThreshold != "" { + dur, err := time.ParseDuration(rotationThreshold) + if err != nil { + return nil, err + } + conf.RootKeyRotationThreshold = dur + } if heartbeatGrace := agentConfig.Server.HeartbeatGrace; heartbeatGrace != 0 { conf.HeartbeatGrace = heartbeatGrace diff --git a/nomad/core_sched.go b/nomad/core_sched.go index 0370aab1f3c..321da820261 100644 --- a/nomad/core_sched.go +++ b/nomad/core_sched.go @@ -96,7 +96,7 @@ func (c *CoreScheduler) forceGC(eval *structs.Evaluation) error { if err := c.expiredACLTokenGC(eval, true); err != nil { return err } - if err := c.rootKeyRotateOrGC(eval); err != nil { + if err := c.rootKeyGC(eval); err != nil { return err } // Node GC must occur after the others to ensure the allocations are @@ -908,6 +908,10 @@ func (c *CoreScheduler) rootKeyRotateOrGC(eval *structs.Evaluation) error { if wasRotated { return nil } + return c.rootKeyGC(eval) +} + +func (c *CoreScheduler) rootKeyGC(eval *structs.Evaluation) error { // we can't GC any key older than the oldest live allocation // because it might have signed that allocation's workload