[fuel-plugin] Employ dedicated reboot task 25/28725/1
authorMichael Polenchuk <mpolenchuk@mirantis.com>
Wed, 15 Feb 2017 14:36:58 +0000 (18:36 +0400)
committerMichael Polenchuk <mpolenchuk@mirantis.com>
Wed, 15 Feb 2017 14:36:58 +0000 (18:36 +0400)
* Use native reboot task after kernel setup to avoid unexpected behavior.
* Add support for removing installed kernel (get back to original one).
* Create symlink to the headers to enable dkms modules
  to get source files of the kernel.

Change-Id: Icdf8db267c69a55337910bc3aed15d56eb783ae5
Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
fuel-plugin/deployment_scripts/puppet/manifests/kvm-install.pp
fuel-plugin/deployment_tasks.yaml
fuel-plugin/pre_build_hook

index 4c04aa0..fba3e38 100644 (file)
@@ -1,18 +1,32 @@
 $kvm_settings = hiera('fuel-plugin-kvm')
-if $operatingsystem == 'Ubuntu' {
-        if $kvm_settings['use_kvm'] {
-                package { 'linux-headers-4.4.6-rt14nfv':
-                        ensure => "1.0.OPNFV",
-                        notify => Reboot['after_run'],
-                } ->
-                package { 'linux-image-4.4.6-rt14nfv':
-                        ensure => "1.0.OPNFV",
-                        notify => Reboot['after_run'],
-                }
-                reboot { 'after_run':
-                    apply => finished,
-                }
-        } else {
-        }
-} elsif $operatingsystem == 'CentOS' {
+
+case $::operatingsystem {
+  'Ubuntu': {
+    $version         = '4.4.6-rt14nfv'
+    $kernel_kit      = ["linux-headers-${version}", "linux-image-${version}"]
+    $kernel_src      = "/usr/src/linux-headers-${version}"
+    $kernel_src_link = "/lib/modules/${version}/build"
+  }
+  default: {
+    fail("Unsupported operating system: ${::osfamily}/${::operatingsystem}")
+  }
+
+}
+
+if $kvm_settings['use_kvm'] {
+  $ensure_pkg  = '1.0.OPNFV'
+  $ensure_link = 'link'
+} else {
+  $ensure_pkg  = 'purged'
+  $ensure_link = 'absent'
+}
+
+package { $kernel_kit:
+  ensure => $ensure_pkg,
+  before => File[$kernel_src_link],
+}
+
+file { $kernel_src_link:
+  ensure => $ensure_link,
+  target => $kernel_src,
 }
index 55f91ff..ab63a9b 100644 (file)
@@ -2,11 +2,22 @@
   type: puppet
   version: 2.1.0
   role: [compute]
-  required_for: [post_deployment_end]
-  requires: [post_deployment_start]
+  requires: [pre_deployment_start]
+  required_for: [pre_deployment_end]
   condition:
-    yaql_exp: changed($.get('fuel-plugin-kvm'))
+    yaql_exp: &kvm changed($.get('fuel-plugin-kvm'))
   parameters:
     puppet_manifest: puppet/manifests/kvm-install.pp
     puppet_modules: puppet/modules:/etc/puppet/modules
-    timeout: 1200
+    timeout: 300
+
+- id: node_reboot
+  type: reboot
+  version: 2.1.0
+  role: [compute]
+  requires: [kvm_install]
+  required_for: [pre_deployment_end]
+  condition:
+    yaql_exp: *kvm
+  parameters:
+    timeout: 900
index 259862f..a3c8832 100755 (executable)
@@ -4,10 +4,6 @@ set -eux
 
 BUILD_FOR=${BUILD_FOR:-ubuntu}
 DIR="$(dirname `readlink -f $0`)"
-MODULES="${DIR}/deployment_scripts/puppet/modules"
-
-REBOOT_VER='1.2.1'
-REBOOT_URL="https://github.com/puppetlabs/puppetlabs-reboot/archive/${REBOOT_VER}.tar.gz"
 
 function build_pkg {
   case $1 in
@@ -29,7 +25,3 @@ for system in $BUILD_FOR
 do
   build_pkg $system
 done
-
-rm -rf ${MODULES}/reboot
-mkdir -p ${MODULES}/reboot
-wget -qO- ${REBOOT_URL} |  tar -C ${MODULES}/reboot --strip-components=1 -zxvf -