Use service alias and configure container's --net-alias
Signed-off-by: Madhu Venugopal <madhu@docker.com>
(cherry picked from commit 07e39e9e72
)
This commit is contained in:
parent
588b76c2a1
commit
60a86590aa
|
@ -823,7 +823,7 @@ func (container *Container) BuildCreateEndpointOptions(n libnetwork.Network, epC
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
createOptions = append(createOptions, libnetwork.CreateOptionService(svcCfg.Name, svcCfg.ID, net.ParseIP(vip), portConfigs))
|
createOptions = append(createOptions, libnetwork.CreateOptionService(svcCfg.Name, svcCfg.ID, net.ParseIP(vip), portConfigs, svcCfg.Aliases[n.ID()]))
|
||||||
}
|
}
|
||||||
|
|
||||||
if !containertypes.NetworkMode(n.Name()).IsUserDefined() {
|
if !containertypes.NetworkMode(n.Name()).IsUserDefined() {
|
||||||
|
|
|
@ -918,7 +918,7 @@ func populateNetworkID(ctx context.Context, c swarmapi.ControlClient, s *types.S
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
s.Networks[i] = types.NetworkAttachmentConfig{Target: apiNetwork.ID}
|
s.Networks[i].Target = apiNetwork.ID
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,6 @@ func (c *containerAdapter) create(ctx context.Context, backend executorpkg.Backe
|
||||||
|
|
||||||
if nc != nil {
|
if nc != nil {
|
||||||
for n, ep := range nc.EndpointsConfig {
|
for n, ep := range nc.EndpointsConfig {
|
||||||
logrus.Errorf("CONNECT %s : %v", n, ep.IPAMConfig.IPv4Address)
|
|
||||||
if err := backend.ConnectContainerToNetwork(cr.ID, n, ep); err != nil {
|
if err := backend.ConnectContainerToNetwork(cr.ID, n, ep); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -348,6 +348,7 @@ func (c *containerConfig) serviceConfig() *clustertypes.ServiceConfig {
|
||||||
log.Printf("Creating service config in agent for t = %+v", c.task)
|
log.Printf("Creating service config in agent for t = %+v", c.task)
|
||||||
svcCfg := &clustertypes.ServiceConfig{
|
svcCfg := &clustertypes.ServiceConfig{
|
||||||
Name: c.task.ServiceAnnotations.Name,
|
Name: c.task.ServiceAnnotations.Name,
|
||||||
|
Aliases: make(map[string][]string),
|
||||||
ID: c.task.ServiceID,
|
ID: c.task.ServiceID,
|
||||||
VirtualAddresses: make(map[string]*clustertypes.VirtualAddress),
|
VirtualAddresses: make(map[string]*clustertypes.VirtualAddress),
|
||||||
}
|
}
|
||||||
|
@ -357,6 +358,9 @@ func (c *containerConfig) serviceConfig() *clustertypes.ServiceConfig {
|
||||||
// We support only IPv4 virtual IP for now.
|
// We support only IPv4 virtual IP for now.
|
||||||
IPv4: c.virtualIP(na.Network.ID),
|
IPv4: c.virtualIP(na.Network.ID),
|
||||||
}
|
}
|
||||||
|
if len(na.Aliases) > 0 {
|
||||||
|
svcCfg.Aliases[na.Network.ID] = na.Aliases
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.task.Endpoint != nil {
|
if c.task.Endpoint != nil {
|
||||||
|
|
|
@ -31,6 +31,7 @@ type PortConfig struct {
|
||||||
type ServiceConfig struct {
|
type ServiceConfig struct {
|
||||||
ID string
|
ID string
|
||||||
Name string
|
Name string
|
||||||
|
Aliases map[string][]string
|
||||||
VirtualAddresses map[string]*VirtualAddress
|
VirtualAddresses map[string]*VirtualAddress
|
||||||
ExposedPorts []*PortConfig
|
ExposedPorts []*PortConfig
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue