Add support for ssh jenkins slaves
PROD-29680
Change-Id: I1e2154ba311f2c0f689a472227979e6946fb7e8b
diff --git a/kubernetes/control/services/drivetrain/init.yml b/kubernetes/control/services/drivetrain/init.yml
index 2702393..8039aba 100644
--- a/kubernetes/control/services/drivetrain/init.yml
+++ b/kubernetes/control/services/drivetrain/init.yml
@@ -2,7 +2,6 @@
- system.kubernetes.control.services.drivetrain.gerrit
- system.kubernetes.control.services.drivetrain.glusterfs_cluster
- system.kubernetes.control.services.drivetrain.jenkins_master
-- system.kubernetes.control.services.drivetrain.jenkins_slave_multi
parameters:
_param:
kdt_http_proxy: ""
diff --git a/kubernetes/control/services/drivetrain/jenkins_jnlp_slave_multi.yml b/kubernetes/control/services/drivetrain/jenkins_jnlp_slave_multi.yml
new file mode 100644
index 0000000..e46228c
--- /dev/null
+++ b/kubernetes/control/services/drivetrain/jenkins_jnlp_slave_multi.yml
@@ -0,0 +1,110 @@
+classes:
+- system.kubernetes.control.services.drivetrain.jenkins_jnlp_slave_single
+parameters:
+ kubernetes:
+ control:
+ service:
+ jenkins_slave02:
+ create: true
+ service: slave02
+ namespace: drivetrain
+ apiVersion: extensions/v1beta1
+ kind: Deployment
+ replicas: 1
+ container:
+ jenkins-slave:
+ image: ${_param:docker_image_jenkins_jnlp_slave}
+ image_pull_policy: IfNotPresent
+ variables:
+ - name: JENKINS_URL
+ value: ${_param:jenkins_master_url}
+ - name: JENKINS_AGENT_NAME
+ value: slave02
+ - name: JENKINS_UPDATE_SLAVE
+ value: "'true'"
+ - name: JENKINS_LOGIN
+ value: ${_param:jenkins_client_user}
+ - name: JENKINS_PASSWORD
+ value: ${_param:jenkins_client_password}
+ - name: JAVA_OPTS
+ value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
+ - name: https_proxy
+ value: ${_param:kdt_https_proxy}
+ - name: http_proxy
+ value: ${_param:kdt_http_proxy}
+ - name: no_proxy
+ value: ${_param:kdt_no_proxy}
+ volumes:
+ - name: jenkins-slave02
+ mount: /srv/volumes/jenkins_slaves/slave02
+ read_only: false
+ - name: docker-sock-volume02
+ mount: /var/run/docker.sock
+ read_only: false
+ - name: entropy-volume02
+ mount: /dev/random
+ read_only: true
+ volume:
+ jenkins-slave02:
+ type: glusterfs
+ endpoints: glusterfs
+ path: jenkins_slave02
+ read_only: false
+ docker-sock-volume02:
+ type: hostPath
+ path: /var/run/docker.sock
+ entropy-volume02:
+ type: hostPath
+ path: /dev/urandom
+ jenkins_slave03:
+ create: true
+ service: slave03
+ namespace: drivetrain
+ apiVersion: extensions/v1beta1
+ kind: Deployment
+ replicas: 1
+ container:
+ jenkins-slave:
+ image: ${_param:docker_image_jenkins_jnlp_slave}
+ image_pull_policy: IfNotPresent
+ variables:
+ - name: JENKINS_URL
+ value: ${_param:jenkins_master_url}
+ - name: JENKINS_AGENT_NAME
+ value: slave03
+ - name: JENKINS_UPDATE_SLAVE
+ value: "'true'"
+ - name: JENKINS_LOGIN
+ value: ${_param:jenkins_client_user}
+ - name: JENKINS_PASSWORD
+ value: ${_param:jenkins_client_password}
+ - name: JAVA_OPTS
+ value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
+ - name: https_proxy
+ value: ${_param:kdt_https_proxy}
+ - name: http_proxy
+ value: ${_param:kdt_http_proxy}
+ - name: no_proxy
+ value: ${_param:kdt_no_proxy}
+ volumes:
+ - name: jenkins-slave03
+ mount: /srv/volumes/jenkins_slaves/slave03
+ read_only: false
+ - name: docker-sock-volume03
+ mount: /var/run/docker.sock
+ read_only: false
+ - name: entropy-volume03
+ mount: /dev/random
+ read_only: true
+ volume:
+ jenkins-slave03:
+ type: glusterfs
+ endpoints: glusterfs
+ path: jenkins_slave03
+ read_only: false
+ docker-sock-volume03:
+ type: hostPath
+ path: /var/run/docker.sock
+ entropy-volume03:
+ type: hostPath
+ path: /dev/urandom
diff --git a/kubernetes/control/services/drivetrain/jenkins_jnlp_slave_single.yml b/kubernetes/control/services/drivetrain/jenkins_jnlp_slave_single.yml
new file mode 100644
index 0000000..7f343f5
--- /dev/null
+++ b/kubernetes/control/services/drivetrain/jenkins_jnlp_slave_single.yml
@@ -0,0 +1,62 @@
+parameters:
+ _param:
+ jenkins_slave_extra_opts: ""
+ jenkins_master_url: http://jenkins:8080/jenkins
+ kubernetes:
+ pool:
+ images:
+ - ${_param:docker_image_jenkins_jnlp_slave}
+ control:
+ service:
+ jenkins_slave01:
+ create: true
+ service: slave01
+ namespace: drivetrain
+ apiVersion: extensions/v1beta1
+ kind: Deployment
+ replicas: 1
+ container:
+ jenkins-slave:
+ image: ${_param:docker_image_jenkins_jnlp_slave}
+ image_pull_policy: IfNotPresent
+ variables:
+ - name: JENKINS_URL
+ value: ${_param:jenkins_master_url}
+ - name: JENKINS_AGENT_NAME
+ value: slave01
+ - name: JENKINS_UPDATE_SLAVE
+ value: "'true'"
+ - name: JENKINS_LOGIN
+ value: ${_param:jenkins_client_user}
+ - name: JENKINS_PASSWORD
+ value: ${_param:jenkins_client_password}
+ - name: JAVA_OPTS
+ value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
+ - name: https_proxy
+ value: ${_param:kdt_https_proxy}
+ - name: http_proxy
+ value: ${_param:kdt_http_proxy}
+ - name: no_proxy
+ value: ${_param:kdt_no_proxy}
+ volumes:
+ - name: jenkins-slave01
+ mount: /srv/volumes/jenkins_slaves/slave01
+ read_only: false
+ - name: docker-sock-volume
+ mount: /var/run/docker.sock
+ read_only: false
+ - name: entropy-volume
+ mount: /dev/random
+ read_only: true
+ volume:
+ jenkins-slave01:
+ type: glusterfs
+ endpoints: glusterfs
+ path: jenkins_slave01
+ read_only: false
+ docker-sock-volume:
+ type: hostPath
+ path: /var/run/docker.sock
+ entropy-volume:
+ type: hostPath
+ path: /dev/urandom
diff --git a/kubernetes/control/services/drivetrain/jenkins_slave_multi.yml b/kubernetes/control/services/drivetrain/jenkins_slave_multi.yml
index f1617b4..9165ef6 100644
--- a/kubernetes/control/services/drivetrain/jenkins_slave_multi.yml
+++ b/kubernetes/control/services/drivetrain/jenkins_slave_multi.yml
@@ -1,110 +1,3 @@
+# Remove this file after CC update
classes:
-- system.kubernetes.control.services.drivetrain.jenkins_slave_single
-parameters:
- kubernetes:
- control:
- service:
- jenkins_slave02:
- create: true
- service: slave02
- namespace: drivetrain
- apiVersion: extensions/v1beta1
- kind: Deployment
- replicas: 1
- container:
- jenkins-slave:
- image: ${_param:docker_image_jenkins_slave}
- image_pull_policy: IfNotPresent
- variables:
- - name: JENKINS_URL
- value: ${_param:jenkins_master_url}
- - name: JENKINS_AGENT_NAME
- value: slave02
- - name: JENKINS_UPDATE_SLAVE
- value: "'true'"
- - name: JENKINS_LOGIN
- value: ${_param:jenkins_client_user}
- - name: JENKINS_PASSWORD
- value: ${_param:jenkins_client_password}
- - name: JAVA_OPTS
- value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
- - name: https_proxy
- value: ${_param:kdt_https_proxy}
- - name: http_proxy
- value: ${_param:kdt_http_proxy}
- - name: no_proxy
- value: ${_param:kdt_no_proxy}
- volumes:
- - name: jenkins-slave02
- mount: /srv/volumes/jenkins_slaves/slave02
- read_only: false
- - name: docker-sock-volume02
- mount: /var/run/docker.sock
- read_only: false
- - name: entropy-volume02
- mount: /dev/random
- read_only: true
- volume:
- jenkins-slave02:
- type: glusterfs
- endpoints: glusterfs
- path: jenkins_slave02
- read_only: false
- docker-sock-volume02:
- type: hostPath
- path: /var/run/docker.sock
- entropy-volume02:
- type: hostPath
- path: /dev/urandom
- jenkins_slave03:
- create: true
- service: slave03
- namespace: drivetrain
- apiVersion: extensions/v1beta1
- kind: Deployment
- replicas: 1
- container:
- jenkins-slave:
- image: ${_param:docker_image_jenkins_slave}
- image_pull_policy: IfNotPresent
- variables:
- - name: JENKINS_URL
- value: ${_param:jenkins_master_url}
- - name: JENKINS_AGENT_NAME
- value: slave03
- - name: JENKINS_UPDATE_SLAVE
- value: "'true'"
- - name: JENKINS_LOGIN
- value: ${_param:jenkins_client_user}
- - name: JENKINS_PASSWORD
- value: ${_param:jenkins_client_password}
- - name: JAVA_OPTS
- value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
- - name: https_proxy
- value: ${_param:kdt_https_proxy}
- - name: http_proxy
- value: ${_param:kdt_http_proxy}
- - name: no_proxy
- value: ${_param:kdt_no_proxy}
- volumes:
- - name: jenkins-slave03
- mount: /srv/volumes/jenkins_slaves/slave03
- read_only: false
- - name: docker-sock-volume03
- mount: /var/run/docker.sock
- read_only: false
- - name: entropy-volume03
- mount: /dev/random
- read_only: true
- volume:
- jenkins-slave03:
- type: glusterfs
- endpoints: glusterfs
- path: jenkins_slave03
- read_only: false
- docker-sock-volume03:
- type: hostPath
- path: /var/run/docker.sock
- entropy-volume03:
- type: hostPath
- path: /dev/urandom
+- system.kubernetes.control.services.drivetrain.jenkins_jnlp_slave_multi
\ No newline at end of file
diff --git a/kubernetes/control/services/drivetrain/jenkins_slave_single.yml b/kubernetes/control/services/drivetrain/jenkins_slave_single.yml
index ee327dd..b4fdfe9 100644
--- a/kubernetes/control/services/drivetrain/jenkins_slave_single.yml
+++ b/kubernetes/control/services/drivetrain/jenkins_slave_single.yml
@@ -1,59 +1,3 @@
-parameters:
- _param:
- jenkins_slave_extra_opts: ""
- jenkins_master_url: http://jenkins:8080/jenkins
- kubernetes:
- control:
- service:
- jenkins_slave01:
- create: true
- service: slave01
- namespace: drivetrain
- apiVersion: extensions/v1beta1
- kind: Deployment
- replicas: 1
- container:
- jenkins-slave:
- image: ${_param:docker_image_jenkins_slave}
- image_pull_policy: IfNotPresent
- variables:
- - name: JENKINS_URL
- value: ${_param:jenkins_master_url}
- - name: JENKINS_AGENT_NAME
- value: slave01
- - name: JENKINS_UPDATE_SLAVE
- value: "'true'"
- - name: JENKINS_LOGIN
- value: ${_param:jenkins_client_user}
- - name: JENKINS_PASSWORD
- value: ${_param:jenkins_client_password}
- - name: JAVA_OPTS
- value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
- - name: https_proxy
- value: ${_param:kdt_https_proxy}
- - name: http_proxy
- value: ${_param:kdt_http_proxy}
- - name: no_proxy
- value: ${_param:kdt_no_proxy}
- volumes:
- - name: jenkins-slave01
- mount: /srv/volumes/jenkins_slaves/slave01
- read_only: false
- - name: docker-sock-volume
- mount: /var/run/docker.sock
- read_only: false
- - name: entropy-volume
- mount: /dev/random
- read_only: true
- volume:
- jenkins-slave01:
- type: glusterfs
- endpoints: glusterfs
- path: jenkins_slave01
- read_only: false
- docker-sock-volume:
- type: hostPath
- path: /var/run/docker.sock
- entropy-volume:
- type: hostPath
- path: /dev/urandom
+# Remove this file after CC update
+classes:
+- system.kubernetes.control.services.drivetrain.jenkins_jnlp_slave_single
\ No newline at end of file
diff --git a/kubernetes/control/services/drivetrain/jenkins_ssh_slave_multi.yml b/kubernetes/control/services/drivetrain/jenkins_ssh_slave_multi.yml
new file mode 100644
index 0000000..af7a579
--- /dev/null
+++ b/kubernetes/control/services/drivetrain/jenkins_ssh_slave_multi.yml
@@ -0,0 +1,125 @@
+classes:
+- system.kubernetes.control.services.drivetrain.jenkins_ssh_slave_single
+parameters:
+ kubernetes:
+ control:
+ service:
+ jenkins_slave02:
+ create: true
+ service: slave02
+ namespace: drivetrain
+ apiVersion: extensions/v1beta1
+ kind: Deployment
+ replicas: 1
+ container:
+ jenkins-slave:
+ image: ${_param:docker_image_jenkins_ssh_slave}
+ image_pull_policy: IfNotPresent
+ variables:
+ - name: JENKINS_URL
+ value: ${_param:jenkins_master_url}
+ - name: JENKINS_AGENT_NAME
+ value: slave02
+ - name: JENKINS_UPDATE_SLAVE
+ value: "'true'"
+ - name: JENKINS_LOGIN
+ value: ${_param:jenkins_client_user}
+ - name: JENKINS_PASSWORD
+ value: ${_param:jenkins_client_password}
+ - name: JAVA_OPTS
+ value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
+ - name: https_proxy
+ value: ${_param:kdt_https_proxy}
+ - name: http_proxy
+ value: ${_param:kdt_http_proxy}
+ - name: no_proxy
+ value: ${_param:kdt_no_proxy}
+ volumes:
+ - name: jenkins-slave02
+ mount: /srv/volumes/jenkins_slaves/slave02
+ read_only: false
+ - name: docker-sock-volume02
+ mount: /var/run/docker.sock
+ read_only: false
+ - name: entropy-volume02
+ mount: /dev/random
+ read_only: true
+ volume:
+ jenkins-slave02:
+ type: glusterfs
+ endpoints: glusterfs
+ path: jenkins_slave02
+ read_only: false
+ docker-sock-volume02:
+ type: hostPath
+ path: /var/run/docker.sock
+ entropy-volume02:
+ type: hostPath
+ path: /dev/urandom
+ jenkins_slave03:
+ create: true
+ service: slave03
+ namespace: drivetrain
+ apiVersion: extensions/v1beta1
+ kind: Deployment
+ replicas: 1
+ container:
+ jenkins-slave:
+ image: ${_param:docker_image_jenkins_jnlp_slave}
+ image_pull_policy: IfNotPresent
+ variables:
+ - name: JENKINS_URL
+ value: ${_param:jenkins_master_url}
+ - name: JENKINS_AGENT_NAME
+ value: slave03
+ - name: JENKINS_UPDATE_SLAVE
+ value: "'true'"
+ - name: JENKINS_LOGIN
+ value: ${_param:jenkins_client_user}
+ - name: JENKINS_PASSWORD
+ value: ${_param:jenkins_client_password}
+ - name: JAVA_OPTS
+ value: "-Dhttp.proxyHost=${_param:kdt_http_proxy} -Dhttp.nonProxyHosts=|jenkins ${_param:jenkins_slave_extra_opts}"
+ - name: https_proxy
+ value: ${_param:kdt_https_proxy}
+ - name: http_proxy
+ value: ${_param:kdt_http_proxy}
+ - name: no_proxy
+ value: ${_param:kdt_no_proxy}
+ volumes:
+ - name: jenkins-slave03
+ mount: /srv/volumes/jenkins_slaves/slave03
+ read_only: false
+ - name: docker-sock-volume03
+ mount: /var/run/docker.sock
+ read_only: false
+ - name: entropy-volume03
+ mount: /dev/random
+ read_only: true
+ volume:
+ jenkins-slave03:
+ type: glusterfs
+ endpoints: glusterfs
+ path: jenkins_slave03
+ read_only: false
+ docker-sock-volume03:
+ type: hostPath
+ path: /var/run/docker.sock
+ entropy-volume03:
+ type: hostPath
+ path: /dev/urandom
+ jenkins:
+ client:
+ node:
+ slave02:
+ launcher:
+ type: ssh
+ host: jenkins_slave02
+ port: 22
+ credentials: ssh_slave
+ slave03:
+ launcher:
+ type: ssh
+ host: jenkins_slave03
+ port: 22
+ credentials: ssh_slave
diff --git a/kubernetes/control/services/drivetrain/jenkins_ssh_slave_single.yml b/kubernetes/control/services/drivetrain/jenkins_ssh_slave_single.yml
new file mode 100644
index 0000000..f122b8c
--- /dev/null
+++ b/kubernetes/control/services/drivetrain/jenkins_ssh_slave_single.yml
@@ -0,0 +1,63 @@
+parameters:
+ _param:
+ kubernetes:
+ pool:
+ images:
+ - ${_param:docker_image_jenkins_ssh_slave}
+ control:
+ service:
+ jenkins_slave01:
+ create: true
+ service: slave01
+ namespace: drivetrain
+ apiVersion: extensions/v1beta1
+ kind: Deployment
+ replicas: 1
+ container:
+ jenkins-slave:
+ image: ${_param:docker_image_jenkins_ssh_slave}
+ image_pull_policy: IfNotPresent
+ variables:
+ - name: JENKINS_SLAVE_SSH_PUBKEY
+ value: ${_param:jenkins_admin_public_key}
+ - name: https_proxy
+ value: ${_param:kdt_https_proxy}
+ - name: http_proxy
+ value: ${_param:kdt_http_proxy}
+ - name: no_proxy
+ value: ${_param:kdt_no_proxy}
+ volumes:
+ - name: jenkins-slave01
+ mount: /srv/volumes/jenkins_slaves/slave01
+ read_only: false
+ - name: docker-sock-volume
+ mount: /var/run/docker.sock
+ read_only: false
+ - name: entropy-volume
+ mount: /dev/random
+ read_only: true
+ volume:
+ jenkins-slave01:
+ type: glusterfs
+ endpoints: glusterfs
+ path: jenkins_slave01
+ read_only: false
+ docker-sock-volume:
+ type: hostPath
+ path: /var/run/docker.sock
+ entropy-volume:
+ type: hostPath
+ path: /dev/urandom
+ jenkins:
+ client:
+ node:
+ slave01:
+ launcher:
+ type: ssh
+ host: jenkins_slave01
+ port: 22
+ credentials: ssh_slave
+ credential:
+ ssh_slave:
+ username: jenkins
+ key: ${_param:jenkins_admin_private_key}