diff --git a/templates/jenkins-ci/0/docker-compose.yml b/templates/jenkins-ci/0/docker-compose.yml new file mode 100644 index 0000000..efbbfdf --- /dev/null +++ b/templates/jenkins-ci/0/docker-compose.yml @@ -0,0 +1,20 @@ +jenkins-primary: + image: "jenkins:1.642.2" + ports: + - "8080:8080" + labels: + io.rancher.sidekicks: jenkins-plugins,jenkins-datavolume + io.rancher.container.hostname_override: container_name + volumes_from: + - jenkins-plugins + - jenkins-datavolume + entrypoint: /usr/share/jenkins/rancher/jenkins.sh +jenkins-plugins: + image: rancher/jenkins-plugins:v0.1.1 +jenkins-datavolume: + image: "busybox" + volumes: + - /var/jenkins_home + labels: + io.rancher.container.start_once: true + entrypoint: /bin/true diff --git a/templates/jenkins-ci/0/rancher-compose.yml b/templates/jenkins-ci/0/rancher-compose.yml new file mode 100644 index 0000000..6b0c22e --- /dev/null +++ b/templates/jenkins-ci/0/rancher-compose.yml @@ -0,0 +1,30 @@ +.catalog: + name: Jenkins + version: 1.642.2-rancher1 + description: | + Jenkins CI management server. + questions: + - variable: "plugins" + type: "multiline" + label: "List of Plugins" + description: | + List of plugins in the format [:] + one entry per line. + default: | + credentials + greenballs + git + junit + git-client + github-api + github-oauth + github + plain-credentials + scm-api + ssh-credentials + ssh-slaves + swarm +jenkins-primary: + metadata: + plugins: | + ${plugins} diff --git a/templates/jenkins-ci/catalogIcon-jenkins-ci.svg b/templates/jenkins-ci/catalogIcon-jenkins-ci.svg new file mode 100644 index 0000000..4a4538d --- /dev/null +++ b/templates/jenkins-ci/catalogIcon-jenkins-ci.svg @@ -0,0 +1,283 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/templates/jenkins-ci/config.yml b/templates/jenkins-ci/config.yml new file mode 100644 index 0000000..d3eb457 --- /dev/null +++ b/templates/jenkins-ci/config.yml @@ -0,0 +1,5 @@ +name: Jenkins +description: | + Jenkins CI server (LTS) +version: 1.642.2-rancher1 +category: Continuous Integration diff --git a/templates/jenkins-swarm/0/docker-compose.yml b/templates/jenkins-swarm/0/docker-compose.yml new file mode 100644 index 0000000..13caeeb --- /dev/null +++ b/templates/jenkins-swarm/0/docker-compose.yml @@ -0,0 +1,15 @@ +swarm-clients: + image: "rancher/jenkins-swarm:v0.1.0" + user: "${user}" + labels: + io.rancher.scheduler.affinity:host_label_soft: ci=worker + io.rancher.container.hostname_override: container_name + external_links: + - "${jenkins_service}:jenkins-primary" + environment: + JENKINS_PASS: "${jenkins_pass}" + JENKINS_USER: "${jenkins_user}" + SWARM_EXECUTORS: "${swarm_executors}" + volumes: + - '/var/run/docker.sock:/var/run/docker.sock' + - '/usr/bin/docker:/usr/bin/docker' diff --git a/templates/jenkins-swarm/0/rancher-compose.yml b/templates/jenkins-swarm/0/rancher-compose.yml new file mode 100644 index 0000000..f603f57 --- /dev/null +++ b/templates/jenkins-swarm/0/rancher-compose.yml @@ -0,0 +1,39 @@ +.catalog: + name: Jenkins Swarm + version: "2.0-rancher1" + description: | + Containers that run the slave plugin. + questions: + - variable: user + label: "User to run swarm process" + description: | + If using the Host Docker, this needs to be root. + default: jenkins + required: true + type: enum + options: + - jenkins + - root + - variable: jenkins_user + label: "Jenkins username" + type: "string" + required: false + description: | + Username to authenticate to a secured Jenkins host with. + - variable: jenkins_pass + label: "Jenkins password" + type: "string" + required: false + description: | + Password to authenticate to a secured Jenkins host with. + - variable: swarm_executors + required: false + type: "string" + description: | + Number of executors on the swarm. Default is #cpus + - variable: jenkins_service + label: "Jenkins Server" + type: "service" + required: true + description: | + Service that is running Jenkins CI server diff --git a/templates/jenkins-swarm/1/README.md b/templates/jenkins-swarm/1/README.md new file mode 100644 index 0000000..96b33a4 --- /dev/null +++ b/templates/jenkins-swarm/1/README.md @@ -0,0 +1,21 @@ +## Jenkins Swarm Plugin Clients +### Experimental + + +### Info: + +This template deploys Jenkins Swarm Clients through Rancher. These clients will come up and imediately be available for running Jenkins jobs. + +### Requires + +Docker 1.9.1 - This image bundles in Docker 1.9.1 and bind mounts the host Docker socket. This means it will unfortunately fail on clients older then Docker 1.9.1. + +### Usage + +User: If you plan to use Jenkins Swarm plugin AND Docker you need to use `root`. If you are not going to use Docker, you can run as the `jenkins` user. The `jenkins` user does not have access ot the Docker socket. + +Jenkins User: If authentication is turned on, you will need to supply the username the swarm clients should login with. + +Jenkins Password: If authentication is turned on, you will need to supply the password the swarm clients should use. + +swarm executors: Number of build jobs to run on the client. The default is the number of CPUs. \ No newline at end of file diff --git a/templates/jenkins-swarm/1/docker-compose.yml b/templates/jenkins-swarm/1/docker-compose.yml new file mode 100644 index 0000000..397998c --- /dev/null +++ b/templates/jenkins-swarm/1/docker-compose.yml @@ -0,0 +1,16 @@ +swarm-clients: + image: "rancher/jenkins-swarm:v0.2.0" + user: "${user}" + labels: + io.rancher.scheduler.affinity:host_label_soft: ci=worker + io.rancher.container.hostname_override: container_name + external_links: + - "${jenkins_service}:jenkins-primary" + environment: + JENKINS_PASS: "${jenkins_pass}" + JENKINS_USER: "${jenkins_user}" + SWARM_EXECUTORS: "${swarm_executors}" + volumes: + - '/var/run/docker.sock:/var/run/docker.sock' + - '/var/jenkins_home/workspace:/var/jenkins_home/workspace' + - '/tmp:/tmp' diff --git a/templates/jenkins-swarm/1/rancher-compose.yml b/templates/jenkins-swarm/1/rancher-compose.yml new file mode 100644 index 0000000..99a4c70 --- /dev/null +++ b/templates/jenkins-swarm/1/rancher-compose.yml @@ -0,0 +1,39 @@ +.catalog: + name: Jenkins Swarm + version: "2.0-rancher2" + description: | + Containers that run the slave plugin. + questions: + - variable: user + label: "User to run swarm process" + description: | + If using the Host Docker, this needs to be root. + default: jenkins + required: true + type: enum + options: + - jenkins + - root + - variable: jenkins_user + label: "Jenkins username" + type: "string" + required: false + description: | + Username to authenticate to a secured Jenkins host with. + - variable: jenkins_pass + label: "Jenkins password" + type: "string" + required: false + description: | + Password to authenticate to a secured Jenkins host with. + - variable: swarm_executors + required: false + type: "string" + description: | + Number of executors on the swarm. Default is #cpus + - variable: jenkins_service + label: "Jenkins Server" + type: "service" + required: true + description: | + Service that is running Jenkins CI server diff --git a/templates/jenkins-swarm/catalogIcon-jenkins-ci.svg b/templates/jenkins-swarm/catalogIcon-jenkins-ci.svg new file mode 100644 index 0000000..4a4538d --- /dev/null +++ b/templates/jenkins-swarm/catalogIcon-jenkins-ci.svg @@ -0,0 +1,283 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/templates/jenkins-swarm/config.yml b/templates/jenkins-swarm/config.yml new file mode 100644 index 0000000..4bd273f --- /dev/null +++ b/templates/jenkins-swarm/config.yml @@ -0,0 +1,5 @@ +name: Jenkins Swarm Plugin +description: | + Swarm plugin to create dynamic builders +version: "2.0-rancher2" +category: Continuous Integration