]> review.fuel-infra Code Review - tools/sustaining.git/commitdiff
Allow to control slave executors count via flavor 06/41406/2
authorVladimir Khlyunev <vkhlyunev@mirantis.com>
Mon, 5 Aug 2019 09:30:28 +0000 (13:30 +0400)
committerVladimir Khlyunev <vkhlyunev@mirantis.com>
Mon, 5 Aug 2019 10:51:51 +0000 (14:51 +0400)
Also shorten jenkins skave name
Also updated jenkins swarm agent to latest

Change-Id: I6142db9495894df2e97930a43aa2c5215aa2e6e4

maintenance-ci/common/data/jenkins-slave.yml
maintenance-ci/common/data/mos-dev-slave-eu.yml
maintenance-ci/common/data/mos-dev-slave-us.yml
maintenance-ci/common/data/mos-slave-eu.yml
maintenance-ci/common/data/mos-slave-us.yml
maintenance-ci/common/scripts/build_base_swarm_slave_image.sh
maintenance-ci/common/scripts/build_mos_swarm_slave_image.sh
maintenance-ci/common/scripts/deploy_heat_stack.sh

index c549726a8d72b96ed523fe0a1d0ccec3c6b42f34..8c77e4f65ed494a498db9f134602d9147c438bde 100644 (file)
@@ -121,8 +121,15 @@ resources:
             echo "127.0.0.1 $(hostname)" >> /etc/hosts
             echo "FLOATING" > /etc/jenkins-agent/description
             echo "OPENSTACK_ENVIRONMENT" > /etc/jenkins-agent/location
+
+            echo "$(hostname | sed 's/-node-.*//')" > /etc/jenkins-agent/slave-name
+            if [[ "FLAVOR" == *"mos.fuel.base"* ]] ; then
+              echo "8" > /etc/jenkins-agent/executor-count
+            elif [[ "FLAVOR" == *"mos.fuel.huge"* ]] ; then
+              echo "16" > /etc/jenkins-agent/executor-count
+            fi
+
             systemctl enable jenkins-swarm-agent
-            #service jenkins-swarm-agent start
             apt update
             sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT=\).*$/\1\"console=tty1 console=ttyS0 noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier\"/g' /etc/default/grub.d/50-cloudimg-settings.cfg
             #apt install -y linux-generic-hwe-16.04 linux-tools-generic-hwe-16.04 linux-cloud-tools-generic-hwe-16.04 linux-tools-common
index 1cfd69ff3ec2b8e4be82f1ca22d75fb7077ecc3e..2c13cdb8aff035388c106b3a8cee1beccb139d94 100644 (file)
@@ -140,6 +140,13 @@ resources:
             echo "FLOATING" > /etc/jenkins-agent/description
             echo "OPENSTACK_ENVIRONMENT" > /etc/jenkins-agent/location
 
+            echo "$(hostname | sed 's/-node-.*//')" > /etc/jenkins-agent/slave-name
+            if [[ "FLAVOR" == *"mos.fuel.base"* ]] ; then
+              echo "8" > /etc/jenkins-agent/executor-count
+            elif [[ "FLAVOR" == *"mos.fuel.huge"* ]] ; then
+              echo "16" > /etc/jenkins-agent/executor-count
+            fi
+
             apt update
             sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT=\).*$/\1\"console=tty1 console=ttyS0 noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier\"/g' /etc/default/grub.d/50-cloudimg-settings.cfg
             apt install -y linux-generic-hwe-16.04 linux-tools-generic-hwe-16.04 linux-cloud-tools-generic-hwe-16.04 linux-tools-common
@@ -149,6 +156,7 @@ resources:
             wc_notify --data-binary '{"status": "SUCCESS"}'
             reboot
           params:
+           FLAVOR: {get_param: flavor}
            LABELS: {get_param: jenkins_labels}
            wc_notify: { get_attr: [wait_handle, curl_cli] }
            FLOATING: { get_attr: [ floating_ip, floating_ip_address ] }
index 36fdb7326043259cc99e863fe65193d3a9492622..6b1f6e9f3f329f7272935508b42c23633235aadd 100644 (file)
@@ -122,6 +122,13 @@ resources:
             echo "FLOATING" > /etc/jenkins-agent/description
             echo "OPENSTACK_ENVIRONMENT" > /etc/jenkins-agent/location
 
