Skip to content

Commit

Permalink
variables: enforce version check in Apply RPC
Browse files Browse the repository at this point in the history
  • Loading branch information
tgross committed Oct 17, 2022
1 parent d94c14d commit 48ea153
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 8 deletions.
3 changes: 3 additions & 0 deletions .changelog/14912.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
variables: Fixed a bug where Nomad version checking was not enforced for writing to variables
```
9 changes: 1 addition & 8 deletions nomad/leader.go
Original file line number Diff line number Diff line change
Expand Up @@ -1991,14 +1991,7 @@ func (s *Server) initializeKeyring(stopCh <-chan struct{}) {
default:
}

members := s.serf.Members()
regionMembers := []serf.Member{}
for _, member := range members {
if member.Tags["region"] == s.Region() {
regionMembers = append(regionMembers, member)
}
}
if ServersMeetMinimumVersion(regionMembers, minVersionKeyring, true) {
if RegionServersMeetMinimumVersion(s.serf.Members(), s.Region(), minVersionKeyring, true) {
break
}
}
Expand Down
5 changes: 5 additions & 0 deletions nomad/variables_endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@ func (sv *Variables) Apply(args *structs.VariablesApplyRequest, reply *structs.V
args.Var.Namespace = targetNS
}

if RegionServersMeetMinimumVersion(
sv.srv.serf.Members(), sv.srv.Region(), minVersionKeyring, true) {
return fmt.Errorf("all servers must be running version 1.4.0 or later to apply variables")
}

canRead, err := svePreApply(sv, args, args.Var)
if err != nil {
return err
Expand Down

0 comments on commit 48ea153

Please sign in to comment.