docker-plugin icon indicating copy to clipboard operation
docker-plugin copied to clipboard

ipv6 port binding using classic swarm

Open gamma opened this issue 3 years ago • 2 comments

Version report

Jenkins and plugins versions report:

Jenkins: 2.289.3
OS: Linux - 5.4.0-74-generic
---
popper2-api:2.5.4-3
workflow-basic-steps:2.23
maven-plugin:3.12
jsch:0.1.55.2
workflow-job:2.41
extra-columns:1.24
junit:1.51
docker-commons:1.17
badge:1.8
docker-plugin:1.2.2
bootstrap5-api:5.0.2-1
http_request:1.10
code-coverage-api:1.4.0
forensics-api:1.2.1
sidebar-link:1.12.0
credentials:2.5
echarts-api:5.1.2-3
jacoco:3.3.0
jquery:1.12.4-1
workflow-cps:2.93
cloudbees-folder:6.16
matrix-auth:2.6.8
active-directory:2.24
jackson2-api:2.12.4
groovy:2.4
warnings-ng:9.4.0
nant:1.4.3
simple-theme-plugin:0.7
plain-credentials:1.7
data-tables-api:1.10.25-3
xvnc:1.25
windows-slaves:1.8
log-parser:2.1
credentials-binding:1.27
caffeine-api:2.9.1-23.v51c4e2c879c8
workflow-step-api:2.24
bootstrap4-api:4.6.0-3
popper-api:1.16.1-2
token-macro:266.v44a80cf277fd
sshd:3.1.0
discord-notifier:1.4.14
jquery3-api:3.6.0-2
font-awesome-api:5.15.3-4
envinject-api:1.7
subversion:2.14.4
ws-cleanup:0.39
gradle:1.37.1
checks-api:1.7.2
cobertura:1.16
jdk-tool:1.5
workflow-scm-step:2.13
groovy-postbuild:2.5
disk-usage:0.28
ssh-credentials:1.19
matrix-project:1.19
extreme-notification:1.6
snakeyaml-api:1.29.1
ace-editor:1.1
build-timeout:1.20
workflow-support:3.8
workflow-durable-task-step:2.39
authentication-tokens:1.4
conditional-buildstep:1.4.1
structs:1.23
multiple-scms:0.8
apache-httpcomponents-client-4-api:4.5.13-1.0
mask-passwords:3.0
mapdb-api:1.0.9.0
ansicolor:1.0.0
trilead-api:1.0.13
branch-api:2.6.5
dtkit-api:3.0.0
label-linked-jobs:6.0.1
docker-java-api:3.1.5.2
permissive-script-security:0.6
text-finder:1.16
bouncycastle-api:2.21
ssh:2.6.1
xunit:3.0.2
command-launcher:1.6
git:4.8.1
nunit:0.27
Parameterized-Remote-Trigger:3.1.5.1
ant:1.11
javadoc:1.6
copyartifact:1.46.1
resource-disposer:0.16
ssh-slaves:1.32.0
script-security:1.78
plugin-util-api:2.4.0
durable-task:1.38
run-condition:1.5
scm-api:2.6.5
workflow-multibranch:2.26
ldap:2.7
display-url-api:2.3.5
envinject:2.4.0
external-monitor-job:1.7
mailer:1.34
job-dsl:1.77
workflow-api:2.46
antisamy-markup-formatter:2.1
git-client:3.9.0
cvs:2.19
analysis-model-api:10.2.5
parameterized-trigger:2.41
pam-auth:1.6
  • What Operating System are you using (both controller, and any agents involved in the problem)?
Ubuntu 20.4

Reproduction steps

  • Create a classic Swam manager endpoint on an ipv6 enabled docker host
  • Create a classic Swarm agent on a separate ipv6 enabled docker host
  • Launch a build job on the swarm endpoint (using jenkins) and check the port bindings
  • Check the bindings in on the swarm manger node to be made available on ipv4 using different different ports, e.g.:
    • 10.10.1.11:49448->22/tcp, 10.10.1.11:49449->22/tcp

Results

Expected result:

  • The agent should connect to any of the SSH bound ports

Actual result:

  • The agent may never be started, because there are two SSH bindings of the container, but if the first one is the only one checked it may not respond correctly, but the second one does

gamma avatar Sep 13 '21 20:09 gamma

You are using https://github.com/docker-archive/classicswarm which was archived months before you opened this ticket and which is deprecated/legacy software. I would consider merging a pull request that has been tested and poses no risk to common use cases, but Classic Swarm is a legacy use case that you should not be using anymore.

basil avatar May 26 '23 01:05 basil

You are using https://github.com/docker-archive/classicswarm which was archived months before you opened this ticket and which is deprecated/legacy software. I would consider merging a pull request that has been tested and poses no risk to common use cases, but Classic Swarm is a legacy use case that you should not be using anymore.

The problem is that the Docker plugin does not support the new Swarm API, so you have to use classicswarm. From the README...

If you want to use more than just one physical node to run containers, you can use Docker Swarm Standalone or you can define more than one docker "cloud". The docker engine swarm mode API is not supported (at present; enhancement contributions would be welcomed).

cs96and avatar Nov 10 '23 17:11 cs96and