Worker rebuild
This commit is contained in:
@@ -3962,6 +3962,7 @@ func deploySwarmService(dockercli *dockerclient.Client, name, image string, depl
|
|||||||
} else {
|
} else {
|
||||||
log.Printf("[WARNING] Network %s exists but is not swarm scoped (scope=%s)", networkName, net.Scope)
|
log.Printf("[WARNING] Network %s exists but is not swarm scoped (scope=%s)", networkName, net.Scope)
|
||||||
}
|
}
|
||||||
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3975,22 +3976,38 @@ func deploySwarmService(dockercli *dockerclient.Client, name, image string, depl
|
|||||||
services, serr := dockercli.ServiceList(ctx, types.ServiceListOptions{})
|
services, serr := dockercli.ServiceList(ctx, types.ServiceListOptions{})
|
||||||
if serr == nil {
|
if serr == nil {
|
||||||
for _, svc := range services {
|
for _, svc := range services {
|
||||||
if svc.ID == service.ID {
|
if svc.ID != service.ID {
|
||||||
log.Printf("[DEBUG] Found service %s (%s) — patching network attach", service.ID, svc.ID)
|
continue
|
||||||
|
|
||||||
spec := svc.Spec
|
|
||||||
spec.TaskTemplate.Networks = append(spec.TaskTemplate.Networks, swarm.NetworkAttachmentConfig{
|
|
||||||
Target: networkID,
|
|
||||||
})
|
|
||||||
|
|
||||||
_, uerr := dockercli.ServiceUpdate(ctx, svc.ID, svc.Version, spec, types.ServiceUpdateOptions{})
|
|
||||||
if uerr != nil {
|
|
||||||
log.Printf("[WARNING] Failed to patch service %s with network %s: %v", service.ID, networkID, uerr)
|
|
||||||
} else {
|
|
||||||
log.Printf("[INFO] Successfully attached network %s to service %s", networkID, service.ID)
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if the network is already in there or not
|
||||||
|
foundNetwork := false
|
||||||
|
for _, netAttach := range svc.Spec.TaskTemplate.Networks {
|
||||||
|
if netAttach.Target == networkID {
|
||||||
|
foundNetwork = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if foundNetwork {
|
||||||
|
log.Printf("[DEBUG] Service %s (%s) already attached to network %s, skipping patch", service.ID, svc.ID, networkID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Printf("[DEBUG] Found service %s (%s) — patching network attach", service.ID, svc.ID)
|
||||||
|
|
||||||
|
spec := svc.Spec
|
||||||
|
spec.TaskTemplate.Networks = append(spec.TaskTemplate.Networks, swarm.NetworkAttachmentConfig{
|
||||||
|
Target: networkID,
|
||||||
|
})
|
||||||
|
|
||||||
|
_, uerr := dockercli.ServiceUpdate(ctx, svc.ID, svc.Version, spec, types.ServiceUpdateOptions{})
|
||||||
|
if uerr != nil {
|
||||||
|
log.Printf("[WARNING] Failed to patch service %s with network %s: %v", service.ID, networkID, uerr)
|
||||||
|
} else {
|
||||||
|
log.Printf("[INFO] Successfully attached network %s to service %s", networkID, service.ID)
|
||||||
|
}
|
||||||
|
break
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log.Printf("[WARNING] Failed to list services for patching network attach: %v", serr)
|
log.Printf("[WARNING] Failed to list services for patching network attach: %v", serr)
|
||||||
|
|||||||
Reference in New Issue
Block a user