+            echo "$(hostname | sed 's/-node-.*//')" > /etc/jenkins-agent/slave-name
+            if [[ "FLAVOR" == *"mos.fuel.base"* ]] ; then
+              echo "8" > /etc/jenkins-agent/executor-count
+            elif [[ "FLAVOR" == *"mos.fuel.huge"* ]] ; then
+              echo "16" > /etc/jenkins-agent/executor-count
+            fi
+
             apt update
             sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT=\).*$/\1\"console=tty1 console=ttyS0 noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier\"/g' /etc/default/grub.d/50-cloudimg-settings.cfg
             apt install -y linux-generic-hwe-16.04 linux-tools-generic-hwe-16.04 linux-cloud-tools-generic-hwe-16.04 linux-tools-common
@@ -131,6 +138,7 @@ resources:
             wc_notify --data-binary '{"status": "SUCCESS"}'
             reboot
           params:
+           FLAVOR: {get_param: flavor}
            LABELS: {get_param: jenkins_labels}
            wc_notify: { get_attr: [wait_handle, curl_cli] }
            FLOATING: { get_attr: [ floating_ip, floating_ip_address ] }
index 6b1bd6ceb78e91d00c54c2bd443e4acd9284aeba..e2a3e4b8cb9fd0900a73c3a9d0d2445f8312d17f 100644 (file)
@@ -140,6 +140,13 @@ resources:
             echo "FLOATING" > /etc/jenkins-agent/description
             echo "OPENSTACK_ENVIRONMENT" > /etc/jenkins-agent/location
 
+            echo "$(hostname | sed 's/-node-.*//')" > /etc/jenkins-agent/slave-name
+            if [[ "FLAVOR" == *"mos.fuel.base"* ]] ; then
+              echo "8" > /etc/jenkins-agent/executor-count
+            elif [[ "FLAVOR" == *"mos.fuel.huge"* ]] ; then
+              echo "16" > /etc/jenkins-agent/executor-count
+            fi
+
             apt update
             sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT=\).*$/\1\"console=tty1 console=ttyS0 noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier\"/g' /etc/default/grub.d/50-cloudimg-settings.cfg
             apt install -y linux-generic-hwe-16.04 linux-tools-generic-hwe-16.04 linux-cloud-tools-generic-hwe-16.04 linux-tools-common
index 852a53ea4f55457d1e3e03e21dd7db8940daa23c..dc7526427353182ed25d02fbbf8903b60a336fc3 100644 (file)
@@ -122,6 +122,13 @@ resources:
             echo "FLOATING" > /etc/jenkins-agent/description
             echo "OPENSTACK_ENVIRONMENT" > /etc/jenkins-agent/location
 
+            echo "$(hostname | sed 's/-node-.*//')" > /etc/jenkins-agent/slave-name
+            if [[ "FLAVOR" == *"mos.fuel.base"* ]] ; then
+              echo "8" > /etc/jenkins-agent/executor-count
+            elif [[ "FLAVOR" == *"mos.fuel.huge"* ]] ; then
+              echo "16" > /etc/jenkins-agent/executor-count
+            fi
+
             apt update
             sed -i 's/^\(GRUB_CMDLINE_LINUX_DEFAULT=\).*$/\1\"console=tty1 console=ttyS0 noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier\"/g' /etc/default/grub.d/50-cloudimg-settings.cfg
             apt install -y linux-generic-hwe-16.04 linux-tools-generic-hwe-16.04 linux-cloud-tools-generic-hwe-16.04 linux-tools-common
index 915ec343c5bb82e4b78cd13eaa3906e26565c234..ecff73483e9d3d28ffefce1b13f272a3bbec0b48 100644 (file)
@@ -49,7 +49,7 @@ python get-pip.py
 pip install -U setuptools wheel
 pip install virtualenv
 
-wget -O /home/jenkins/jenkins-swarm-client.jar https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/3.9/swarm-client-3.9.jar
+wget -O /home/jenkins/jenkins-swarm-client.jar https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/3.17/swarm-client-3.17.jar
 mkdir /etc/jenkins-agent
 echo "base-slave" > /etc/jenkins-agent/labels
 cat > /etc/jenkins-agent/config <<EOF
@@ -63,6 +63,15 @@ touch /etc/jenkins-agent/description
 cat > /home/jenkins/launch_jenkins_agent.sh <<EOF
 #!/bin/bash
 source /etc/jenkins-agent/config
