aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/rt_kvm
diff options
context:
space:
mode:
authorJustin chi <chigang@huawei.com>2017-07-20 00:40:43 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-07-20 00:40:43 +0000
commit657249dad1bfee6fc190d0c63cf46a1ddfb9cad1 (patch)
tree6d9e36dff22efa9d3151346905c5d4e1ee700318 /plugins/rt_kvm
parent588f2fa381c12e899843a0ab1235bcb0d57b49af (diff)
parent798f3a062a471a248b0f9131b5651660f431fbd5 (diff)
Merge "Add real time kvm feature from kvmfornfv project"
Diffstat (limited to 'plugins/rt_kvm')
-rw-r--r--plugins/rt_kvm/plugins.desc50
-rw-r--r--plugins/rt_kvm/tasks/kvm.yml40
-rw-r--r--plugins/rt_kvm/tasks/main.yml11
-rw-r--r--plugins/rt_kvm/vars/main.yml16
4 files changed, 117 insertions, 0 deletions
diff --git a/plugins/rt_kvm/plugins.desc b/plugins/rt_kvm/plugins.desc
new file mode 100644
index 00000000..0dd2680b
--- /dev/null
+++ b/plugins/rt_kvm/plugins.desc
@@ -0,0 +1,50 @@
+# This rt_kvm plugin adds real time kvm feature from kvmfornfv project
+# into Compass4nfv together with scenarios.
+#
+#
+# More details can be found in the development document.
+# ##############################################################
+---
+plugin:
+ # plugin name,it is also as the switch to enable/disable plugin in scenario
+ # files
+ name: rt_kvm
+
+ description: real time kvm based on kvmfornfv
+
+ maintainers:
+ - david.j.chou@intel.com
+
+ # host os type: ubuntu/centos
+ os_version: ubuntu
+
+ # true: this plugin is deployed separately on a new node
+ # false: this plugin is deployed on controller or compute node
+ independent_hosts: false
+
+ # artifact: packege download url for this plugin
+ artifacts:
+ url: http://artifacts.opnfv.org/kvmfornfv/kvmfornfv-4bfeded9-kernel-4.4.50_rt62_ubuntu.x86_64.deb
+
+ # orchestration
+ # A plugin can have mutiple components, each component may need to be
+ # installed on different inventory or have its own configuration.
+ # due to Compass4nfv currently only supports ansible, so each component
+ # of the installation and configuration script need to be use ansible.
+ # cm : congfiguration management tool : only ansible support
+ # role: each component corresponds to ansible script that locates in the same
+ # directory as plugin.desc.
+ # phrase: pre_openstack -- the component is installed after the OS
+ # provisioning, before the OpenStack deployment.
+ # phrase: post_openstack -- the component is installed before the OpenStack
+ # deployment.
+ # inventory: if the phrase is pre_openstack, inventory can be controller and
+ # compute. if the phrase is post_openstack, inventory can be get from the file
+ # openstack-ansible.inventory
+ orchestration:
+ cm: ansible
+ roles:
+ - role: install real time kvm
+ phrase: pre_openstack
+ inventory:
+ - compute
diff --git a/plugins/rt_kvm/tasks/kvm.yml b/plugins/rt_kvm/tasks/kvm.yml
new file mode 100644
index 00000000..5d3ca7bc
--- /dev/null
+++ b/plugins/rt_kvm/tasks/kvm.yml
@@ -0,0 +1,40 @@
+##############################################################################
+# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- name: create workspace directory
+ file:
+ path: "{{ workspace }}"
+ state: directory
+ mode: 0755
+
+- name: download rt_kvm kernel package
+ get_url:
+ url: "{{ rt_kvm_url }}"
+ dest: "{{ workspace }}/{{ rt_kvm_pkg }}"
+
+- name: install rt_kvm kernel
+ command: dpkg -i "{{ workspace }}/{{ rt_kvm_pkg }}"
+
+- name: update the grub
+ command: grub-mkconfig -o /boot/grub/grub.cfg
+
+- name: wait a moment
+ command: sleep 5
+
+- name: reboot the node
+ shell: sleep 2 && shutdown -r now 'Reboot required'
+ become: true
+ async: 1
+ poll: 0
+ ignore_errors: true
+
+- name: wait for reboot
+ local_action:
+ module: wait_for
+ host={{ ansible_eth0.ipv4.address }} port=22 delay=1 timeout=600
diff --git a/plugins/rt_kvm/tasks/main.yml b/plugins/rt_kvm/tasks/main.yml
new file mode 100644
index 00000000..e79fe9ff
--- /dev/null
+++ b/plugins/rt_kvm/tasks/main.yml
@@ -0,0 +1,11 @@
+##############################################################################
+# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+- include: kvm.yml
+ when: rt_kvm is defined and rt_kvm == "Enable"
diff --git a/plugins/rt_kvm/vars/main.yml b/plugins/rt_kvm/vars/main.yml
new file mode 100644
index 00000000..9f32d13c
--- /dev/null
+++ b/plugins/rt_kvm/vars/main.yml
@@ -0,0 +1,16 @@
+##############################################################################
+# Copyright (c) 2016-2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+workspace: /tmp/plugin
+
+# yamllint disable rule:line-length
+rt_kvm_url: http://artifacts.opnfv.org/kvmfornfv/kvmfornfv-4bfeded9-kernel-4.4.50_rt62_ubuntu.x86_64.deb
+# yamllint enable rule:line-length
+
+rt_kvm_pkg: kvmfornfv-4bfeded9-kernel-4.4.50_rt62_ubuntu.x86_64.deb