Skip to content

Commit

Permalink
Add sidecar_task stanza parsing (#6104)
Browse files Browse the repository at this point in the history
* jobspec: breakup parse.go into smaller files

* add sidecar_task parsing to jobspec and api

* jobspec: combine service parsing logic for task and group service stanzas

* api: use slice of ConsulUpstream values instead of pointers
  • Loading branch information
nickethier authored Aug 9, 2019
1 parent b4aab30 commit 07ce33a
Show file tree
Hide file tree
Showing 12 changed files with 1,684 additions and 1,623 deletions.
1 change: 1 addition & 0 deletions api/services.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ func (s *Service) Canonicalize(t *Task, tg *TaskGroup, job *Job) {
type ConsulConnect struct {
Native bool
SidecarService *ConsulSidecarService `mapstructure:"sidecar_service"`
SidecarTask *Task `mapstructure:"sidecar_task"`
}

// ConsulSidecarService represents a Consul Connect SidecarService jobspec
Expand Down
55 changes: 33 additions & 22 deletions command/agent/job_endpoint.go
Original file line number Diff line number Diff line change
Expand Up @@ -1007,39 +1007,50 @@ func ApiServicesToStructs(in []*api.Service) []*structs.Service {
}
}

if s.Connect == nil {
continue
if s.Connect != nil {
out[i].Connect = ApiConsulConnectToStructs(s.Connect)
}

out[i].Connect = &structs.ConsulConnect{
Native: s.Connect.Native,
}
}

if s.Connect.SidecarService == nil {
continue
}
return out
}

out[i].Connect.SidecarService = &structs.ConsulSidecarService{
Port: s.Connect.SidecarService.Port,
}
func ApiConsulConnectToStructs(in *api.ConsulConnect) *structs.ConsulConnect {
if in == nil {
return nil
}

if s.Connect.SidecarService.Proxy == nil {
continue
}
out := &structs.ConsulConnect{
Native: in.Native,
}

if in.SidecarService != nil {

out[i].Connect.SidecarService.Proxy = &structs.ConsulProxy{
Config: s.Connect.SidecarService.Proxy.Config,
out.SidecarService = &structs.ConsulSidecarService{
Port: in.SidecarService.Port,
}

upstreams := make([]*structs.ConsulUpstream, len(s.Connect.SidecarService.Proxy.Upstreams))
for i, p := range s.Connect.SidecarService.Proxy.Upstreams {
upstreams[i] = &structs.ConsulUpstream{
DestinationName: p.DestinationName,
LocalBindPort: p.LocalBindPort,
if in.SidecarService.Proxy != nil {

out.SidecarService.Proxy = &structs.ConsulProxy{
Config: in.SidecarService.Proxy.Config,
}

upstreams := make([]structs.ConsulUpstream, len(in.SidecarService.Proxy.Upstreams))
for i, p := range in.SidecarService.Proxy.Upstreams {
upstreams[i] = structs.ConsulUpstream{
DestinationName: p.DestinationName,
LocalBindPort: p.LocalBindPort,
}
}

out.SidecarService.Proxy.Upstreams = upstreams
}
}

out[i].Connect.SidecarService.Proxy.Upstreams = upstreams
if in.SidecarTask != nil {
ApiTaskToStructsTask(in.SidecarTask, out.SidecarTask)
}

return out
Expand Down
Loading

0 comments on commit 07ce33a

Please sign in to comment.