aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Pekkarinen <jose.pekkarinen@nokia.com>2016-05-30 10:19:51 +0300
committerJosé Pekkarinen <jose.pekkarinen@nokia.com>2016-05-30 12:27:30 +0300
commitfee279119bfc51a21ac1ad77474f8ea31bd6fa03 (patch)
tree05c17d7847d4ef43b7f461d60da7342f6f31216d
parent703bb4808acc83f08917e7b8274df44b2ffd39c0 (diff)
These changes are the initial support for kvmfornfv using compass.
Change-Id: I5ab2d7ad2f639d6673e0debd8f07f4f95c8bb476 Signed-off-by: José Pekkarinen <jose.pekkarinen@nokia.com>
-rw-r--r--build/build.conf1
-rw-r--r--build/packages/make_kvmfornfv.sh65
-rw-r--r--deploy/adapters/ansible/openstack/allinone.yml1
-rw-r--r--deploy/adapters/ansible/openstack/compute.yml1
-rw-r--r--deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml16
-rw-r--r--deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml18
-rw-r--r--deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml16
-rw-r--r--deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml27
8 files changed, 145 insertions, 0 deletions
diff --git a/build/build.conf b/build/build.conf
index ad2a6b1b..352e70ef 100644
--- a/build/build.conf
+++ b/build/build.conf
@@ -35,6 +35,7 @@ export APP_PACKAGE=${APP_PACKAGE:-$PACKAGE_URL/packages.tar.gz}
export LOADERS=${LOADERS:-$PACKAGE_URL/loaders.tar.gz}
export CIRROS=${CIRROS:-$PACKAGE_URL/cirros-0.3.3-x86_64-disk.img}
export SPECIAL_DEBIAN_PACKAGE=${SPECIAL_DEBIAN_PACKAGE-$PACKAGE_URL/debian-packages.tar.gz}
+export KVMFORNFV=${kvmfornfv:-https://gerrit.opnfv.org/gerrit/p/kvmfornfv.git}
export PIP_CONF="https://bootstrap.pypa.io/ez_setup.py \
diff --git a/build/packages/make_kvmfornfv.sh b/build/packages/make_kvmfornfv.sh
new file mode 100644
index 00000000..3fa6efec
--- /dev/null
+++ b/build/packages/make_kvmfornfv.sh
@@ -0,0 +1,65 @@
+##############################################################################
+# Copyright (c) 2016 Nokia 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
+##############################################################################
+
+# TODO compile kernel and qemu in docker container
+
+WORK_PATH=$(cd "$(dirname "$0")"/..; pwd)
+CACHE_DIR=$WORK_PATH/work/repo/temp
+DST_DIR=$WORK_PATH/work/repo/packages/kvmfornfv/
+source $WORK_PATH/build/build.conf
+
+function prepare()
+{
+ sudo apt-get install -y libtool libglib2.0-dev autoconf automake
+ mkdir -p $CACHE_DIR
+ mkdir -p $DST_DIR
+
+ if [ git ls-remote $KVMFORNFV ];
+ then
+ git clone $KVMFORNFV $CACHE_DIR/kvmfornfv
+ mkdir -p $CACHE_DIR/kvmfornfv/build/{boot,usr}
+ fi
+}
+
+function make_kernel()
+{
+ cd $CACHE_DIR/kvmfornfv/kernel
+ cp arch/x86/configs/opnfv.config .config
+ make -j8
+ make -j8 modules
+ make INSTALL_PATH=$CACHE_DIR/kvmfornfv/build/boot install
+ make INSTALL_MOD_PATH=$CACHE_DIR/kvmfornfv/build modules_install
+}
+
+function make_qemu()
+{
+ mkdir -p $CACHE_DIR/kvmfornfv/qemu/build
+ cd $CACHE_DIR/kvmfornfv/qemu/build
+ ../configure --prefix=$CACHE_DIR/kvmfornfv/build/usr --enable-system --enable-kvm
+ make -j8
+ make install
+}
+
+function make_kvmfornfv()
+{
+ pushd .
+
+ prepare
+ make_kernel
+ make_qemu
+
+ tar -czf $DST_DIR/kvmfornfv.tar.gz \
+ -C $CACHE_DIR/kvmfornfv/build .
+ cd -
+
+ popd
+}
+
+make_kvmfornfv
+
diff --git a/deploy/adapters/ansible/openstack/allinone.yml b/deploy/adapters/ansible/openstack/allinone.yml
index 4539e5fb..fabc6eb4 100644
--- a/deploy/adapters/ansible/openstack/allinone.yml
+++ b/deploy/adapters/ansible/openstack/allinone.yml
@@ -3,6 +3,7 @@
sudo: True
roles:
- common
+ - kvmfornfv
- database
- mq
- keystone
diff --git a/deploy/adapters/ansible/openstack/compute.yml b/deploy/adapters/ansible/openstack/compute.yml
index 8f6100ca..d0c41c3e 100644
--- a/deploy/adapters/ansible/openstack/compute.yml
+++ b/deploy/adapters/ansible/openstack/compute.yml
@@ -4,5 +4,6 @@
sudo: True
roles:
- common
+ - kvmfornfv
- nova-compute
- neutron-compute
diff --git a/deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml b/deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml
new file mode 100644
index 00000000..eef684f4
--- /dev/null
+++ b/deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml
@@ -0,0 +1,16 @@
+##############################################################################
+## Copyright (c) 2015 Nokia 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
+###############################################################################
+---
+
+packages:
+ - qemu-kvm
+ - grub-pc
+ - zlib1g
+ - libglib2.0
+
diff --git a/deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml b/deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml
new file mode 100644
index 00000000..c462bde2
--- /dev/null
+++ b/deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml
@@ -0,0 +1,18 @@
+##############################################################################
+## Copyright (c) 2015 Nokia 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
+###############################################################################
+---
+
+packages:
+ - zlib
+ - glib2
+ - gettext
+ - qemu-kvm
+ - grub2
+
+
diff --git a/deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml b/deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml
new file mode 100644
index 00000000..e5343ccc
--- /dev/null
+++ b/deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml
@@ -0,0 +1,16 @@
+##############################################################################
+## Copyright (c) 2015 Nokia 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
+###############################################################################
+---
+
+path: /tmp/kvmfornfv
+kernel_path: "{{ path }}/kernel"
+qemu_path: "{{ path }}/qemu"
+qemu_build_dir: "{{ qemu_path }}/build"
+package: kvmfornfv.tar.gz
+
diff --git a/deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml b/deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml
new file mode 100644
index 00000000..380882bb
--- /dev/null
+++ b/deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml
@@ -0,0 +1,27 @@
+##############################################################################
+## Copyright (c) 2015 Nokia 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: get package http server
+ shell: awk -F'=' '/compass_server/ {print $2}' /etc/compass.conf
+ register: http_server
+
+- name: download kvmfornfv package file
+ get_url: url="http://{{ http_server.stdout_lines[0] }}/packages/kvmfornfv/{{ package }}" dest=/tmp/{{ package }}
+
+- name: extract kvmfornfv files
+ command: su -s /bin/sh -c "tar xzf /tmp/{{ package }} -C /"
+
+- name: Update grub on Centos
+ shell: grub2-mkconfig -o /boot/grub2/grub.conf
+ when: ansible_os_family == 'RedHat'
+
+- name: Update grub on Ubuntu
+ shell: grub-mkconfig -o /boot/grub/grub.conf
+ when: ansible_os_family == 'Debian'
+