Compare commits

...

7 Commits
master ... v2.9

Author SHA1 Message Date
2f1d7e806d Merge pull request 'Backport DNSRR routing to v2.9' (#3) from rv/traefik:v2.9 into v2.9
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
Reviewed-on: #3
2023-02-03 17:35:27 +00:00
00de525eae FIX Logging call.
All checks were successful
continuous-integration/drone/pr Build is passing
2023-02-03 18:13:24 +01:00
8844a68a74 In DNSRR there is no Endpoint.VirtualIPs - use Spec.TaskTemplate.Networks
Some checks failed
continuous-integration/drone/pr Build is failing
(cherry picked from commit 1c0b30963b)
2023-02-03 17:53:59 +01:00
56d58752ed CI build trigger.
(cherry picked from commit a2089c3a5d)
2023-02-03 17:53:59 +01:00
dfb69146f5 Use DDNS for swarm load balancing
(cherry picked from commit d1899ff250)

# Conflicts:
#	pkg/provider/docker/docker.go
2023-02-03 17:53:58 +01:00
b34837b2c6 FIX Drone CI repo
(cherry picked from commit 48f3e5cf1c)
2023-02-03 17:50:00 +01:00
91d3832c73 Drone CI
(cherry picked from commit 34c3effdde)
2023-02-03 17:50:00 +01:00
2 changed files with 33 additions and 1 deletions

17
.drone.yml Normal file
View File

@@ -0,0 +1,17 @@
kind: pipeline
name: default
steps:
- name: docker
image: plugins/docker
settings:
dockerfile: exp.Dockerfile
registry: https://git.ivasoft.cz
username:
from_secret: repo_user
password:
from_secret: repo_pass
repo: git.ivasoft.cz/sw/traefik
tags:
- latest
- ${DRONE_TAG:-latest}

View File

@@ -507,7 +507,22 @@ func (p *Provider) parseService(ctx context.Context, service swarmtypes.Service,
if service.Spec.EndpointSpec != nil {
if service.Spec.EndpointSpec.Mode == swarmtypes.ResolutionModeDNSRR {
if dData.ExtraConf.Docker.LBSwarm {
logger.Warnf("Ignored %s endpoint-mode not supported, service name: %s. Fallback to Traefik load balancing", swarmtypes.ResolutionModeDNSRR, service.Spec.Annotations.Name)
dData.NetworkSettings.Networks = make(map[string]*networkData)
for _, net := range service.Spec.TaskTemplate.Networks {
networkService := networkMap[net.Target]
if networkService != nil {
network := &networkData{
Name: networkService.Name,
ID: net.Target,
Addr: "tasks." + service.Spec.Name,
}
dData.NetworkSettings.Networks[network.Name] = network
} else {
logger.Debugf("Network not found, id: %s", net.Target)
}
}
} else {
// Each service task IP will get extracted later on in parseTasks
}
} else if service.Spec.EndpointSpec.Mode == swarmtypes.ResolutionModeVIP {
dData.NetworkSettings.Networks = make(map[string]*networkData)