From 91d3832c732a67ca56463446127563f79e2fe740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Wed, 25 Jan 2023 23:53:15 +0100 Subject: [PATCH 1/6] Drone CI (cherry picked from commit 34c3effdde18ad392cad5c6780c9670b214d6128) --- .drone.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 000000000..5ee002a35 --- /dev/null +++ b/.drone.yml @@ -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/backuppc + tags: + - latest + - ${DRONE_TAG:-latest} \ No newline at end of file From b34837b2c658df2f3296ba51579ad5550c58cca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Wed, 25 Jan 2023 23:55:20 +0100 Subject: [PATCH 2/6] FIX Drone CI repo (cherry picked from commit 48f3e5cf1c345f631a968ee355970597ea11518e) --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 5ee002a35..6b3db3050 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ steps: from_secret: repo_user password: from_secret: repo_pass - repo: git.ivasoft.cz/sw/backuppc + repo: git.ivasoft.cz/sw/traefik tags: - latest - ${DRONE_TAG:-latest} \ No newline at end of file From dfb69146f530e33f81fdcdac979045dc45cd1843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Thu, 26 Jan 2023 09:40:23 +0100 Subject: [PATCH 3/6] Use DDNS for swarm load balancing (cherry picked from commit d1899ff25030c348d96fbe5a3a721be7e99ad3fc) # Conflicts: # pkg/provider/docker/docker.go --- pkg/provider/docker/docker.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pkg/provider/docker/docker.go b/pkg/provider/docker/docker.go index 0516620ce..938c6466f 100644 --- a/pkg/provider/docker/docker.go +++ b/pkg/provider/docker/docker.go @@ -507,7 +507,20 @@ 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 _, virtualIP := range service.Endpoint.VirtualIPs { + networkService := networkMap[virtualIP.NetworkID] + if networkService != nil { + network := &networkData{ + Name: networkService.Name, + ID: virtualIP.NetworkID, + Addr: "tasks." + service.Spec.Name, + } + dData.NetworkSettings.Networks[network.Name] = network + } else { + logger.Debug().Msgf("Network not found, id: %s", virtualIP.NetworkID) + } + } } } else if service.Spec.EndpointSpec.Mode == swarmtypes.ResolutionModeVIP { dData.NetworkSettings.Networks = make(map[string]*networkData) From 56d58752edee310190ef66e273b3a87e213edfdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Thu, 2 Feb 2023 21:26:49 +0100 Subject: [PATCH 4/6] CI build trigger. (cherry picked from commit a2089c3a5d6ddc4d5ad16a9a6e632e48b1039303) --- pkg/provider/docker/docker.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/provider/docker/docker.go b/pkg/provider/docker/docker.go index 938c6466f..0d445ec8a 100644 --- a/pkg/provider/docker/docker.go +++ b/pkg/provider/docker/docker.go @@ -521,6 +521,8 @@ func (p *Provider) parseService(ctx context.Context, service swarmtypes.Service, logger.Debug().Msgf("Network not found, id: %s", virtualIP.NetworkID) } } + } 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) From 8844a68a74debee6c8ab055dd54875404dbbdbc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Fri, 3 Feb 2023 00:11:24 +0100 Subject: [PATCH 5/6] In DNSRR there is no Endpoint.VirtualIPs - use Spec.TaskTemplate.Networks (cherry picked from commit 1c0b30963bdc273fb42dcaff578287cd8b746c16) --- pkg/provider/docker/docker.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/provider/docker/docker.go b/pkg/provider/docker/docker.go index 0d445ec8a..994e38929 100644 --- a/pkg/provider/docker/docker.go +++ b/pkg/provider/docker/docker.go @@ -508,17 +508,17 @@ func (p *Provider) parseService(ctx context.Context, service swarmtypes.Service, if service.Spec.EndpointSpec.Mode == swarmtypes.ResolutionModeDNSRR { if dData.ExtraConf.Docker.LBSwarm { dData.NetworkSettings.Networks = make(map[string]*networkData) - for _, virtualIP := range service.Endpoint.VirtualIPs { - networkService := networkMap[virtualIP.NetworkID] + for _, net := range service.Spec.TaskTemplate.Networks { + networkService := networkMap[net.Target] if networkService != nil { network := &networkData{ Name: networkService.Name, - ID: virtualIP.NetworkID, + ID: net.Target, Addr: "tasks." + service.Spec.Name, } dData.NetworkSettings.Networks[network.Name] = network } else { - logger.Debug().Msgf("Network not found, id: %s", virtualIP.NetworkID) + logger.Debug().Msgf("Network not found, id: %s", net.Target) } } } else { From 00de525eae59d74cb7c23b37c5db50c75f928e3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Fri, 3 Feb 2023 18:13:24 +0100 Subject: [PATCH 6/6] FIX Logging call. --- pkg/provider/docker/docker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/provider/docker/docker.go b/pkg/provider/docker/docker.go index 994e38929..8dc277b4c 100644 --- a/pkg/provider/docker/docker.go +++ b/pkg/provider/docker/docker.go @@ -518,7 +518,7 @@ func (p *Provider) parseService(ctx context.Context, service swarmtypes.Service, } dData.NetworkSettings.Networks[network.Name] = network } else { - logger.Debug().Msgf("Network not found, id: %s", net.Target) + logger.Debugf("Network not found, id: %s", net.Target) } } } else {