+if [[ -f /etc/jenkins-agent/slave-name ]] ; then
+ hname="\$(cat /etc/jenkins-agent/slave-name)"
+else
+ hname="\$(hostname)"
+fi
+ARGS=""
+if [[ -f /etc/jenkins-agent/executor-count ]] ; then
+ ARGS="\${ARGS} -executors \$(cat /etc/jenkins-agent/executor-count)"
+fi
 java -jar /home/jenkins/jenkins-swarm-client.jar -fsroot \${fsroot:-/home/jenkins} \
                                                  -labelsFile /etc/jenkins-agent/labels \
                                                  -master \${master:-http://maintenance-ci.scc.mirantis.net} \
@@ -70,7 +79,8 @@ java -jar /home/jenkins/jenkins-swarm-client.jar -fsroot \${fsroot:-/home/jenkin
                                                  -disableClientsUniqueId \
                                                  -username \${username?} \
                                                  -password \${password?} \
-                                                 -name \$(hostname)
+                                                 -name \${hname} \
+                                                 \$ARGS
 
 EOF
 chmod +x /home/jenkins/launch_jenkins_agent.sh
index 9d6824709aa9e537df3c35a08acef587c4b1a78b..a457fbc2307e67f37490fe75b092cb68d29db82b 100644 (file)
@@ -93,7 +93,7 @@ sed -i "s/#libvirtd_opts.*/libvirtd_opts=\" -l\"/" /etc/default/libvirt-bin
 
 sed -i "s/env libvirtd_opts.*/env libvirtd_opts=\"-d -l\"/" /etc/init/libvirt-bin.conf
 
-wget -O /home/jenkins/jenkins-swarm-client.jar https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/3.9/swarm-client-3.9.jar
+wget -O /home/jenkins/jenkins-swarm-client.jar https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/swarm-client/3.17/swarm-client-3.17.jar
 mkdir /etc/jenkins-agent
 echo "mos-slave" > /etc/jenkins-agent/labels
 cat > /etc/jenkins-agent/config <<EOF
@@ -107,6 +107,15 @@ touch /etc/jenkins-agent/description
 cat > /home/jenkins/launch_jenkins_agent.sh <<EOF
 #!/bin/bash
 source /etc/jenkins-agent/config
+if [[ -f /etc/jenkins-agent/slave-name ]] ; then
+ hname="\$(cat /etc/jenkins-agent/slave-name)"
+else
+ hname="\$(hostname)"
+fi
+ARGS=""
+if [[ -f /etc/jenkins-agent/executor-count ]] ; then
+ ARGS="\${ARGS} -executors \$(cat /etc/jenkins-agent/executor-count)"
+fi
 java -jar /home/jenkins/jenkins-swarm-client.jar -fsroot \${fsroot:-/home/jenkins} \
                                                  -labelsFile /etc/jenkins-agent/labels \
                                                  -master \${master:-http://maintenance-ci.scc.mirantis.net} \
@@ -114,7 +123,8 @@ java -jar /home/jenkins/jenkins-swarm-client.jar -fsroot \${fsroot:-/home/jenkin
                                                  -disableClientsUniqueId \
                                                  -username \${username?} \
                                                  -password \${password?} \
-                                                 -name \$(hostname)
+                                                 -name \${hname} \
+                                                 \$ARGS
 
 EOF
 chmod +x /home/jenkins/launch_jenkins_agent.sh
index 1daaa62cb352c9b575601bcd5a67a7f3d32fac74..8bb44d46c15bcb106d7fea5e6a065239f8e78436 100755 (executable)
@@ -42,8 +42,12 @@ if [[ ! -z "${CUSTOM_HEAT_STACK_YAML}" ]] ; then
   TEMPLATE_FILE="${CUSTOM_HEAT_STACK_YAML}"
 elif [[ -f "${HEAT_STACK_YAML}" ]] ; then
   TEMPLATE_FILE="${HEAT_STACK_YAML}"
-elif [[ ! -z "{HEAT_STACK_TEMPLATE_NAME}" ]] ; then
-  TEMPLATE_FILE="${WORKSPACE}/maintenance-ci/common/data/${HEAT_STACK_TEMPLATE_NAME}-${OPENSTACK_ENVIRONMENT,,}.yml"
+elif [[ ! -z "${HEAT_STACK_TEMPLATE_NAME}" ]] ; then
+  if [[ -f "${WORKSPACE}/maintenance-ci/common/data/${HEAT_STACK_TEMPLATE_NAME}.yml" ]] ; then
+    TEMPLATE_FILE="${WORKSPACE}/maintenance-ci/common/data/${HEAT_STACK_TEMPLATE_NAME}.yml"
+  else
+    TEMPLATE_FILE="${WORKSPACE}/maintenance-ci/common/data/${HEAT_STACK_TEMPLATE_NAME}-${OPENSTACK_ENVIRONMENT,,}.yml"
+  fi
 fi
 
 if [[ ! -f "${TEMPLATE_FILE}" ]] ; then