From c998b67b8e9ec0ef2dfe9d20c5e06339fd93c82a Mon Sep 17 00:00:00 2001 From: Preetha Appan Date: Tue, 29 Jan 2019 12:47:42 -0600 Subject: [PATCH] Make sure that all servers are 0.9 before applying scheduler config entry --- nomad/leader.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nomad/leader.go b/nomad/leader.go index 55bd2857e..b8de496e8 100644 --- a/nomad/leader.go +++ b/nomad/leader.go @@ -42,6 +42,8 @@ const ( var minAutopilotVersion = version.Must(version.NewVersion("0.8.0")) +var minSchedulerconfigVersion = version.Must(version.NewVersion("0.9.0")) + // Default configuration for scheduler with preemption enabled for system jobs var defaultSchedulerConfig = &structs.SchedulerConfiguration{ PreemptionConfig: structs.PreemptionConfig{ @@ -1267,6 +1269,10 @@ func (s *Server) getOrCreateSchedulerConfig() *structs.SchedulerConfiguration { if config != nil { return config } + if !ServersMeetMinimumVersion(s.Members(), minSchedulerconfigVersion) { + s.logger.Named("core").Warn("can't initialize scheduler config until all servers are above minimum version", "min_version", minSchedulerconfigVersion) + return nil + } req := structs.SchedulerSetConfigRequest{Config: *defaultSchedulerConfig} if _, _, err = s.raftApply(structs.SchedulerConfigRequestType, req); err != nil {