These changes are the initial support for kvmfornfv using compass. 33/14433/23
authorJosé Pekkarinen <jose.pekkarinen@nokia.com>
Mon, 30 May 2016 07:19:51 +0000 (10:19 +0300)
committerJosé Pekkarinen <jose.pekkarinen@nokia.com>
Mon, 30 May 2016 09:27:30 +0000 (12:27 +0300)
Change-Id: I5ab2d7ad2f639d6673e0debd8f07f4f95c8bb476
Signed-off-by: José Pekkarinen <jose.pekkarinen@nokia.com>
build/build.conf
build/packages/make_kvmfornfv.sh [new file with mode: 0644]
deploy/adapters/ansible/openstack/allinone.yml
deploy/adapters/ansible/openstack/compute.yml
deploy/adapters/ansible/roles/kvmfornfv/defaults/Debian.yaml [new file with mode: 0644]
deploy/adapters/ansible/roles/kvmfornfv/defaults/RedHat.yaml [new file with mode: 0644]
deploy/adapters/ansible/roles/kvmfornfv/defaults/main.yml [new file with mode: 0644]
deploy/adapters/ansible/roles/kvmfornfv/tasks/main.yml [new file with mode: 0644]

index ad2a6b1..352e70e 100644 (file)
@@ -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 (file)
index 0000000..3fa6efe
--- /dev/null
@@ -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
+
index 4539e5f..fabc6eb 100644 (file)
@@ -3,6 +3,7 @@
   sudo: True
   roles:
     - common
+    - kvmfornfv
     - database
     - mq
     - keystone
index 8f6100c..d0c41c3 100644 (file)
@@ -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 (file)
index 0000000..eef684f
--- /dev/null
@@ -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 (file)
index 0000000..c462bde
--- /dev/null
@@ -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 (file)
index 0000000..e5343cc
--- /dev/null
@@ -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 (file)
index 0000000..380882b
--- /dev/null
@@ -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'
+