From 31ac32514c257b1973f290916e94bf9a76e138a8 Mon Sep 17 00:00:00 2001 From: Joost van der Griendt Date: Fri, 21 Apr 2017 17:58:12 +0200 Subject: [PATCH 1/2] Upgrading to client 3.3 Apparently 3.4 gives an nullpointer when not specifying -sslFingerprints with a value --- Dockerfile | 4 ++-- run.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 54880e9..8a3602c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,13 +20,13 @@ LABEL org.label-schema.vendor="vfarcic" \ org.label-schema.schema-version="1.0" \ org.label-schema.build-date=$build_date -ENV "SWARM_CLIENT_VERSION=2.2" \ +ENV "SWARM_CLIENT_VERSION=3.3" \ "DOCKER_COMPOSE_VERSION=1.11.2" \ "COMMAND_OPTIONS=" RUN adduser -G root -D jenkins \ && apk --update --no-cache add openjdk8-jre python py-pip git openssh \ - && wget -q https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/${SWARM_CLIENT_VERSION}/swarm-client-${SWARM_CLIENT_VERSION}-jar-with-dependencies.jar -P /home/jenkins/ \ + && wget -q https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/${SWARM_CLIENT_VERSION}/swarm-client-${SWARM_CLIENT_VERSION}.jar -P /home/jenkins/ \ && pip install docker-compose COPY run.sh /run.sh diff --git a/run.sh b/run.sh index b89187a..925d6e7 100644 --- a/run.sh +++ b/run.sh @@ -1 +1 @@ -java -jar /home/jenkins/swarm-client-${SWARM_CLIENT_VERSION}-jar-with-dependencies.jar ${COMMAND_OPTIONS} \ No newline at end of file +java -jar /home/jenkins/swarm-client-${SWARM_CLIENT_VERSION}.jar ${COMMAND_OPTIONS} \ No newline at end of file From d4597a6efbf19e7fb6c7bef7b91caf2356120362 Mon Sep 17 00:00:00 2001 From: Joost van der Griendt Date: Fri, 21 Apr 2017 22:55:49 +0200 Subject: [PATCH 2/2] Manage username and password via docker secrets --- Dockerfile | 4 +++- README.md | 19 +++++++++++++++++++ run.sh | 4 +++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8a3602c..9a03fd7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,9 @@ LABEL org.label-schema.vendor="vfarcic" \ ENV "SWARM_CLIENT_VERSION=3.3" \ "DOCKER_COMPOSE_VERSION=1.11.2" \ - "COMMAND_OPTIONS=" + "COMMAND_OPTIONS=" \ + "USER_NAME_SECRET=" \ + "PASSWORD_SECRET=" RUN adduser -G root -D jenkins \ && apk --update --no-cache add openjdk8-jre python py-pip git openssh \ diff --git a/README.md b/README.md index eb19f3c..626e876 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,22 @@ Usage ----- The environment variable COMMAND_OPTIONS has to be specified with non-empty value, which is a combination of all swarm client options you need. Please refer to this [Swarm Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin) for all available options. + +For the username and password, it makes use of [Docker Secrets](https://docs.docker.com/engine/swarm/secrets/). +You can run this service as follows: + +```bash +docker service create --name $JENKINS_AGENT_SERVICE \ + --secret source=jenkins-master1-usr,target=jks-admin-usr \ + --secret source=jenkins-master1-pass,target=jks-admin-pass \ + -e USER_NAME_SECRET="/run/secrets/jks-admin-usr"\ + -e PASSWORD_SECRET="/run/secrets/jks-admin-pass"\ + -e COMMAND_OPTIONS="-master http://${MASTER_URL}:8080 \ + -labels 'docker' -executors 3 + -fsroot /tmp" \ + --network $NETWORK \ + --mode global \ + --mount "type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock" \ + --mount "type=bind,source=/tmp,target=/tmp/workspace" \ + vfarcic/jenkins-swarm-agent +``` \ No newline at end of file diff --git a/run.sh b/run.sh index 925d6e7..a6dad58 100644 --- a/run.sh +++ b/run.sh @@ -1 +1,3 @@ -java -jar /home/jenkins/swarm-client-${SWARM_CLIENT_VERSION}.jar ${COMMAND_OPTIONS} \ No newline at end of file +read PSS < ${PASSWORD_SECRET} +read USR < ${USER_NAME_SECRET} +java -jar /home/jenkins/swarm-client-${SWARM_CLIENT_VERSION}.jar ${COMMAND_OPTIONS} -username $USR -password $PSS \ No newline at end of file