diff options
195 files changed, 19 insertions, 17207 deletions
diff --git a/build/Makefile b/build/Makefile deleted file mode 100644 index 6ce6dbd9c..000000000 --- a/build/Makefile +++ /dev/null @@ -1,259 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -SHELL = /bin/bash - -# This file will be created if needed by runcontext to contain proxy -# settings. --include environment.mk - -############################################################################ -# BEGIN of variables to customize -# -#Input args -export MOSVERSION = 10.0 -export ISOSRC = file:$(shell pwd)/fuel-$(MOSVERSION).iso -export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC)) -export PRODNO ?= "OPNFV_FUEL" -export REVSTATE = "P0000" -export USER ?= $(shell whoami) -export BUILD_DATE = $(shell date --utc +%Y-%m-%d:%H:%M) -export OPNFV_GIT_SHA ?= $(shell git rev-parse HEAD) -# Store in /etc/fuel_build_id on fuel master -export BUILD_ID := $(PRODNO)_$(BUILD_DATE)_$(OPNFV_GIT_SHA) - -ifdef BUILD_FUEL_PLUGINS -$(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS)) -export NEWISO = $(shell pwd)/release/unofficial-opnfv-${REVSTATE}.iso -else -export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso -endif - -# Note! Invoke with "make REVSTATE=RXXXX all" to make release build! -# Invoke with ICOCACHE=/full/path/to/iso if cached ISO is in non-standard location. - -# Build variables -export BUILD_BASE := $(shell pwd) -export DEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/main -export UDEB_DEST := $(BUILD_BASE)/release/packages/ubuntu/pool/debian-installer -export PUPPET_DEST := $(BUILD_BASE)/release/puppet/modules -export VERSION_FILE := $(BUILD_BASE)/.versions -export DOCKERIMG = opnfv.org/ubuntu-builder:14.04 -export TOPDIR := $(shell pwd) -export REPOINFO := $(BUILD_BASE)/repo_info.sh - -# Use snapshots -# Use nearby repositories -export MIRROR_UBUNTU_URL ?= $(shell ./f_isoroot/f_repobuild/select_ubuntu_repo.sh) -export MIRROR_UBUNTU ?= $(shell echo "$(MIRROR_UBUNTU_URL)" | cut -d'/' -f3 ) -export MIRROR_UBUNTU_ROOT ?= $(shell echo -n '/' ; echo "$(MIRROR_UBUNTU_URL)" | cut -d'/' -f4-) -ifeq (,$(MIRROR_UBUNTU_URL)) -$(warning $(shell ./f_isoroot/f_repobuild/select_ubuntu_repo.sh -d)) -$(error No sane Ubuntu mirror available) -endif - -export LATEST_MIRROR_ID_URL := http://$(shell ./select_closest_fuel_mirror.py) - -export MIRROR_MOS_UBUNTU ?= $(shell echo "$(LATEST_MIRROR_ID_URL)" | cut -d'/' -f3) -export LATEST_TARGET_UBUNTU := $(shell curl -sSf "$(MIRROR_MOS_UBUNTU)/mos-repos/ubuntu/$(MOSVERSION).target.txt" | head -1) -export MIRROR_MOS_UBUNTU_ROOT := /mos-repos/ubuntu/$(LATEST_TARGET_UBUNTU) -export LATEST_TARGET_CENTOS := $(shell curl -sSf "$(LATEST_MIRROR_ID_URL)/mos-repos/centos/mos$(MOSVERSION)-centos7/os.target.txt" | head -1) -export MIRROR_FUEL := "$(LATEST_MIRROR_ID_URL)/mos-repos/centos/mos$(MOSVERSION)-centos7/$(LATEST_TARGET_CENTOS)/x86_64" - -# uncomment and use: make print-VARIABLE -#print-% : ; @echo $* = $($*) - -#Build subclasses - -SUBDIRS := f_isoroot - -# f_example is only an example of how to generate a .deb package and -# should not be enabled in official builds. -#SUBDIRS += f_example - -ORIGDIR := $(TOPDIR)/origiso -# -# END of variables to customize -############################################################################# - -FUEL_MAIN_DIR := /tmp/fuel-main - -SUBCLEAN = $(addsuffix .clean,$(SUBDIRS)) - -.PHONY: all -all: - @docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1) - @make -C docker - @lsb_release -a | grep Ubuntu > /dev/null 2>&1 || (echo 'Ubuntu is the only supported Linux distribution for this build system'; exit 1) - @KERNEL_VER=$$(uname -r); \ - KERNEL_ARRAY=($${KERNEL_VER//./ }); \ - if [ $${KERNEL_ARRAY[0]} -lt 3 ] || [[ $${KERNEL_ARRAY[0]} -eq 3 && $${KERNEL_ARRAY[1]} -lt 19 ]] ; then (echo 'Kernel version must be 3.19 or newer'; exit 1) ; fi - @docker/runcontext $(DOCKERIMG) wget -q www.google.com -O /dev/null || (echo 'No docker network connectivity or name server - check your network- and docker settings'; exit 1) - @docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) iso - - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -include cache.mk -# -# END Include definitions -############################################################################# - -$(ISOCACHE): - # Clone Fuel to non-persistent location and build - sudo rm -rf $(FUEL_MAIN_DIR) - $(MAKE) -C f_repos -f Makefile release - git clone $(FUEL_MAIN_REPO) $(FUEL_MAIN_DIR) - # Save upstream ref, checkout OPNFV tag (upstream ref + patches) - @echo "fuel" `git -C $(FUEL_MAIN_DIR) \ - rev-parse $(F_OPNFV_TAG)-root` >> $(VERSION_FILE) - git -C $(FUEL_MAIN_DIR) checkout $(F_OPNFV_TAG) - # Remove Docker optimizations, otherwise multistrap will fail during - # Fuel build. - sudo rm -f /etc/apt/apt.conf.d/docker* - # - # Need to replace the old Docker v. 1.5.0 with a later version to be - # able to access the Docker remote repository! - sudo apt-get install apt-transport-https ca-certificates -y - sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D - echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list - sudo apt-get update -y - sudo apt-get install docker-engine -y - sudo sh -c 'echo DOCKER_OPTS=\"--bip 172.45.0.1/24\" > /etc/default/docker' - sudo service docker stop || exit 0 - sudo service docker start - - cd $(FUEL_MAIN_DIR) && ./prepare-build-env.sh - # Verify that Docker is alive - sudo docker info - # fuel-main Makefiles do not like `make -C` - cd $(FUEL_MAIN_DIR) && make repos - cp f_repos/.cachefuelinfo gitinfo_fuel.txt - - # Repeat build up to three times - sudo -E ./fuel_build_loop - cp $(FUEL_MAIN_DIR)/build/artifacts/fuel*.iso . - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -.PHONY: mount-origiso umount-origiso -mount-origiso: $(ISOCACHE) - @echo "Mounting original ISO in $(ORIGDIR)" - @mkdir -p $(ORIGDIR) - @fuseiso $(ISOCACHE) $(ORIGDIR) - -umount-origiso: - @echo "Unmounting original ISO from $(ORIGDIR)" - @fusermount -u $(ORIGDIR) - @rmdir $(ORIGDIR) - -.PHONY: $(SUBDIRS) -$(SUBDIRS): - @mkdir -p release/packages/ubuntu/pool/main release/packages/ubuntu/pool/debian-installer release/puppet/modules release/isoroot - $(MAKE) -C $@ -f Makefile release - -.PHONY: patch-packages -patch-packages: - ORIGISO=$(ISOCACHE) REVSTATE=$(REVSTATE) $(MAKE) -C $@ -f Makefile release - -.PHONY: clean $(SUBCLEAN) -clean: $(SUBCLEAN) - $(MAKE) -C f_repos -f Makefile clean - $(MAKE) -C patch-packages -f Makefile clean - @rm -f *.iso - @rm -Rf release - @rm -Rf newiso - @rm -Rf .versions - @rm -f $(NEWISO) - @rm -f $(BUILD_BASE)/gitinfo_*.txt - -.PHONY: deepclean -deepclean: clean clean-cache - $(MAKE) -C f_repos -f Makefile deepclean - $(MAKE) -C docker clean - docker rmi opnfv.org/ubuntu-builder:14.04 &>/dev/null || exit 0 - docker rmi opnfv.org/ubuntu-builder:latest &>/dev/null || exit 0 - docker rmi ubuntu:14.04 &>/dev/null || exit 0 - @if docker images | grep -q "^ubuntu *14.04"; then \ - echo "Error: ubuntu:14.04 still present!"; \ - exit 1; \ - fi - @if docker images | grep -q "opnfv.org/ubuntu-builder"; then \ - echo "Error: opnfv.org/ubuntu-builder still present!"; \ - exit 1; \ - fi - -$(SUBCLEAN): %.clean: - $(MAKE) -C $* -f Makefile clean - -.PHONY: setup-env -setup-env: - @if [ -f environment.mk ]; then \ - sudo bash -c "cat environment.mk >> /etc/environment"; \ - fi - -# Todo: Make things smarter - we shouldn't need to clean everything -# betwen make invocations. -.PHONY: iso -iso: setup-env $(ISOCACHE) $(SUBDIRS) patch-packages - $(REPOINFO) . > gitinfo_main.txt - install/install.sh iso $(ISOCACHE) $(NEWISO) $(PRODNO) $(REVSTATE) - @printf "\n\nProduct ISO is $(NEWISO)\n\n" - -# Start a bash shell in docker for Makefile debugging -.PHONY: debug -debug: - @docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1) - @make -C docker - docker/runcontext $(DOCKERIMG) debug - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - -# Create a unique hash to be used for getting and putting cache, based on: -# - The commit ID of the full Fuel repo structure -# - The contents of all local Fuel patches -# - Makefile, config and sensitive build scripts fingerprints -# NOTE: Patching is deterministic, so we can fingerprint (submodule root commit -# info + OPNFV patches) at once, after patches-import. -# NOTE: When git submodule remote tracking is active, `git submodule status` -# will point to the latest commits (remote/branch/HEAD) + OPNFV patches. -.cacheid: - $(MAKE) -C f_repos -f Makefile get-cache release - git submodule status | cut -c2-41 > .cachedata - sha1sum fuel_build_loop >> .cachedata - sha1sum config.mk >> .cachedata - sha1sum Makefile >> .cachedata - $(CACHETOOL) getbiweek >> .cachedata - cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: $(SUBCLEANCACHE) - $(MAKE) -C f_repos -f Makefile clean-cache - rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - fuel*.iso gitinfo_fuel.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/README b/build/README deleted file mode 100644 index a6e15694c..000000000 --- a/build/README +++ /dev/null @@ -1,22 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -This purpose of this framework is to: - -1) Build fuel baseline from upstream OpenStack Fuel repos (builds in a docker container to isolate dependencies from host - and full re-producability) -2) Apply arbitrary changes to the fuel baseline, consistent and non volatile: - - Add arbitrary packages with puppet modules for install and config. to be applied on controllers as well as computes. - - Change any stack-, or other pack config. using puppet - - Apply patches to the baseline. - - Etc. -3) Re factor/rebuild the .iso image for deployment (also builds in a container, for the same reason as mentioned above) - -For detailed instructions on how to add content, configuration, build and deply - please see: DOC/ diff --git a/build/add_opnfv_packages b/build/add_opnfv_packages deleted file mode 100644 index 44af92ea7..000000000 --- a/build/add_opnfv_packages +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -# Format of this file: -# -#TEXT>old package>url for replacement package -# -# Note! No spaces! -# The TEXT can be anything it is just for information display. -# Iff the packages is new, i.e. not replacing an existing package -# the old package should be specified as NONE. -# Note! For new packages a puppet manifest must actually install it. -# Easiest is to just add it to add_packages.pp. (The same might -# of course be true for an exising package if it isn't already -# is being installed). -# diff --git a/build/apply_patches b/build/apply_patches deleted file mode 100644 index 6925ff6b7..000000000 --- a/build/apply_patches +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -# Format of this file: -# -#TR>old package>url for replacement package -# -# Note! No spaces! -# Example: -#FIX>foo_0.0.1.deb>https://example.org/foo_0.0.2.deb - diff --git a/build/cache.mk b/build/cache.mk deleted file mode 100644 index a65f310d0..000000000 --- a/build/cache.mk +++ /dev/null @@ -1,55 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################# -# Cache operations - only used when building through ci/build.sh -# -# This is the global cache implementation, providing the main target "cache" -# which is called from ci/build.sh, and recursively calling the cache -# operations clean-cache, get-cache and put-cache on all $(SUBDIRS). -############################################################################# - - -export CACHETOOL := $(BUILD_BASE)/cache.sh - -# Call sub caches -SUBGETCACHE = $(addsuffix .getcache,$(SUBDIRS)) -$(SUBGETCACHE): %.getcache: - $(MAKE) -C $* -f Makefile get-cache - -SUBPUTCACHE = $(addsuffix .putcache,$(SUBDIRS)) -$(SUBPUTCACHE): %.putcache: - $(MAKE) -C $* -f Makefile put-cache - -SUBCLEANCACHE = $(addsuffix .cleancache,$(SUBDIRS)) -$(SUBCLEANCACHE): %.cleancache: - $(MAKE) -C $* -f Makefile clean-cache - -# Overlay implementation: -# - clean -# - clean cache identities -# - get caches -# - build iso -# - store caches -.PHONY: cached-all -cached-all: clean clean-cache $(SUBCLEANCACHE) get-cache $(SUBGETCACHE) iso put-cache $(SUBPUTCACHE) - @echo "Cached build is complete" - - -# cache: The target for ci/build.sh -.PHONY: cache -cache: - @if [ -z "${CACHEBASE}" ]; then \ - echo "CACHEBASE not set, are you really building through build.sh?"; \ - exit 1; \ - fi - @docker version >/dev/null 2>&1 || (echo 'No Docker installation available'; exit 1) - @make -C docker get-cache all - docker/runcontext $(DOCKERIMG) $(MAKE) $(MAKEFLAGS) cached-all diff --git a/build/cache.sh b/build/cache.sh deleted file mode 100755 index d4b2c45dd..000000000 --- a/build/cache.sh +++ /dev/null @@ -1,203 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -exit_trap() { - if [ -d "$TMPDIR" ]; then - rm -rf $TMPDIR - fi -} - -trap exit_trap EXIT - -CACHETRANSPORT=${CACHETRANSPORT:-"curl --silent"} -CACHEMAXAGE=${CACHEMAXAGE:-$[14*24*3600]} -CACHEDEBUG=${CACHEDEBUG:-1} -PLUGINS_MATCH="${BUILD_BASE}/f_isoroot/*/" - -debugmsg () { - if [ "$CACHEDEBUG" -eq 1 ]; then - echo "$@" >&2 - fi -} - -errorexit () { - echo "$@" >&2 - exit 1 -} - -# Generate a unique number every two weeks - a service routine that -# can be used when generating the SHA1 to make sure that the cache is -# rebuilt bi-weekly even if no pruning of the cache is taking place. -getbiweek () { - echo "$(date +'%G')$[10#$(date +'%V')/2]" -} - -# Get a SHA1 based on what's piped into the cache command -getid() { - debugmsg "Generating sha1sum" - sha1sum | sed 's/ .*//' -} - - -# Put in cache -put() { - if check $1; then - debugmsg "SHA1 $1 already in cache, skipping storage" - else - debugmsg "Storing SHA1 $1 in cache" - ${CACHETRANSPORT} -T - ${CACHEBASE}/$1.blob - echo "Expires: $[`date +"%s"` + $CACHEMAXAGE]" | ${CACHETRANSPORT} -T - ${CACHEBASE}/$1.meta - fi - exit 0 -} - -# Get from cache -get() { - local rc - - ${CACHETRANSPORT} -o - ${CACHEBASE}/$1.blob 2>/dev/null - rc=$? - - if [ $rc -eq 0 ]; then - echo "Got SHA1 $1 from cache" 2>/dev/null - else - echo "Tried to get SHA1 $1 from cache but failed" 2>/dev/null - fi - - return $? -} - -# Check if in cache -check() { - local rc - - ${CACHETRANSPORT} ${CACHEBASE}/$1.meta &>/dev/null - rc=$? - - if [ $rc -eq 0 ]; then - debugmsg "Checking for SHA1 $1 in cache and found it, rc = $rc" - else - debugmsg "Checking for SHA1 $1 in cache and failed, rc = $rc" - fi - - return $rc -} - -# Verify that SHA1 seems to be a SHA1... -validSHA1() { - if [ $(echo $1 | wc -c) -ne 41 ]; then - return 1 - else - return 0 - fi -} - -# Figure out commit ID from URI and tag/branch/commit ID -getcommitid() { - if echo $2 | grep -q '^refs/changes/'; then - REF=`echo $2 | sed "s,refs\/changes\/\(.*\),\1,"` - else - REF=$2 - fi - - echo "Repo is $1, ref is ${REF}" >&2 - - HEADMATCH=`git ls-remote $1 | grep "refs/heads/${REF}$" | awk '{ print $1 }'` - TAGMATCH=`git ls-remote $1 | grep "refs/tags/${REF}$" | awk '{ print $1 }'` - CHANGEMATCH=`git ls-remote $1 | grep "refs/changes/${REF}$" | awk '{ print $1 }'` - - if [ -n "$HEADMATCH" ]; then - echo "$HEADMATCH" - elif [ -n "$TAGMATCH" ]; then - echo "$TAGMATCH" - elif [ -n "$CHANGEMATCH" ]; then - echo "Warning: ${REF} is a change!" >&2 - TMPDIR=`mktemp -d /tmp/cacheXXXXX` - cd $TMPDIR - git clone $1 &>/dev/null || errorexit "Could not clone $1" - cd * || errorexit "Could not enter clone of $1" - git fetch $1 refs/changes/$REF &>/dev/null || errorexit "Could not fetch change" - git checkout FETCH_HEAD &>/dev/null || errorexit "Could not checkout FETCH_HEAD" - git show HEAD &>/dev/null || errorexit "Could not find commit $2" - git show HEAD | head -1 | awk '{ print $2 }' - else - TMPDIR=`mktemp -d /tmp/cacheXXXXX` - cd $TMPDIR - git clone $1 &>/dev/null || errorexit "Could not clone $1" - cd * || errorexit "Could not enter clone of $1" - git show $2 &>/dev/null || errorexit "Could not find commit $2" - git show $2 | head -1 | awk '{ print $2 }' - fi -} - -packages() { - local PLUGINS_SHA1='' - - # globbing expansion is alphabetical - for plugin in $PLUGINS_MATCH ; do - if [ -f "${plugin}packages.yaml" ] - then - PLUGINS_SHA1+=$(sha1sum ${plugin}packages.yaml) - fi - done - - if [ -n "${PLUGINS_SHA1}" ] - then - echo -n $PLUGINS_SHA1 | sha1sum - fi -} - -if [ -z "$CACHEBASE" ]; then - errorexit "CACHEBASE not set - exiting..." -fi - -case $1 in - getbiweek) - if [ $# -ne 1 ]; then - errorexit "No arguments can be given to getbiweek!" - fi - getbiweek - ;; - getcommitid) - if [ $# -ne 3 ]; then - errorexit "Arg 1 needs to be URI and arg 2 tag/branch/commit" - fi - shift - getcommitid $@ - ;; - getid) - if [ $# -ne 1 ]; then - errorexit "No arguments can be given to getid!" - fi - getid - ;; - get|check|put) - if [ $# -ne 2 ]; then - errorexit "Only one argument, the SHA1 sum, can be given to getid!" - else - if ! validSHA1 $2; then - errorexit "Invalid SHA1 format!" - fi - fi - - $1 $2 - exit $rc - ;; - packages) - if [ $# -ne 1 ]; then - errorexit "No arguments can be given to packages!" - fi - packages - ;; - *) - errorexit "I only know about getcommitid, getid, check, get and put!" -esac diff --git a/build/check_dependencies.sh b/build/check_dependencies.sh deleted file mode 100755 index cbcb98ab3..000000000 --- a/build/check_dependencies.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -# Given a file as input, this script verifies that all URIs in the file can -# be fetched. - -if [ $# -ne 1 ]; then - echo "Usage: $(basename $0) <filename>" - exit 1 -fi - -if [ ! -e $1 ]; then - echo "Could not open $1" - exit 1 -fi - -echo "Checking dependencies in $1" -rc=0 -for uri in `cat $1` -do - if ! curl -sfr 0-100 $uri > /dev/null; then - echo "Failed fetching $uri" >&2 - rc=1 - fi -done - -if [ $rc -ne 0 ]; then - echo "ERROR checking dependencies in $1" -else - echo "Dependencies OK" -fi - -exit $rc diff --git a/build/config.mk b/build/config.mk deleted file mode 100644 index 5448c5eb4..000000000 --- a/build/config.mk +++ /dev/null @@ -1,72 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -# This tag is NOT checked out, it only serves a cosmetic purpose of hinting -# what upstream Fuel components our submodules are bound to (while tracking -# remotes, ALL submodules will point to remote branch HEAD). -# NOTE: Pinning fuel-main or other submodules to a specific commit/tag is -# done ONLY via git submodules. -FUEL_MAIN_TAG = master -MOS_VERSION = 10.0 -OPENSTACK_VERSION = newton-10.0 - -# List of space-separated Ubuntu architectures supported with current build -# Format: same as `dpkg-architecture -qDEB_HOST_ARCH` -# NOTE: Currently only amd64 is supported by Fuel@OPNFV. Armband adds arm64. -export UBUNTU_ARCH ?= amd64 - -############################################################################## -# Fuel components pinning / remote tracking; use submodules from f_repos -############################################################################## - -# git submodule & patch locations for Fuel components -F_GIT_ROOT := $(shell git rev-parse --show-toplevel) -F_GIT_DIR := $(shell git rev-parse --git-dir) -F_SUBMOD_DIR := ${F_GIT_ROOT}/build/f_repos/sub -F_PATCH_DIR := ${F_GIT_ROOT}/build/f_repos/patch -F_OPNFV_TAG := ${FUEL_MAIN_TAG}-opnfv - -# fuel-main repo location used by main Makefile ISO building, use submodule -FUEL_MAIN_REPO := ${F_SUBMOD_DIR}/fuel-main - - -export FUELLIB_REPO?=${F_SUBMOD_DIR}/fuel-library -export NAILGUN_REPO?=${F_SUBMOD_DIR}/fuel-web -export PYTHON_FUELCLIENT_REPO?=${F_SUBMOD_DIR}/python-fuelclient -export FUEL_AGENT_REPO?=${F_SUBMOD_DIR}/fuel-agent -export FUEL_NAILGUN_AGENT_REPO?=${F_SUBMOD_DIR}/fuel-nailgun-agent -export ASTUTE_REPO?=${F_SUBMOD_DIR}/fuel-astute -export OSTF_REPO?=${F_SUBMOD_DIR}/fuel-ostf -export FUELMENU_REPO?=${F_SUBMOD_DIR}/fuel-menu -export SHOTGUN_REPO?=${F_SUBMOD_DIR}/shotgun -export NETWORKCHECKER_REPO?=${F_SUBMOD_DIR}/network-checker -export FUEL_UI_REPO?=${F_SUBMOD_DIR}/fuel-ui - -# OPNFV tags are automatically applied by `make -C f_repos patches-import` -export FUELLIB_COMMIT?=${F_OPNFV_TAG} -export NAILGUN_COMMIT?=${F_OPNFV_TAG} -export PYTHON_FUELCLIENT_COMMIT?=${F_OPNFV_TAG} -export FUEL_AGENT_COMMIT?=${F_OPNFV_TAG} -export FUEL_NAILGUN_AGENT_COMMIT?=${F_OPNFV_TAG} -export ASTUTE_COMMIT?=${F_OPNFV_TAG} -export OSTF_COMMIT?=${F_OPNFV_TAG} -export FUEL_MIRROR_COMMIT?=${F_OPNFV_TAG} -export FUELMENU_COMMIT?=${F_OPNFV_TAG} -export SHOTGUN_COMMIT?=${F_OPNFV_TAG} -export NETWORKCHECKER_COMMIT?=${F_OPNFV_TAG} -export FUELUPGRADE_COMMIT?=${F_OPNFV_TAG} -export FUEL_UI_COMMIT?=${F_OPNFV_TAG} - -# for the patches applying purposes (empty git config in docker build container) -export GIT_COMMITTER_NAME?=Fuel OPNFV -export GIT_COMMITTER_EMAIL?=fuel@opnfv.org - -DOCKER_REPO := http://get.docker.com/builds/Linux/x86_64 -DOCKER_TAG := docker-latest diff --git a/build/docker/.gitignore b/build/docker/.gitignore deleted file mode 100644 index 2585910ce..000000000 --- a/build/docker/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.docker* -ubuntu-builder/Dockerfile diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile deleted file mode 100644 index ce0c595d4..000000000 --- a/build/docker/Dockerfile +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -FROM ubuntu:14.04 -ENV http_proxy INSERT_HTTP_PROXY -ENV https_proxy INSERT_HTTPS_PROXY -ENV no_proxy INSERT_NO_PROXY -ENV DEBIAN_FRONTEND noninteractive - -RUN apt-get update -RUN apt-get install -y software-properties-common python-software-properties \ - make python-setuptools python-all dpkg-dev debhelper ruby-json \ - fuseiso git genisoimage bind9-host wget curl lintian tmux lxc iptables \ - ca-certificates sudo apt-utils lsb-release dosfstools debmirror p7zip-full \ - build-essential ruby-dev rubygems-integration python-pip git rpm createrepo dpkg-dev \ - syslinux - -RUN gem install fpm -RUN pip install git+https://github.com/openstack/fuel-plugins -# fuel-infra key -RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BCE5CC461FA22B08 - -RUN echo "ALL ALL=NOPASSWD: ALL" > /etc/sudoers.d/open-sudo -RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC_PROXY RSYNC_CONNECT_PROG npm_config_registry\"" > /etc/sudoers.d/keep-proxies -# Keeping PWD is needed to build as root -RUN echo "Defaults env_keep += \"PWD\"" > /etc/sudoers.d/keep-pwd -# Keeping variables for ISO build -RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH\"" > /etc/sudoers.d/keep-mos -RUN chmod 0440 /etc/sudoers.d/open-sudo -RUN chmod 0440 /etc/sudoers.d/keep-proxies -RUN chmod 0440 /etc/sudoers.d/keep-pwd -RUN chmod 0440 /etc/sudoers.d/keep-mos -RUN chmod 4755 /bin/fusermount - -ADD ./setcontext /root/setcontext -RUN chmod +x /root/setcontext - -VOLUME /var/lib/docker diff --git a/build/docker/Makefile b/build/docker/Makefile deleted file mode 100644 index cdf4a359c..000000000 --- a/build/docker/Makefile +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -SHELL = /bin/bash -FILES = $(wildcard ubuntu-builder/*) runcontext -DOCKER_VER := $(shell [[ "$$(docker version --format '{{.Client.Version}}')" =~ ([0-9]+)\.([0-9]+) ]] && echo $$(( $${BASH_REMATCH[1]} * 100 + $${BASH_REMATCH[2]} ))) - -# Builder tag lifespan, force container rebuild X days after tag creation -DOCKER_KEEP = 1 days -DOCKER_IMG = opnfv.org/ubuntu-builder -DOCKER_TAG = ${DOCKER_IMG}:14.04 -# Shell contruct for checking our tag object did not expire -DOCKER_EXPIRED = D_TAG_BIRTH=`docker inspect --format="{{.Created}}" \ - ${DOCKER_TAG} 2>/dev/null`; test -z "$$D_TAG_BIRTH" -o `date +%s` -gt \ - `date -d "$$D_TAG_BIRTH +${DOCKER_KEEP}" +%s`; echo $$? - -# Don't use -f flag when docker is newer than 1.9 -# https://docs.docker.com/engine/deprecated/#/f-flag-on-docker-tag -ifeq ($(shell echo "$(DOCKER_VER)>109" | bc), 1) - tag_flags := -else - tag_flags := -f -endif - -.PHONY: all -all: .docker - -.dockercfg: $(FILES) - cp Dockerfile ubuntu-builder/Dockerfile - # Only add proxy ENVs where set in host - needed to pull the base Ubuntu image - test -n "${http_proxy}" && sed -i "s;INSERT_HTTP_PROXY;${http_proxy};" ubuntu-builder/Dockerfile || exit 0 - test -n "${https_proxy}" && sed -i "s;INSERT_HTTPS_PROXY;${https_proxy};" ubuntu-builder/Dockerfile || exit 0 - test -n "${no_proxy}" && sed -i "s;INSERT_NO_PROXY;${no_proxy};" ubuntu-builder/Dockerfile || exit 0 - test -n "${HTTP_PROXY}" && sed -i "s;INSERT_HTTP_PROXY;${HTTP_PROXY};" ubuntu-builder/Dockerfile || exit 0 - test -n "${HTTPS_PROXY}" && sed -i "s;INSERT_HTTPS_PROXY;${HTTPS_PROXY};" ubuntu-builder/Dockerfile || exit 0 - test -n "${NO_PROXY}" && sed -i "s;INSERT_NO_PROXY;${NO_PROXY};" ubuntu-builder/Dockerfile || exit 0 - sed -i '/INSERT_/d' ubuntu-builder/Dockerfile - touch $@ - -.docker: .dockercfg - @if test -f .cacheid -o "$(shell ${DOCKER_EXPIRED})" -eq "0"; then \ - /usr/bin/docker build --rm=true --no-cache=true \ - -t ${DOCKER_TAG} ubuntu-builder && \ - /usr/bin/docker tag ${tag_flags} ${DOCKER_TAG} ${DOCKER_IMG}; \ - else \ - echo "Docker: Tag '${DOCKER_TAG}' was created less than" \ - "${DOCKER_KEEP} ago, skipping re-build."; \ - fi - touch $@ - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -.PHONY: clean -clean: - rm -f .docker* ubuntu-builder/Dockerfile - -.PHONY: deepclean -deepclean: clean clean-cache - -############################################################################## -# Cache operations - only used when building through ci/build.sh -############################################################################## - -# NOTE: For docker, we only get/put cache to fingerprint build scripts and -# env vars, its cached data holds only an empty .docker file. - -# Create a unique hash to be used for getting and putting cache, based on: -# - ubuntu-builder Dockerfile (includes eventual proxy env vars), runcontext; -# - The contents of this Makefile -.cacheid: .dockercfg - sha1sum Makefile runcontext ubuntu-builder/* > .cachedata - cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: - rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - if test "$(shell ${DOCKER_EXPIRED})" -eq "0"; then \ - echo "Docker: Tag '${DOCKER_TAG}' missing" \ - "or older than ${DOCKER_KEEP}, not using it."; \ - else \ - touch .docker; \ - fi; \ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .docker | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/docker/README b/build/docker/README deleted file mode 100644 index e5ccdfab6..000000000 --- a/build/docker/README +++ /dev/null @@ -1,25 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -The makefile on this level is used for *creating* the Docker image -used for building in Ubuntu 12.04 context. - -There are two requirements before running make on this level: - -1. You need to have Docker installed on your system - -2. If in a corporate network, make sure to have a valid DNS config in - your /etc/default/docker, e.g: - - DOCKER_OPTS=" --dns=8.8.8.8 --dns=8.8.8.4" - -The top level makefile will refer to the "runcontext" file in order to -run the build process as the current user with the current working -directory available to the container. diff --git a/build/docker/runcontext b/build/docker/runcontext deleted file mode 100755 index b17571135..000000000 --- a/build/docker/runcontext +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/bash -set -e -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -# - -############################################################################ -# BEGIN of Exit handlers -# - -do_exit () { - CID=`cat $CID_FILE </dev/null` - rm -f $CID_FILE - rm -rf $CONTEXT_DIR - set +e - docker kill $CID > /dev/null 2>&1 - docker rm -f $CID > /dev/null 2>&1 - docker rmi -f $IID > /dev/null 2>&1 - set -e -} - -# -# End of Exit handlers -############################################################################ - -trap do_exit SIGINT SIGTERM EXIT - -context=$1 -shift -USER_ID=`id -u` -USER=`whoami` -GROUP_ID=`id -g` - -GITROOT=`git rev-parse --show-toplevel` -CID_FILE=`mktemp -u -t runcontext.XXXXXXXXXX` -CONTEXT_DIR=`mktemp -d ${GITROOT}/.docker_contextXXXXXX` - -# If RSYNC_CONNECT_PROG is used, we need to copy all of -# the SSH structure, should one of the keys need to be -# used. -if [ -n "$RSYNC_CONNECT_PROG" -a -x $HOME/.ssh ]; then - cp -rp $HOME/.ssh $CONTEXT_DIR - rm -f $CONTEXT_DIR/.ssh/known_hosts -else - mkdir $CONTEXT_DIR/.ssh -fi - -# Disable verification of unknown keys -cat >> $CONTEXT_DIR/.ssh/config <<EOF -StrictHostKeyChecking=no -EOF - -cat > $CONTEXT_DIR/Dockerfile <<EOF -FROM $context -$(env | egrep -i 'proxy|rsync' | sed 's/^/ENV /' | sed 's/=/ /') -RUN date || date -COPY .ssh $HOME/.ssh -RUN chown -R $USER_ID:$GROUP_ID $HOME/.ssh -RUN chown -R $USER_ID:$GROUP_ID $HOME -RUN chmod 700 $HOME/.ssh -RUN /root/setcontext $USER $USER_ID $GROUP_ID $HOME -EOF - -res=`docker build -q --force-rm $CONTEXT_DIR` -IID=`echo $res | sed 's/.* //'` - -# Handle proxy settings passed to the context -if env | grep -iq .*proxy; then - envfile="$(readlink -f $(dirname $0)/..)/environment.mk" - - test -n "$HTTP_PROXY" && my_http_proxy=$HTTP_PROXY - test -n "$http_proxy" && my_http_proxy=$http_proxy - - test -n "$HTTPS_PROXY" && my_https_proxy=$HTTPS_PROXY - test -n "$https_proxy" && my_https_proxy=$https_proxy - - test -n "$NO_PROXY" && my_no_proxy=$NO_PROXY - test -n "$no_proxy" && my_no_proxy=$no_proxy - - # Make sure to add the Docker socket in no_proxy - if [ -n "$my_no_proxy" ]; then - my_no_proxy+=",/var/run/docker.sock" - else - my_no_proxy="/var/run/docker.sock" - fi - - echo "Creating $envfile" - echo "# This file is automatically generated by runcontext, do not edit!" > $envfile - test -n "$my_http_proxy" && echo "export http_proxy=$my_http_proxy" >> $envfile - test -n "$my_https_proxy" && echo "export https_proxy=$my_https_proxy" >> $envfile - test -n "$my_no_proxy" && echo "export no_proxy=$my_no_proxy" >> $envfile - test -n "$RSYNC_PROXY" && echo "export RSYNC_PROXY=$RSYNC_PROXY" >> $envfile - test -n "$RSYNC_CONNECT_PROG" && echo "export RSYNC_CONNECT_PROG=$RSYNC_CONNECT_PROG" >> $envfile - echo "export npm_config_registry=http://registry.npmjs.org/" >> $envfile -else - echo "No need to generate environment.mk" - rm -f $envfile -fi - -# Evaluate the need for bind mounting the cache directory -if [ -n "$CACHEBASE" ]; then - if echo $CACHEBASE | grep -q '^file://'; then - CACHEMOUNT="-v $(echo $CACHEBASE | sed 's;file://;;'):$(echo $CACHEBASE | sed 's;file://;;')" - fi -fi - -# FIXME: TERM is required because: https://github.com/docker/docker/issues/9299 -RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \ - -e TERM=$TERM \ - -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE \ - -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT \ - -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \ - -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA \ - -u $USER_ID:$GROUP_ID -w $PWD \ - -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT" - -# Passing "debug" puts up an interactive bash shell -if [ "$1" == "debug" ]; then - echo command: docker run ${RUN_CONTEXT_OPT} $IID bash - docker run -i -t ${RUN_CONTEXT_OPT} $IID bash -else - echo command: docker run ${RUN_CONTEXT_OPT} $IID $@ - docker run -t ${RUN_CONTEXT_OPT} $IID $@ -fi - diff --git a/build/docker/ubuntu-builder/install_docker.sh b/build/docker/ubuntu-builder/install_docker.sh deleted file mode 100755 index 47c3a52ec..000000000 --- a/build/docker/ubuntu-builder/install_docker.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# 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 -############################################################################## - -# From prepare-build-env.sh of Fuel -# Check if docker is installed -if hash docker 2>/dev/null; then - echo "Docker binary found, checking if service is running..." - ps cax | grep docker > /dev/null - if [ $? -eq 0 ]; then - echo "Docker is running." - else - echo "Process is not running, starting it..." - sudo service docker start - fi -else - # Install docker repository - # Check that HTTPS transport is available to APT - if [ ! -e /usr/lib/apt/methods/https ]; then - sudo apt-get update - sudo apt-get -y install -y apt-transport-https - fi - # Add the repository to APT sources - echo deb http://mirror.yandex.ru/mirrors/docker/ docker main | sudo tee /etc/apt/sources.list.d/docker.list - # Import the repository key - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 - # Install docker - sudo apt-get update - sudo apt-get -y install lxc-docker-1.7.1 -fi diff --git a/build/docker/ubuntu-builder/setcontext b/build/docker/ubuntu-builder/setcontext deleted file mode 100755 index bc28994a9..000000000 --- a/build/docker/ubuntu-builder/setcontext +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -# -SETUSER=$1 -SETUID=$2 -SETGID=$3 -SETHOME=$4 - -getent group $SETUSER || /usr/sbin/groupadd --gid $SETGID $SETUSER -getent passwd $SETUSER || /usr/sbin/adduser --system --uid=$SETUID --gid=$SETGID --home $SETHOME --shell /bin/bash $SETUSER -/usr/sbin/usermod -a -G fuse $SETUSER -exit 0 diff --git a/build/f_isoroot/Makefile b/build/f_isoroot/Makefile deleted file mode 100644 index 0e203bbba..000000000 --- a/build/f_isoroot/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -# Add Fuel plugin build targets here -PLUGINS ?= f_ovs-nsh-dpdk-pluginbuild f_vsperfpluginbuild f_kvm-pluginbuild f_yardstick-pluginbuild f_collectd-ceilometer-pluginbuild f_congress-pluginbuild f_odlpluginbuild f_bgpvpn-pluginbuild f_tacker-pluginbuild f_onosfwpluginbuild -export PLUGINS - - -# If the BUILD_FUEL_PLUGINS environment variable is set, only build the plugins -# indicated therein. -ifdef BUILD_FUEL_PLUGINS -export BUILD_FUEL_PLUGINS -SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(BUILD_FUEL_PLUGINS) -$(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS)) -else -SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(PLUGINS) -endif -SUBCLEAN = $(addsuffix .clean,$(SUBDIRS)) - -.PHONY: all -all: $(SUBDIRS) - -.PHONY: $(SUBDIRS) -$(SUBDIRS): - @mkdir -p release - $(MAKE) -C $@ -f Makefile release - -.PHONY: clean $(SUBCLEAN) -clean: $(SUBCLEAN) - @rm -Rf release - -$(SUBCLEAN): %.clean: - $(MAKE) -C $* -f Makefile clean - -.PHONY: release -release: $(SUBDIRS) - @cp -Rvp release/* ../release/isoroot - -include cache.mk diff --git a/build/f_isoroot/README b/build/f_isoroot/README deleted file mode 100644 index eb54c0827..000000000 --- a/build/f_isoroot/README +++ /dev/null @@ -1,16 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -This is to (a) replace/patch existing Fuel ISO files as well -as adding new information directly into the ISO structure - -Please separate changes into "patches" and new content into -"additions". Both directories will be anchored at the ISO file -root. diff --git a/build/f_isoroot/cache.mk b/build/f_isoroot/cache.mk deleted file mode 100644 index 2df3b6bd1..000000000 --- a/build/f_isoroot/cache.mk +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################## -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################# -# Cache operations - only used when building through ci/build.sh -# -# This file is only meant for a top Makefile which is only calling its -# own SUBDIRS, without building any cachable artifact by itself. -############################################################################# - -# Call sub caches -SUBGETCACHE = $(addsuffix .getcache,$(SUBDIRS)) -$(SUBGETCACHE): %.getcache: - $(MAKE) -C $* -f Makefile get-cache - -SUBPUTCACHE = $(addsuffix .putcache,$(SUBDIRS)) -$(SUBPUTCACHE): %.putcache: - $(MAKE) -C $* -f Makefile put-cache - -SUBCLEANCACHE = $(addsuffix .cleancache,$(SUBDIRS)) -$(SUBCLEANCACHE): %.cleancache: - $(MAKE) -C $* -f Makefile clean-cache - -.PHONY: get-cache -get-cache: $(SUBGETCACHE) - -.PHONY: put-cache -put-cache: $(SUBPUTCACHE) - -.PHONY: clean-cache -clean-cache: $(SUBCLEANCACHE) diff --git a/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile b/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile deleted file mode 100644 index a236b63b4..000000000 --- a/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile +++ /dev/null @@ -1,97 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - - -.PHONY: all -all: .bgpvpnbuild - -.PHONY: clean -clean: - @rm -f .bgpvpnbuild ../release/opnfv/bgpvpn*.rpm bgpvpn*.rpm - @rm -f $(BUILD_BASE)/gitinfo_bgpvpnplugin.txt gitinfo_bgpvpnplugin.txt - -.PHONY: release -release:.bgpvpnbuild - @rm -f ../release/opnfv/bgpvpn*.rpm - @mkdir -p ../release/bgpvpn - @cp bgpvpn*.rpm ../release/opnfv/ - cp gitinfo_bgpvpnplugin.txt $(BUILD_BASE) - -.bgpvpnbuild: - # The python packages build into deb by this plugin require a newer - # setuptools install a newer setuptools version until the container - # where this is run is bumped to ubuntu 16.04. - # --user is used because there is already a setuptools installation - # managed by apt. - pip install setuptools --upgrade --user - rm -rf fuel-plugin-bgpvpn - git clone $(BGPVPN_REPO) - cd fuel-plugin-bgpvpn; \ - git checkout $(BGPVPN_BRANCH); \ - if [ ! -z $(BGPVPN_CHANGE) ]; then \ - git fetch $(BGPVPN_REPO) $(BGPVPN_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - fpb --debug --build fuel-plugin-bgpvpn/ - mv fuel-plugin-bgpvpn/bgpvpn*.rpm . - $(REPOINFO) -r . > gitinfo_bgpvpnplugin.txt - rm -rf fuel-plugin-bgpvpn - touch .bgpvpnbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(BGPVPN_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(BGPVPN_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(BGPVPN_REPO) $(BGPVPN_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(BGPVPN_REPO) $(BGPVPN_BRANCH) > .cachedata; \ - fi - sha1sum Makefile >> .cachedata - sha1sum config.mk >> .cachedata - echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .bgpvpnbuild bgpvpn*.rpm gitinfo_bgpvpnplugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_bgpvpn-pluginbuild/config.mk b/build/f_isoroot/f_bgpvpn-pluginbuild/config.mk deleted file mode 100644 index cd005e82f..000000000 --- a/build/f_isoroot/f_bgpvpn-pluginbuild/config.mk +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -BGPVPN_BRANCH?=master -BGPVPN_REPO?="https://github.com/openstack/fuel-plugin-bgpvpn.git" -BGPVPN_CHANGE?=cdf0ee0f60e417f37810d6c0074cd1eed4701bf5 diff --git a/build/f_isoroot/f_bootstrap/Makefile b/build/f_isoroot/f_bootstrap/Makefile deleted file mode 100644 index 1c08405ab..000000000 --- a/build/f_isoroot/f_bootstrap/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -.PHONY: all -all: - @mkdir -p release/opnfv/bootstrap/pre.d - @mkdir -p release/opnfv/bootstrap/post.d - @mkdir -p release/usr/local/sbin - @cp pre-scripts/* release/opnfv/bootstrap/pre.d - @cp post-scripts/* release/opnfv/bootstrap/post.d - -.PHONY: clean -clean: - @rm -rf release - -.PHONY: release -release:all - @cp -Rvp release/* ../release - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @echo "clean-cache not implemented" - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: - @echo "get-cache not implemented" - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: - @echo "put-cache not implemented" diff --git a/build/f_isoroot/f_bootstrap/README b/build/f_isoroot/f_bootstrap/README deleted file mode 100644 index 5da954ca4..000000000 --- a/build/f_isoroot/f_bootstrap/README +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -This function modifies the adds hooks to the beginning and end of -/usr/local/sbin/bootstrap_admin_nodes.sh, which is run as the -last post step from ks.cfg - -This enables other functions to place scripts into two directories -run either at the beginning or the end of the bootstrap procedure: - - /opt/opnfv/bootstrap/pre.d - /opt/opnfv/bootstrap/post.d - -These will be run in lexical order at pre or post. - -CI note: Using pre.d, it would be possible to "inject" a pre-defined -astute.yaml for Fuel. diff --git a/build/f_isoroot/f_bootstrap/post-scripts/00_post_example.sh b/build/f_isoroot/f_bootstrap/post-scripts/00_post_example.sh deleted file mode 100755 index 4dfeca58e..000000000 --- a/build/f_isoroot/f_bootstrap/post-scripts/00_post_example.sh +++ /dev/null @@ -1,14 +0,0 @@ -#/bin/sh -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -date -echo "This is an example file run at post-bootstrap." -exit 0 diff --git a/build/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh b/build/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh deleted file mode 100755 index 431577cba..000000000 --- a/build/f_isoroot/f_bootstrap/post-scripts/03_install_repo.sh +++ /dev/null @@ -1,29 +0,0 @@ -#/bin/sh -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -echo "Installing pre-build repo" -if [ ! -d /opt/opnfv/nailgun ]; then - echo "Error - found no repo!" - exit 1 -fi - -mkdir -p /var/www/nailgun -mv /opt/opnfv/nailgun/* /var/www/nailgun -if [ $? -ne 0 ]; then - echo "Error moving repos to their correct location!" - exit 1 -fi -rmdir /opt/opnfv/nailgun -if [ $? -ne 0 ]; then - echo "Error removing /opt/opnfv/nailgun directory!" - exit 1 -fi -echo "Done installing pre-build repo" diff --git a/build/f_isoroot/f_bootstrap/pre-scripts/00_pre_example.sh b/build/f_isoroot/f_bootstrap/pre-scripts/00_pre_example.sh deleted file mode 100755 index 3eaffa523..000000000 --- a/build/f_isoroot/f_bootstrap/pre-scripts/00_pre_example.sh +++ /dev/null @@ -1,14 +0,0 @@ -#/bin/sh -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -date -echo "This is an example file run at pre-bootstrap." -exit 0 diff --git a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile deleted file mode 100644 index bb4b19cc8..000000000 --- a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile +++ /dev/null @@ -1,92 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# ruijing.guo@intel.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - -.PHONY: all -all: .barometer - -.PHONY: clean -clean: - @rm -f .barometer ../release/opnfv/fuel-plugin-collectd-ceilometer-*.rpm fuel-plugin-collectd-ceilometer-*.rpm - @rm -f $(BUILD_BASE)/gitinfo_collectd-ceilometer-plugin.txt gitinfo_collectd-ceilometer-plugin.txt - -.PHONY: release -release:.barometer - @rm -f ../release/opnfv/fuel-plugin-collectd-ceilometer-*.rpm - @mkdir -p ../release/opnfv - @cp fuel-plugin-collectd-ceilometer*.rpm ../release/opnfv/ - cp gitinfo_collectd-ceilometer-plugin.txt $(BUILD_BASE) - -.barometer: - @rm -rf barometer - ../../docker/ubuntu-builder/install_docker.sh - git clone $(COLLECTD_CEILOMETER_REPO) - cd barometer; \ - git checkout $(COLLECTD_CEILOMETER_BRANCH); \ - if [ ! -z $(COLLECTD_CEILOMETER_CHANGE) ]; then \ - git fetch $(COLLECTD_CEILOMETER_REPO) $(COLLECTD_CEILOMETER_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - fpb --debug --build barometer/src/fuel-plugin - @mv barometer/src/fuel-plugin/fuel-plugin-collectd-ceilometer*.rpm . - $(REPOINFO) -r . > gitinfo_collectd-ceilometer-plugin.txt - @rm -rf barometer - @touch .barometer - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(COLLECTD_CEILOMETER_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(COLLECTD_CEILOMETER_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(COLLECTD_CEILOMETER_REPO) $(COLLECTD_CEILOMETER_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(COLLECTD_CEILOMETER_REPO) $(COLLECTD_CEILOMETER_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .barometer fuel-plugin-collectd-ceilometer*.rpm gitinfo_collectd-ceilometer-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/config.mk b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/config.mk deleted file mode 100644 index 334905f02..000000000 --- a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/config.mk +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# ruijing.guo@intel.com -# 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 -############################################################################## - -COLLECTD_CEILOMETER_BRANCH?=stable/danube -COLLECTD_CEILOMETER_REPO?=http://gerrit.opnfv.org/gerrit/barometer -COLLECTD_CEILOMETER_CHANGE?=5649793d2037d6f26211be4035e28842ebb3e737 diff --git a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/packages.yaml b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/packages.yaml deleted file mode 100644 index 1ba7201f4..000000000 --- a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/packages.yaml +++ /dev/null @@ -1,9 +0,0 @@ -############################################################################## -# Copyright (c) 2016 OPNFV. -# 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: - - "collectd" diff --git a/build/f_isoroot/f_congress-pluginbuild/Makefile b/build/f_isoroot/f_congress-pluginbuild/Makefile deleted file mode 100644 index 51167acd9..000000000 --- a/build/f_isoroot/f_congress-pluginbuild/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Mirantis Inc and others. -# fzhadaev@mirantis.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - - -.PHONY: all -all: .congressbuild - -.PHONY: clean -clean: - @rm -f .congressbuild ../release/opnfv/congress*.rpm congress*.rpm - @rm -f $(BUILD_BASE)/gitinfo_congressplugin.txt gitinfo_congressplugin.txt - -.PHONY: release -release:.congressbuild - @rm -f ../release/opnfv/congress*.rpm - @mkdir -p ../release/congress - @cp congress*.rpm ../release/opnfv/ - cp gitinfo_congressplugin.txt $(BUILD_BASE) - -.congressbuild: - rm -rf fuel-plugin-congress - git clone $(CONGRESS_REPO) - cd fuel-plugin-congress; \ - git checkout $(CONGRESS_BRANCH); \ - if [ ! -z $(CONGRESS_CHANGE) ]; then \ - git fetch $(CONGRESS_REPO) $(CONGRESS_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - fpb --debug --build fuel-plugin-congress/ - @mv fuel-plugin-congress/congress*.rpm . - $(REPOINFO) -r . > gitinfo_congressplugin.txt - @rm -rf fuel-plugin-congress - @touch .congressbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(CONGRESS_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(CONGRESS_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(CONGRESS_REPO) $(CONGRESS_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(CONGRESS_REPO) $(CONGRESS_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .congressbuild congress*.rpm gitinfo_congressplugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_congress-pluginbuild/config.mk b/build/f_isoroot/f_congress-pluginbuild/config.mk deleted file mode 100644 index 5c241a127..000000000 --- a/build/f_isoroot/f_congress-pluginbuild/config.mk +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Mirantis Inc and others. -# fzhadaev@mirantis.com -# 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 -############################################################################## - -CONGRESS_BRANCH?=master -CONGRESS_REPO?="https://github.com/openstack/fuel-plugin-congress" -CONGRESS_CHANGE?=adfa2db62988649219d64bd53746f2635d95aa43 diff --git a/build/f_isoroot/f_isolinux/Makefile b/build/f_isoroot/f_isolinux/Makefile deleted file mode 100644 index f3e09b234..000000000 --- a/build/f_isoroot/f_isolinux/Makefile +++ /dev/null @@ -1,49 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -.PHONY: all -all: isolinux.cfg.iso - @mkdir -p release/isolinux - grep -q OpenStack_Fuel isolinux.cfg.iso - sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" isolinux.cfg.iso > isolinux.cfg - @cp isolinux.cfg release/isolinux/isolinux.cfg - @cp isolinux.cfg.iso release/isolinux/isolinux.cfg.orig - -isolinux.cfg.iso: - 7z -so x $(ISOCACHE) isolinux/isolinux.cfg > isolinux.cfg.iso - -.PHONY: clean -clean: - @rm -rf release isolinux.cfg.iso isolinux.cfg - -.PHONY: release -release: all - @cp -Rvp release/* ../release - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @echo "clean-cache not implemented" - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: - @echo "get-cache not implemented" - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: - @echo "put-cache not implemented" diff --git a/build/f_isoroot/f_kscfg/Makefile b/build/f_isoroot/f_kscfg/Makefile deleted file mode 100644 index cfd433f8d..000000000 --- a/build/f_isoroot/f_kscfg/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -.PHONY: all -all: ks.cfg.iso - @mkdir -p release - grep -q OpenStack_Fuel ks.cfg.iso - sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" ks.cfg.iso > ks.cfg - /usr/bin/patch -p0 < ks.cfg.patch - @cp ks.cfg.iso release/ks.cfg.orig - @cp ks.cfg release/ks.cfg - -ks.cfg.iso: - 7z -so x $(ISOCACHE) ks.cfg > ks.cfg.iso - -.PHONY: clean -clean: - @rm -rf release ks.cfg.iso ks.cfg - -.PHONY: release -release: all - @cp -Rvp release/* ../release - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @echo "clean-cache not implemented" - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: - @echo "get-cache not implemented" - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: - @echo "put-cache not implemented" diff --git a/build/f_isoroot/f_kscfg/README b/build/f_isoroot/f_kscfg/README deleted file mode 100644 index c85efde77..000000000 --- a/build/f_isoroot/f_kscfg/README +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -This function modifies the ks.cfg of the Fuel master to -make copy whatever is in the top level opnfv directory -of the ISO (populated by, for example, f_configfrontend) to -/opt/opnfv. In the end this is where the installation -parts will evolve. - -This is also the place to force the installation to overwrite -the disk (set forceformat="yes" instead of "no"). diff --git a/build/f_isoroot/f_kscfg/ks.cfg.patch b/build/f_isoroot/f_kscfg/ks.cfg.patch deleted file mode 100644 index a6840e479..000000000 --- a/build/f_isoroot/f_kscfg/ks.cfg.patch +++ /dev/null @@ -1,31 +0,0 @@ -*** /dev/null 2016-04-26 10:10:11.481587709 +0200 ---- ks.cfg 2016-04-26 10:10:11.481587709 +0200 -*************** -*** 579,584 **** ---- 579,592 ---- - - EOF - -+ ######### OPNFV addition BEGIN ############ -+ # Copy data into /opt/opnfv -+ # TODO: This ought to be a package instead! -+ mkdir -p /opt/opnfv -+ cp -r ${SOURCE}/opnfv /opt -+ cp ${SOURCE}/gitinfo.txt / -+ ######### OPNFV addition END ############ -+ - # Unmounting source - umount -f ${SOURCE} - rm -rf ${SOURCE} -*************** -*** 647,650 **** - /etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} > \ - /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${adminif} - fi -! %end -\ No newline at end of file ---- 655,658 ---- - /etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} > \ - /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${adminif} - fi -! %end diff --git a/build/f_isoroot/f_kvm-pluginbuild/Makefile b/build/f_isoroot/f_kvm-pluginbuild/Makefile deleted file mode 100644 index 81309ef87..000000000 --- a/build/f_isoroot/f_kvm-pluginbuild/Makefile +++ /dev/null @@ -1,92 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - -.PHONY: all -all: .kvmbuild - -.PHONY: clean -clean: - @rm -f .kvmbuild ../release/opnfv/fuel-plugin-kvm*.rpm fuel-plugin-kvm*.rpm - @rm -f $(BUILD_BASE)/gitinfo_kvm-plugin.txt gitinfo_kvm-plugin.txt - -.PHONY: release -release:.kvmbuild - @rm -f ../release/opnfv/fuel-plugin-kvm*.rpm - @mkdir -p ../release/opnfv - @cp fuel-plugin-kvm*.rpm ../release/opnfv/ - cp gitinfo_kvm-plugin.txt $(BUILD_BASE) - -.kvmbuild: - @rm -rf kvmfornfv - ../../docker/ubuntu-builder/install_docker.sh - git clone $(KVMFORNFV_REPO) - cd kvmfornfv; \ - git checkout $(KVMFORNFV_BRANCH); \ - if [ ! -z $(KVMFORNFV_CHANGE) ]; then \ - git fetch $(KVMFORNFV_REPO) $(KVMFORNFV_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - cd kvmfornfv/fuel-plugin; \ - INCLUDE_DEPENDENCIES=true fpb --debug --build ./ - @mv kvmfornfv/fuel-plugin/fuel-plugin-kvm*.rpm . - $(REPOINFO) -r . > gitinfo_kvm-plugin.txt - @rm -rf kvmfornfv - @touch .kvmbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(KVMFORNFV_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(KVMFORNFV_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(KVMFORNFV_REPO) $(KVMFORNFV_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(KVMFORNFV_REPO) $(KVMFORNFV_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .kvmbuild fuel-plugin-kvm*.rpm gitinfo_kvm-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_kvm-pluginbuild/config.mk b/build/f_isoroot/f_kvm-pluginbuild/config.mk deleted file mode 100644 index 19693df25..000000000 --- a/build/f_isoroot/f_kvm-pluginbuild/config.mk +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -KVMFORNFV_BRANCH?=master -KVMFORNFV_REPO?=https://gerrit.opnfv.org/gerrit/kvmfornfv -KVMFORNFV_CHANGE?=b6b08d2a80b2df28e496ce87705593ed59b282a3 diff --git a/build/f_isoroot/f_odlpluginbuild/Makefile b/build/f_isoroot/f_odlpluginbuild/Makefile deleted file mode 100644 index c0ebba4d7..000000000 --- a/build/f_isoroot/f_odlpluginbuild/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# mskalski@mirantis.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -include config.mk - -.PHONY: all -all: .odlbuild - -.PHONY: clean -clean: - @rm -f .odlbuild ../release/opnfv/opendaylight*.rpm opendaylight*.rpm - @rm -f $(BUILD_BASE)/gitinfo_odlplugin.txt gitinfo_odlplugin.txt - @rm -rf fuel-plugins - -.PHONY: release -release:.odlbuild - @rm -f ../release/opnfv/opendaylight*.rpm - @mkdir -p ../release/opnfv - @cp opendaylight*.rpm ../release/opnfv/ - cp gitinfo_odlplugin.txt $(BUILD_BASE) -.odlbuild: - rm -rf fuel-plugin-opendaylight - ../../docker/ubuntu-builder/install_docker.sh - git clone -b $(FUEL_PLUGIN_ODL_BRANCH) $(FUEL_PLUGIN_ODL_REPO) - cd fuel-plugin-opendaylight; \ - if [ -n $(FUEL_PLUGIN_ODL_CHANGE) ]; then \ - git checkout $(FUEL_PLUGIN_ODL_CHANGE); \ - fi - fpb --debug --build fuel-plugin-opendaylight/ - mv fuel-plugin-opendaylight/opendaylight*.rpm . - $(REPOINFO) -r . > gitinfo_odlplugin.txt - rm -rf fuel-plugin-opendaylight - touch .odlbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################## -# Cache operations - only used when building through ci/build.sh -############################################################################## - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(FUEL_PLUGIN_ODL_BRANCH) -# - The contents of this Makefile -.cacheid: - if [ -n $(FUEL_PLUGIN_ODL_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(FUEL_PLUGIN_ODL_REPO) $(FUEL_PLUGIN_ODL_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(FUEL_PLUGIN_ODL_REPO) $(FUEL_PLUGIN_ODL_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .odlbuild opendaylight*.rpm gitinfo_odlplugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_odlpluginbuild/config.mk b/build/f_isoroot/f_odlpluginbuild/config.mk deleted file mode 100644 index 6d176fb75..000000000 --- a/build/f_isoroot/f_odlpluginbuild/config.mk +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -FUEL_PLUGIN_ODL_BRANCH ?= master -FUEL_PLUGIN_ODL_CHANGE ?= 32b7edbde866b6a4c1c61e674ddf01a93dd010a2 -FUEL_PLUGIN_ODL_REPO ?= https://github.com/openstack/fuel-plugin-opendaylight.git - -export OPNFV_BUILD?=true -export ODL_VERSIONS?=5.0.0.1 5.2.0.1 diff --git a/build/f_isoroot/f_onosfwpluginbuild/Makefile b/build/f_isoroot/f_onosfwpluginbuild/Makefile deleted file mode 100644 index 02ba02951..000000000 --- a/build/f_isoroot/f_onosfwpluginbuild/Makefile +++ /dev/null @@ -1,90 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - -.PHONY: all -all: .onosbuild - -.PHONY: clean -clean: - @rm -f .onosbuild ../release/opnfv/onos*.rpm onos*.rpm - @rm -f $(BUILD_BASE)/gitinfo_onos-plugin.txt gitinfo_onos-plugin.txt - -.PHONY: release -release:.onosbuild - @rm -f ../release/opnfv/onos*.rpm - @mkdir -p ../release/opnfv - @cp onos*.rpm ../release/opnfv/ - cp gitinfo_onos-plugin.txt $(BUILD_BASE) - -.onosbuild: - @rm -rf fuel-plugin-onos - git clone $(ONOS_REPO) - cd fuel-plugin-onos; \ - git checkout $(ONOS_BRANCH); \ - if [ ! -z $(ONOS_CHANGE) ]; then \ - git fetch $(ONOS_REPO) $(ONOS_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin-onos/ - @mv fuel-plugin-onos/onos*.rpm . - $(REPOINFO) -r . > gitinfo_onos-plugin.txt - @rm -rf fuel-plugin-onos - @touch .onosbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(ONOS_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(ONOS_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(ONOS_REPO) $(ONOS_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(ONOS_REPO) $(ONOS_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .onosbuild onos*.rpm gitinfo_onos-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_onosfwpluginbuild/config.mk b/build/f_isoroot/f_onosfwpluginbuild/config.mk deleted file mode 100644 index 5f47804cd..000000000 --- a/build/f_isoroot/f_onosfwpluginbuild/config.mk +++ /dev/null @@ -1,11 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -ONOS_BRANCH=master -ONOS_REPO=git://git.openstack.org/openstack/fuel-plugin-onos diff --git a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile deleted file mode 100644 index 2d0d202af..000000000 --- a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - -.PHONY: all -all: .ovsbuild - -.PHONY: clean -clean: - @rm -f .ovsbuild ../release/opnfv/fuel-plugin-ovs-*.rpm fuel-plugin-ovs-*.rpm - @rm -f $(BUILD_BASE)/gitinfo_ovs-nsh-dpdk-plugin.txt gitinfo_ovs-nsh-dpdk-plugin.txt - -.PHONY: release -release:.ovsbuild - @rm -f ../release/opnfv/fuel-plugin-ovs-*.rpm - @mkdir -p ../release/opnfv - @cp fuel-plugin-ovs*.rpm ../release/opnfv/ - cp gitinfo_ovs-nsh-dpdk-plugin.txt $(BUILD_BASE) - -.ovsbuild: - @rm -rf fuel-plugin-ovs - ../../docker/ubuntu-builder/install_docker.sh - git clone $(OVS_NSH_DPDK_REPO) - cd fuel-plugin-ovs; \ - git checkout $(OVS_NSH_DPDK_BRANCH); \ - if [ ! -z $(OVS_NSH_DPDK_CHANGE) ]; then \ - git fetch $(OVS_NSH_DPDK_REPO) $(OVS_NSH_DPDK_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin-ovs/ - @mv fuel-plugin-ovs/fuel-plugin-ovs*.rpm . - $(REPOINFO) -r . > gitinfo_ovs-nsh-dpdk-plugin.txt - @rm -rf fuel-plugin-ovs - @touch .ovsbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(OVS_NSH_DPDK_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(OVS_NSH_DPDK_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(OVS_NSH_DPDK_REPO) $(OVS_NSH_DPDK_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(OVS_NSH_DPDK_REPO) $(OVS_NSH_DPDK_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .ovsbuild fuel-plugin-ovs*.rpm gitinfo_ovs-nsh-dpdk-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/config.mk b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/config.mk deleted file mode 100644 index 9de705aae..000000000 --- a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/config.mk +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -OVS_NSH_DPDK_BRANCH?=stable/10.0 -OVS_NSH_DPDK_REPO?=https://review.openstack.org/openstack/fuel-plugin-ovs -OVS_NSH_DPDK_CHANGE?=a77ce892047fe1ca257bd199d0abf2d2a046c8a3 diff --git a/build/f_isoroot/f_repobuild/.gitignore b/build/f_isoroot/f_repobuild/.gitignore deleted file mode 100644 index 09baca85d..000000000 --- a/build/f_isoroot/f_repobuild/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -packetary -fuel-web -nailgun -opnfv_config diff --git a/build/f_isoroot/f_repobuild/Makefile b/build/f_isoroot/f_repobuild/Makefile deleted file mode 100644 index c61d1adf5..000000000 --- a/build/f_isoroot/f_repobuild/Makefile +++ /dev/null @@ -1,88 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB, Enea AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# Alexandru.Avadanii@enea.com -# 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 -############################################################################## - -SHELL := /bin/bash -TOP := $(shell pwd) - -include ../../config.mk -include config.mk - -export MOS_VERSION -export MIRROR_UBUNTU_OPNFV_PATH:=$(TOP)/nailgun/mirrors/ubuntu - -.PHONY: all -all: nailgun - -nailgun: - sudo apt-get install -y createrepo git libxml2-dev libxslt1-dev \ - python-dev zlib1g-dev - rm -Rf nailgun packetary opnfv_config && mkdir opnfv_config - # We will analyze fuel-web's fixture files for package lists - ln -sf ${F_SUBMOD_DIR}/fuel-web fuel-web - # Same for fuel-agent's bootstrap package list - ln -sf ${F_SUBMOD_DIR}/fuel-agent fuel-agent - git clone --quiet $(PACKETARY_REPO) - if [ -n $(PACKETARY_COMMIT) ]; then \ - git -C packetary checkout $(PACKETARY_COMMIT); \ - fi - sudo pip install -U -r ./packetary/requirements.txt - sudo pip install -U ./packetary - # Handle config and mirror build in one place - ./opnfv_mirror_ubuntu.py - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -.PHONY: clean -clean: - @rm -rf ../release/opnfv/nailgun nailgun packetary fuel-web opnfv_config - -.PHONY: release -release:nailgun - @rm -Rf ../release/opnfv/nailgun - @mkdir -p ../release/opnfv - @cp -Rp nailgun ../release/opnfv/nailgun - -############################################################################ -# Cache operations - only used when building through ci/build.sh -############################################################################ - -# Create a unique hash to be used for getting and putting cache, based on: -# - Year and week (causing the cache to be rebuilt weekly) -# - The contents of this Makefile + all sh,mk,py,yaml files in CWD -# - repo packages fingerprint -# - repo arch list -.cacheid: - date +"Repocache %G%V" > .cachedata - sha1sum Makefile *.{sh,mk,py,yaml} >> .cachedata - $(CACHETOOL) packages >> .cachedata - echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - nailgun | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_repobuild/config.mk b/build/f_isoroot/f_repobuild/config.mk deleted file mode 100644 index 68101d6ec..000000000 --- a/build/f_isoroot/f_repobuild/config.mk +++ /dev/null @@ -1,23 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Ericsson AB, Enea AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# Alexandru.Avadanii@enea.com -# 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 -############################################################################## - -# Use a recent master commit, since tags/branches are not yet mature -export PACKETARY_REPO?=https://github.com/openstack/packetary -export PACKETARY_COMMIT?=c3c2069e2ec46b35eb342386efbf366bb6340027 - -# arm64 Ubuntu mirror is separated from archive.ubuntu.com -export MIRROR_UBUNTU_URL_arm64=http://ports.ubuntu.com/ubuntu-ports/ -export MIRROR_UBUNTU_ROOT_arm64=ubuntu-ports - -# Merge all local mirror repo components/section into single "main" -# NOTE: When changing this, make sure to also update all consumer config, like: -# - fuel-menu/fuelmenu/settings.yaml -export MIRROR_UBUNTU_MERGE=true diff --git a/build/f_isoroot/f_repobuild/opnfv_config.yaml b/build/f_isoroot/f_repobuild/opnfv_config.yaml deleted file mode 100644 index bf3913cc4..000000000 --- a/build/f_isoroot/f_repobuild/opnfv_config.yaml +++ /dev/null @@ -1,174 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Enea AB and others. -# Alexandru.Avadanii@enea.com -# 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 -############################################################################## - -# REPO definitions - -# Based on old fuel-mirror data [1], adapted for OPNFV and packetary. -# NOTE: 'uri' field will be added by opnfv_mirror_ubuntu.py from ENV. -# [1] https://github.com/openstack/fuel-mirror/blob/stable/mitaka/ -# contrib/fuel_mirror/data/ubuntu.yaml - -# Main is a required parameter which defines what repository will be used -# for images creation and that mirror should contain all packages for minimal -# system creation. -groups: - ubuntu: - - name: "ubuntu" - main: true - suite: "xenial" - section: - - "main" - - "multiverse" - - "restricted" - - "universe" - type: "deb" - priority: null - - - name: "ubuntu-updates" - suite: "xenial-updates" - section: - - "main" - - "multiverse" - - "restricted" - - "universe" - type: "deb" - priority: null - - - name: "ubuntu-security" - suite: "xenial-security" - section: - - "main" - - "multiverse" - - "restricted" - - "universe" - type: "deb" - priority: null - - mos: - - name: "mos" - suite: "mos$mos_version" - section: - - "main" - - "restricted" - type: "deb" - priority: 1000 - - - name: "mos-updates" - suite: "mos$mos_version-updates" - section: - - "main" - - "restricted" - type: "deb" - priority: 1000 - - - name: "mos-security" - suite: "mos$mos_version-security" - section: - - "main" - - "restricted" - type: "deb" - priority: 1000 - - - name: "mos-holdback" - suite: "mos$mos_version-holdback" - section: - - "main" - - "restricted" - type: "deb" - priority: 1000 - -# PACKAGES - -# This section lists packages that should be present in the local Ubuntu mirror, -# but are not direct dependencies of any other packages from MOS or Ubuntu. -# e.g.: additional kernels, bootloaders etc. - -packages: - - name: "vgabios" -# Packages are required to build bootstrap images for a system. -# The mirror should contiain such packages in addition to local mirror. - - name: "acpi-support" - - name: "anacron" - - name: "aptitude" - - name: "atop" - - name: "acct" - - name: "bash-completion" - - name: "bc" - - name: "build-essential" - - name: "ceph" - - name: "cloud-init" - - name: "conntrackd" - - name: "cpu-checker" - - name: "cpufrequtils" - - name: "debconf-utils" - - name: "devscripts" - - name: "fping" - - name: "galera-3" - - name: "git" - - name: "grub-pc" - - name: "htop" - - name: "hwloc" - - name: "ifenslave" - - name: "iperf" - - name: "iptables-persistent" - - name: "irqbalance" - - name: "language-pack-en" - - name: "libapache2-mod-fastcgi" - - name: "libnss3-tools" - - name: "linux-headers-generic-lts-xenial" - - name: "linux-image-generic-lts-xenial" - - name: "live-boot" - - name: "livecd-rootfs" - - name: "mc" - - name: "memcached" - - name: "mongodb-server" - - name: "monit" - - name: "msmtp-mta" - - name: "multipath-tools" - - name: "multipath-tools-boot" - - name: "nginx" - - name: "ntp" - - name: "openssh-server" - - name: "pcs" - - name: "percona-toolkit" - - name: "percona-xtrabackup" - - name: "pm-utils" - - name: "postfix" - - name: "puppet" - - name: "python-lesscpy" - - name: "python-mysqldb" - - name: "python-pip" - - name: "radosgw" - - name: "rbd-fuse" - - name: "rsyslog-gnutls" - - name: "rsyslog-relp" - - name: "screen" - - name: "squashfs-tools" - - name: "swift-plugin-s3" - - name: "sysfsutils" - - name: "sysstat" - - name: "telnet" - - name: "tmux" - - name: "traceroute" - - name: "ubuntu-standard" - - name: "vim" - - name: "virt-what" - - name: "xinetd" - - name: "xmlstarlet" - - name: "tftpd-hpa" - - name: "syslinux" - -# OPNFV BLACKLIST - -# Packetary's dependency solving mechanism brings in more than one alternative -# For example, "Depends: upstart | systemd-sysv" brings both packages, which -# leads to debootstrap using "upstart" (1st option available in local repo). - -opnfv_blacklist: - - name: "upstart" diff --git a/build/f_isoroot/f_repobuild/opnfv_mirror_ubuntu.py b/build/f_isoroot/f_repobuild/opnfv_mirror_ubuntu.py deleted file mode 100755 index 7c383639e..000000000 --- a/build/f_isoroot/f_repobuild/opnfv_mirror_ubuntu.py +++ /dev/null @@ -1,280 +0,0 @@ -#!/usr/bin/env python -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB, Mirantis Inc., Enea AB and others. -# mskalski@mirantis.com -# Alexandru.Avadanii@enea.com -# 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 -############################################################################## - -"""Build multiarch partial local Ubuntu mirror using packetary""" - -############################################################################## -# Design quirks / workarounds: -# 1. Fuel-agent uses `debootstrap` to build bootstrap and target chroots from -# the local mirror; which only uses the "main" component from the first -# repository, i.e. does not include "updates"/"security". -# In order to fullfill all debootstrap dependencies in "main" repo, we will -# do an extra packetary run using a reduced scope: -# - only "main" component of the first mirror; -# - reduced package dependency list (without MOS/OPNFV plugin deps). -# 2. If repo structure is not mandatory to be in sync with official mirrors, -# we can mitigate the issue by "merging" all repo-components into a single -# "main". -############################################################################## -# Mirror build steps (for EACH architecture in UBUNTU_ARCH): -# 1. Collect bootstrap package deps from fuel-agent's <settings.yaml.sample>; -# 2. Collect all fixture release packages from fuel-web's <openstack.yaml>; -# 3. Parse new "opnfv_config.yaml" list of packages (from old fuel-mirror); -# 4. Inherit enviroment variable(s) for mirror URLs, paths etc. -# - Allow arch-specific overrides for each env var; -# 5. Mirror config is defined based on common config + OPNFV overrides; -# - Convert old configuration format to packetary style where needed; -# 6. Package lists are defined based on common config + OPNFV deps; -# - Keep track of "main" packages separately, required by debootstrap; -# 7. Clone/update all mirror components; -# 8. IF mirror merging is disabled: -# - Clone/update "main" mirror component (fix missing debootstrap deps); -# 9. IF mirror merging is enabled: -# - Use `dpkg-scanpackages` to filter out old versions of duplicate pkgs; -# - Run `packetary create` on the set of downloaded packages, merging -# them on the fly into a single-component mirror; -############################################################################## - -from copy import deepcopy -import os -import shutil -import sys -import yaml -from contextlib import contextmanager -from cStringIO import StringIO -from packetary.cli.app import main - -@contextmanager -def capture_stdout(output): - """Context manager for capturing stdout""" - stdout = sys.stdout - sys.stdout = output - yield - sys.stdout = stdout - -# FIXME: Find a better approach for eliminating duplicate logs than this -def force_logger_reload(): - """Force logger reload (ugly hack to prevent log duplication)""" - for mod in sys.modules.keys(): - if mod.startswith('logging'): - try: - reload(sys.modules[mod]) - except: - pass - -def get_unres_pkgs(architecture, cfg_mirror): - """Determine missing package dependecies for a mirror defition""" - unresolved_pkgs = list() - packetary_output = StringIO() - with capture_stdout(packetary_output): - main('unresolved -a {0} -r {1} -c name version --sep ;' - .format(_ARCH[architecture], cfg_mirror).split(' ')) - for dep_pkg in packetary_output.getvalue().splitlines(): - if dep_pkg.startswith('#'): - continue - dep = dep_pkg.split(';') - unresolved_pkgs += [{'name': dep[0], 'version': dep[1]}] - force_logger_reload() - return unresolved_pkgs - -def from_legacy_pkglist(legacy_pkglist): - """Package list conversion from `old fuel-mirror` to `packetary` style""" - pkglist = list() - for pkg in legacy_pkglist: - pkglist += [{'name': pkg}] - return pkglist - -def to_legacy_pkglist(pkglist): - """Package list conversion from `packetary` style to `old fuel-mirror`""" - legacy_pkglist = list() - for pkg in pkglist: - legacy_pkglist.append(pkg['name']) - return legacy_pkglist - -def legacy_diff(base_pkglist, new_pkglist, requester, architecture): - """Package list diff (old format)""" - diff_set = set(new_pkglist) - if base_pkglist: - diff_set -= set(base_pkglist) - if diff_set: - print(' * {0} requires new packages for architecture [{1}]: {2}' - .format(requester, architecture, ', '.join(diff_set))) - return list(diff_set) - -def do_local_repo(architecture, cfg_repo, cfg_packages_paths): - """Create single-component local repo (one architecture per call)""" - # Packetary does not use a global config file, so pass old settings here. - main('create -t deb -a {0} --repository {1} --package-files {2}' - ' --ignore-errors-num 2 --retries-num 3 --threads-num 10' - .format(_ARCH[architecture], cfg_repo, cfg_packages_paths).split(' ')) - force_logger_reload() - -def do_partial_mirror(architecture, cfg_mirror, cfg_packages): - """Clone partial local mirror (one architecture per call)""" - # Note: '-d .' is ignored, as each mirror defines its own path. - main('clone -t deb -a {0} -r {1} -R {2} -d .' - ' --ignore-errors-num 2 --retries-num 3 --threads-num 10' - .format(_ARCH[architecture], cfg_mirror, cfg_packages).split(' ')) - force_logger_reload() - -def write_cfg_file(cfg_mirror, data): - """Write configuration (yaml) file (package list / mirror defition)""" - with open(cfg_mirror, 'w') as outfile: - outfile.write(yaml.safe_dump(data, default_flow_style=False)) - -def get_env(env_var, architecture=None): - """Evaluate architecture-specific overrides of env vars""" - if architecture: - env_var_arch = '{0}_{1}'.format(env_var, architecture) - if os.environ.get(env_var_arch): - return os.environ[env_var_arch] - if os.environ.get(env_var): - return os.environ[env_var] - return None - -# Architecture name mapping (dpkg:packetary) for packetary CLI invocation -_ARCH = { - "i386": "i386", - "amd64": "x86_64", - "arm64": "aarch64", -} - -# Arch-indepedent configuration (old fuel-mirror + OPNFV extra packages) -CFG_D = 'opnfv_config' -CFG_OPNFV = 'opnfv_config.yaml' -MOS_VERSION = get_env('MOS_VERSION') -UBUNTU_ARCH = get_env('UBUNTU_ARCH') -MIRROR_UBUNTU_PATH = get_env('MIRROR_UBUNTU_OPNFV_PATH') -MIRROR_UBUNTU_TMP_PATH = '{0}.tmp'.format(MIRROR_UBUNTU_PATH) -MIRROR_UBUNTU_MERGE = get_env('MIRROR_UBUNTU_MERGE') -CFG_MM_UBUNTU = '{0}/ubuntu_mirror_local.yaml'.format(CFG_D) -FUEL_BOOTSTRAP_CLI_FILE = open('fuel-agent/contrib/fuel_bootstrap/' - 'fuel_bootstrap_cli/fuel_bootstrap/settings.yaml.sample').read() -FUEL_BOOTSTRAP_CLI = yaml.load(FUEL_BOOTSTRAP_CLI_FILE) -FIXTURE_FILE = open('fuel-web/nailgun/nailgun/fixtures/openstack.yaml').read() -FIXTURE = yaml.load(FIXTURE_FILE) -OPNFV_CFG_YAML = open(CFG_OPNFV).read() -OPNFV_CFG = yaml.load(OPNFV_CFG_YAML) - -# Create local partial mirror using packetary, one arch at a time -for arch in UBUNTU_ARCH.split(' '): - # Mirror / Package env vars, arch-overrideable - mos_ubuntu = get_env('MIRROR_MOS_UBUNTU', arch) - mos_ubuntu_root = get_env('MIRROR_MOS_UBUNTU_ROOT', arch) - mirror_ubuntu = get_env('MIRROR_UBUNTU_URL', arch) - plugins = get_env('BUILD_FUEL_PLUGINS', arch) - if plugins is None: - plugins = get_env('PLUGINS', arch) - - # Mirror / Package list configuration files (arch-specific) - cfg_m_mos = '{0}/mos_{1}_mirror.yaml'.format(CFG_D, arch) - cfg_m_ubuntu = '{0}/ubuntu_{1}_mirror.yaml'.format(CFG_D, arch) - cfg_p_ubuntu = '{0}/ubuntu_{1}_packages.yaml'.format(CFG_D, arch) - cfg_m_ubuntu_main = '{0}/ubuntu_{1}_mirror_main.yaml'.format(CFG_D, arch) - cfg_p_ubuntu_main = '{0}/ubuntu_{1}_packages_main.yaml'.format(CFG_D, arch) - - # Mirror config fork before customizing (arch-specific) - arch_mos = 'mos_{0}'.format(arch) - arch_ubuntu = 'ubuntu_{0}'.format(arch) - arch_packages = 'packages_{0}'.format(arch) - OPNFV_CFG['groups'][arch_mos] = deepcopy(OPNFV_CFG['groups']['mos']) - OPNFV_CFG['groups'][arch_ubuntu] = deepcopy(OPNFV_CFG['groups']['ubuntu']) - OPNFV_CFG[arch_packages] = OPNFV_CFG['packages'] - - # Mirror config update & conversion to packetary input - group_main_ubuntu = dict() - for group in OPNFV_CFG['groups'][arch_mos]: - group['uri'] = "http://{}{}".format(mos_ubuntu, mos_ubuntu_root) - group['suite'] = group['suite'].replace('$mos_version', MOS_VERSION) - for group in OPNFV_CFG['groups'][arch_ubuntu]: - group['uri'] = mirror_ubuntu - # FIXME: At `create`, packetary insists on copying all pkgs to dest dir, - # so configure it for another dir, which will replace the orig. - group['path'] = MIRROR_UBUNTU_TMP_PATH - if not group_main_ubuntu and 'main' in group: - group_main_ubuntu = [deepcopy(group)] - group_main_ubuntu[0]['section'] = ['main'] - - # Mirror config dump: MOS (for dep resolution), Ubuntu, Ubuntu[main] - write_cfg_file(cfg_m_mos, OPNFV_CFG['groups'][arch_mos]) - write_cfg_file(cfg_m_ubuntu, OPNFV_CFG['groups'][arch_ubuntu]) - if MIRROR_UBUNTU_MERGE is None: - write_cfg_file(cfg_m_ubuntu_main, group_main_ubuntu) - else: - # FIXME: For multiarch, only one dump would be enough - group_main_ubuntu[0]['origin'] = 'Ubuntu' - group_main_ubuntu[0]['path'] = MIRROR_UBUNTU_PATH - group_main_ubuntu[0]['uri'] = MIRROR_UBUNTU_PATH - write_cfg_file(CFG_MM_UBUNTU, group_main_ubuntu[0]) - - # Collect package dependencies from: - ## 1. fuel_bootstrap_cli (bootstrap image additional packages) - legacy_unresolved = legacy_diff(None, FUEL_BOOTSTRAP_CLI['packages'] + [ - FUEL_BOOTSTRAP_CLI['kernel_flavor'], - FUEL_BOOTSTRAP_CLI['kernel_flavor'].replace('image', 'headers')], - 'Bootstrap', arch) - ## 2. openstack.yaml FIXTURE definition (default target image packages) - for release in FIXTURE: - editable = release['fields']['attributes_metadata']['editable'] - if 'provision' in editable and 'packages' in editable['provision']: - release_pkgs = editable['provision']['packages']['value'].split() - legacy_unresolved += legacy_diff(legacy_unresolved, release_pkgs, - 'Release {0}'.format(release['fields']['name']), arch) - ## 3. OPNFV additional packages (includes old fuel-mirror ubuntu.yaml pkgs) - unresolved = dict() - unresolved['mandatory'] = 'exact' - unresolved['packages'] = from_legacy_pkglist(legacy_unresolved) - if 'packages' in OPNFV_CFG: - legacy_diff(legacy_unresolved, to_legacy_pkglist(OPNFV_CFG['packages']), - 'OPNFV config', arch) - unresolved['packages'] += OPNFV_CFG['packages'] - - # OPNFV plugins dependency resolution - if plugins: - for plugin in plugins.split(): - path = "../{}/packages.yaml".format(plugin) - if os.path.isfile(path): - f = open(path).read() - plugin_yaml = yaml.load(f) - new_pkgs = legacy_diff( - to_legacy_pkglist(unresolved['packages']), - plugin_yaml['packages'], 'Plugin {0}'.format(plugin), arch) - unresolved['packages'] += from_legacy_pkglist(new_pkgs) - - # Package list (reduced, i.e. no MOS deps, but with OPNFV plugin deps) - if MIRROR_UBUNTU_MERGE is None: - write_cfg_file(cfg_p_ubuntu_main, unresolved) - - # Mirror package list (full, including MOS/OPNFV plugin deps) - unresolved['packages'] += get_unres_pkgs(arch, cfg_m_mos) - write_cfg_file(cfg_p_ubuntu, unresolved) - do_partial_mirror(arch, cfg_m_ubuntu, cfg_p_ubuntu) - if MIRROR_UBUNTU_MERGE is None: - # Ubuntu[main] must be evaluated after Ubuntu - do_partial_mirror(arch, cfg_m_ubuntu_main, cfg_p_ubuntu_main) - -if MIRROR_UBUNTU_MERGE is None: - shutil.move(MIRROR_UBUNTU_TMP_PATH, MIRROR_UBUNTU_PATH) -else: - # Construct single-component mirror from all components - for arch in UBUNTU_ARCH.split(' '): - cfg_pp_ubuntu = '{0}/ubuntu_{1}_packages_paths.yaml'.format(CFG_D, arch) - # OPNFV blacklist - opnfv_blacklist = to_legacy_pkglist(OPNFV_CFG['opnfv_blacklist']) - # FIXME: We need scanpackages to omit older DEBs - # Inspired from http://askubuntu.com/questions/198474/ - os.system('dpkg-scanpackages -a {0} {1} 2>/dev/null | ' - 'grep -e "^Filename:" | sed "s|Filename: |- file://|g" | ' - 'grep -v -E "\/({2})_" > {3}' - .format(arch, MIRROR_UBUNTU_TMP_PATH, - '|'.join(opnfv_blacklist), cfg_pp_ubuntu)) - do_local_repo(arch, CFG_MM_UBUNTU, cfg_pp_ubuntu) - shutil.rmtree(MIRROR_UBUNTU_TMP_PATH) diff --git a/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh b/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh deleted file mode 100755 index c8c86db53..000000000 --- a/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/bash - -UBUNTU_DISTRO="xenial" -BLACKLIST="http://mirrors.se.eu.kernel.org/ubuntu/" -#BLACKLIST+=" http://foo.bar" - -cleanup() { - rm -f $TMPFILE -} - -debugmsg() { - test -n "$DEBUG" && echo "$@" >&2 -} - - -# Check if url is blacklisted in this script -blacklisted () { - for blackurl in $BLACKLIST - do - if [ "$1" == "$blackurl" ]; then - return 0 - fi - done - return 1 -} - - -# Check mirror's integrity -check_mirror () { - mirror=$1 - status=0 - for packdir in dists/${UBUNTU_DISTRO}-updates/main/binary-amd64 \ - dists/${UBUNTU_DISTRO}-updates/restricted/binary-amd64 \ - dists/${UBUNTU_DISTRO}-updates/universe/binary-amd64 \ - dists/${UBUNTU_DISTRO}-updates/multiverse/binary-amd64 \ - dists/${UBUNTU_DISTRO}-security/main/binary-amd64 \ - dists/${UBUNTU_DISTRO}-security/restricted/binary-amd64 \ - dists/${UBUNTU_DISTRO}-security/universe/binary-amd64 \ - dists/${UBUNTU_DISTRO}-security/multiverse/binary-amd64 \ - dists/${UBUNTU_DISTRO}-proposed/main/binary-amd64 \ - dists/${UBUNTU_DISTRO}-proposed/restricted/binary-amd64 \ - dists/${UBUNTU_DISTRO}-proposed/universe/binary-amd64 \ - dists/${UBUNTU_DISTRO}-proposed/multiverse/binary-amd64 \ - dists/${UBUNTU_DISTRO}/main/binary-amd64 \ - dists/${UBUNTU_DISTRO}/restricted/binary-amd64 \ - dists/${UBUNTU_DISTRO}/universe/binary-amd64 \ - dists/${UBUNTU_DISTRO}/multiverse/binary-amd64 \ - dists/${UBUNTU_DISTRO}-backports/main/binary-amd64 \ - dists/${UBUNTU_DISTRO}-backports/restricted/binary-amd64 \ - dists/${UBUNTU_DISTRO}-backports/universe/binary-amd64 \ - dists/${UBUNTU_DISTRO}-backports/multiverse/binary-amd64 - do - for packfile in Release Packages.gz - do - if [ $status -ne 1 ]; then - curl --output /dev/null --silent --head --fail \ - $mirror/$packdir/$packfile - if [ $? -ne 0 ]; then - debugmsg "$mirror: Faulty (at least missing $packdir/$packfile)" - status=1 - fi - fi - done - done - return $status -} - -if [ "$1" == "-d" ]; then - DEBUG=1 -fi - -# Hardcode for testing purposes -# DEBUG=1 - -TMPFILE=$(mktemp /tmp/mirrorsXXXXX)A -trap cleanup exit - -# Generate a list of mirrors considered as "up" -curl -s https://launchpad.net/ubuntu/+archivemirrors | \ - grep -P -B8 "statusUP|statusONE|statusSIX" | \ - grep -o -P "(f|ht)tp.*\"" | \ - sed 's/"$//' | sort | uniq > $TMPFILE - -# Iterate over "close" mirror, check that they are considered up -# and sane. -for url in $(curl -s http://mirrors.ubuntu.com/mirrors.txt) -do - if ! grep -q $url $TMPFILE; then - debugmsg "$url Faulty (detected by Ubuntu)" - elif blacklisted $url; then - debugmsg "$url blacklisted" - elif [ -z $BESTURL ]; then - if grep -q $url $TMPFILE && check_mirror $url; then - debugmsg "$url: OK (setting as primary URL)" - BESTURL=$url - test -z "$DEBUG" && break - fi - else - grep -q $url $TMPFILE && check_mirror $url && debugmsg "$url: OK" - fi -done - -echo "$BESTURL" diff --git a/build/f_isoroot/f_tacker-pluginbuild/Makefile b/build/f_isoroot/f_tacker-pluginbuild/Makefile deleted file mode 100644 index 9c97db777..000000000 --- a/build/f_isoroot/f_tacker-pluginbuild/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# geopar@intracom-telecom.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################## -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################## - - -.PHONY: all -all: .tackerbuild - -.PHONY: clean -clean: - @rm -f .tackerbuild ../release/opnfv/tacker*.rpm tacker*.rpm - @rm -f $(BUILD_BASE)/gitinfo_tackerplugin.txt gitinfo_tackerplugin.txt - -.PHONY: release -release:.tackerbuild - @rm -f ../release/opnfv/tacker*.rpm - @mkdir -p ../release/tacker - @cp tacker*.rpm ../release/opnfv/ - cp gitinfo_tackerplugin.txt $(BUILD_BASE) - -.tackerbuild: - rm -rf fuel-plugin-tacker - git clone $(TACKER_REPO) - cd fuel-plugin-tacker; \ - git checkout $(TACKER_BRANCH); \ - if [ ! -z $(TACKER_CHANGE) ]; then \ - git fetch $(TACKER_REPO) $(TACKER_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - fpb --debug --build fuel-plugin-tacker/ - @mv fuel-plugin-tacker/tacker*.rpm . - $(REPOINFO) -r . > gitinfo_tackerplugin.txt - @rm -rf fuel-plugin-tacker - @touch .tackerbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################## -# Cache operations - only used when building through ci/build.sh -############################################################################## - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(TACKER_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(TACKER_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(TACKER_REPO) $(TACKER_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(TACKER_REPO) $(TACKER_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .tackerbuild tacker*.rpm gitinfo_tackerplugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_tacker-pluginbuild/config.mk b/build/f_isoroot/f_tacker-pluginbuild/config.mk deleted file mode 100644 index 516adc7c1..000000000 --- a/build/f_isoroot/f_tacker-pluginbuild/config.mk +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# geopar@intracom-telecom.com -# 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 -############################################################################## - -TACKER_BRANCH?=master -TACKER_REPO?="https://github.com/openstack/fuel-plugin-tacker" -TACKER_CHANGE?=7068a300df0c695fb4589bf504b29cbed970ba58 diff --git a/build/f_isoroot/f_tacker-pluginbuild/packages.yaml b/build/f_isoroot/f_tacker-pluginbuild/packages.yaml deleted file mode 100644 index c7775d120..000000000 --- a/build/f_isoroot/f_tacker-pluginbuild/packages.yaml +++ /dev/null @@ -1,3 +0,0 @@ -packages: - - python-jsonrpclib - diff --git a/build/f_isoroot/f_vsperfpluginbuild/Makefile b/build/f_isoroot/f_vsperfpluginbuild/Makefile deleted file mode 100644 index 73de611ff..000000000 --- a/build/f_isoroot/f_vsperfpluginbuild/Makefile +++ /dev/null @@ -1,92 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - -.PHONY: all -all: .vsperfbuild - -.PHONY: clean -clean: - @rm -f .vsperfbuild ../release/opnfv/fuel-plugin-vsperf*.rpm fuel-plugin-vsperf*.rpm - @rm -f $(BUILD_BASE)/gitinfo_vsperf-plugin.txt gitinfo_vsperf-plugin.txt - -.PHONY: release -release:.vsperfbuild - @rm -f ../release/opnfv/fuel-plugin-vsperf*.rpm - @mkdir -p ../release/opnfv - @cp fuel-plugin-vsperf*.rpm ../release/opnfv/ - cp gitinfo_vsperf-plugin.txt $(BUILD_BASE) - -.vsperfbuild: - @rm -rf vswitchperf - ../../docker/ubuntu-builder/install_docker.sh - git clone $(VSPERF_REPO) vswitchperf - cd vswitchperf; \ - git checkout $(VSPERF_BRANCH); \ - if [ ! -z $(VSPERF_CHANGE) ]; then \ - git fetch $(VSPERF_REPO) $(VSPERF_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - cd vswitchperf; \ - INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin-vsperf/ - @mv vswitchperf/fuel-plugin-vsperf/fuel-plugin-vsperf*.rpm . - $(REPOINFO) -r . > gitinfo_vsperf-plugin.txt - @rm -rf fuel-plugin-vsperf - @touch .vsperfbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(VSPERF_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(VSPERF_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(VSPERF_REPO) $(VSPERF_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(VSPERF_REPO) $(VSPERF_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .vsperfbuild fuel-plugin-vsperf*.rpm gitinfo_vsperf-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_vsperfpluginbuild/config.mk b/build/f_isoroot/f_vsperfpluginbuild/config.mk deleted file mode 100644 index d1db7eb6f..000000000 --- a/build/f_isoroot/f_vsperfpluginbuild/config.mk +++ /dev/null @@ -1,12 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# 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 -############################################################################## - -VSPERF_BRANCH?=stable/danube -VSPERF_REPO?=https://gerrit.opnfv.org/gerrit/vswitchperf.git -VSPERF_CHANGE?=5a48d6b78c014e62e7c233117abb61cc1f8844e6 diff --git a/build/f_isoroot/f_yardstick-pluginbuild/Makefile b/build/f_isoroot/f_yardstick-pluginbuild/Makefile deleted file mode 100644 index 32de3b3f4..000000000 --- a/build/f_isoroot/f_yardstick-pluginbuild/Makefile +++ /dev/null @@ -1,92 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# ruijing.guo@intel.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -############################################################################ -# BEGIN of Include definitions -# -include config.mk -# -# END Include definitions -############################################################################# - -.PHONY: all -all: .yardstickbuild - -.PHONY: clean -clean: - @rm -f .yardstickbuild ../release/opnfv/fuel-plugin-yardstick*.rpm fuel-plugin-yardstick*.rpm - @rm -f $(BUILD_BASE)/gitinfo_yardstick-plugin.txt gitinfo_yardstick-plugin.txt - -.PHONY: release -release:.yardstickbuild - @rm -f ../release/opnfv/fuel-plugin-yardstick*.rpm - @mkdir -p ../release/opnfv - @cp fuel-plugin-yardstick*.rpm ../release/opnfv/ - cp gitinfo_yardstick-plugin.txt $(BUILD_BASE) - -.yardstickbuild: - @rm -rf yardstick - git clone $(YARDSTICK_REPO) yardstick - cd yardstick; \ - git checkout $(YARDSTICK_BRANCH); \ - if [ ! -z $(YARDSTICK_CHANGE) ]; then \ - git fetch $(YARDSTICK_REPO) $(YARDSTICK_CHANGE); \ - git checkout FETCH_HEAD; \ - fi - cd yardstick; \ - INCLUDE_DEPENDENCIES=true fpb --debug --build fuel-plugin/ - @mv yardstick/fuel-plugin/fuel-plugin-yardstick*.rpm . - $(REPOINFO) -r . > gitinfo_yardstick-plugin.txt - @rm -rf fuel-plugin-yardstick - @touch .yardstickbuild - # Store artifact in cache straight away if caching is enabled - # (no .cacheid will be present unless this is a cached build) - test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0 - -############################################################################# -# Cache operations - only used when building through ci/build.sh -############################################################################# - - -# Create a unique hash to be used for getting and putting cache, based on: -# - The SHA1 hash of the HEAD on the plugin repo's $(YARDSTICK_BRANCH) -# - The contents of this Makefile -.cacheid: - @if [ ! -z $(YARDSTICK_CHANGE) ]; then \ - $(CACHETOOL) getcommitid $(YARDSTICK_REPO) $(YARDSTICK_CHANGE) > .cachedata; \ - else \ - $(CACHETOOL) getcommitid $(YARDSTICK_REPO) $(YARDSTICK_BRANCH) > .cachedata; \ - fi - @sha1sum Makefile | awk {'print $$1'} >> .cachedata - @sha1sum config.mk | awk {'print $$1'} >> .cachedata - @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata - @cat .cachedata | $(CACHETOOL) getid > .cacheid - -# Clean local data related to caching - called prior to ordinary build -.PHONY: clean-cache -clean-cache: clean - @rm -f .cachedata .cacheid - -# Try to download cache - called prior to ordinary build -.PHONY: get-cache -get-cache: .cacheid - @if $(CACHETOOL) check $(shell cat .cacheid); then \ - $(CACHETOOL) get $(shell cat .cacheid) | tar xf -;\ - else \ - echo "No cache item found for $(shell cat .cacheid)" ;\ - exit 0;\ - fi - -# Store cache if not already stored - called after ordinary build -.PHONY: put-cache -put-cache: .cacheid - @tar cf - .yardstickbuild fuel-plugin-yardstick*.rpm gitinfo_yardstick-plugin.txt | $(CACHETOOL) put $(shell cat .cacheid) diff --git a/build/f_isoroot/f_yardstick-pluginbuild/config.mk b/build/f_isoroot/f_yardstick-pluginbuild/config.mk deleted file mode 100644 index 508a10eec..000000000 --- a/build/f_isoroot/f_yardstick-pluginbuild/config.mk +++ /dev/null @@ -1,13 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@eicsson.com -# ruijing.guo@intel.com -# 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 -############################################################################## - -YARDSTICK_BRANCH?=stable/danube -YARDSTICK_REPO?=https://gerrit.opnfv.org/gerrit/yardstick.git -YARDSTICK_CHANGE?=7a4472954122ce97cc67acab2dc3207a1582370d diff --git a/build/fuel_build_loop b/build/fuel_build_loop deleted file mode 100755 index 324f28c1a..000000000 --- a/build/fuel_build_loop +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -echo "MIRROR_MOS_UBUNTU_ROOT=${MIRROR_MOS_UBUNTU_ROOT}" -echo "MIRROR_FUEL=${MIRROR_FUEL}" - -maxcount=3 -cnt=0 -rc=1 -while [ $cnt -lt $maxcount ] && [ $rc -ne 0 ] -do - cnt=$[cnt + 1] - echo -e "\n\n\n*** Starting build attempt # $cnt" - cd /tmp/fuel-main - make iso - rc=$? - if [ $rc -ne 0 ]; then - echo "### Build failed with rc $rc ###" - else - echo "### Build successful at attempt # $cnt" - fi -done -exit $rc diff --git a/build/install/apt-ftparchive-deb.conf b/build/install/apt-ftparchive-deb.conf deleted file mode 100644 index 0f03305b6..000000000 --- a/build/install/apt-ftparchive-deb.conf +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -Dir { - ArchiveDir "."; -}; - -TreeDefault { - Directory "pool"; -}; - -BinDirectory "pool/main" { - Packages "dists/mos10.0/main/binary-amd64/Packages"; -}; - -Default { - Packages { - Extensions ".deb"; - Compress ". gzip bzip2"; - }; -}; - -Contents { - Compress "gzip"; -}; - diff --git a/build/install/apt-ftparchive-release.conf b/build/install/apt-ftparchive-release.conf deleted file mode 100644 index 4425f2e34..000000000 --- a/build/install/apt-ftparchive-release.conf +++ /dev/null @@ -1,18 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -APT::FTPArchive::Release::Origin "Mirantis"; -APT::FTPArchive::Release::Label "mos10.0"; -APT::FTPArchive::Release::Suite "mos10.0"; -APT::FTPArchive::Release::Version "16.04"; -APT::FTPArchive::Release::Codename "mos10.0"; -APT::FTPArchive::Release::Architectures "amd64"; -APT::FTPArchive::Release::Components "main"; -APT::FTPArchive::Release::Description "Ubuntu 16.04.1 LTS"; diff --git a/build/install/apt-ftparchive-udeb.conf b/build/install/apt-ftparchive-udeb.conf deleted file mode 100644 index 0cabe9425..000000000 --- a/build/install/apt-ftparchive-udeb.conf +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -Dir { - ArchiveDir "."; -}; - -TreeDefault { - Directory "pool"; -}; - -BinDirectory "pool/debian-installer" { - Packages "dists/xenial/main/debian-installer/binary-amd64/Packages"; - BinOverride "./indices/override.xenial.main.debian-installer"; -}; - -Default { - Packages { - Extensions ".udeb"; - Compress ". gzip"; - }; -}; - -Contents { - Compress "gzip"; -}; diff --git a/build/install/install.sh b/build/install/install.sh deleted file mode 100755 index c03b7decb..000000000 --- a/build/install/install.sh +++ /dev/null @@ -1,491 +0,0 @@ -#!/bin/bash -e -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -my_exit() { - rc=$? - - cd /tmp - - if [ -n "$TMP_HOSTMOUNT" ]; then - if [ -d "$TMP_HOSTMOUNT" ]; then - fusermount -u $TMP_HOSTMOUNT - rmdir $TMP_HOSTMOUNT - fi - fi - - if [ -d "$TMP_OLDISO" ]; then - fusermount -u $TMP_OLDISO - rmdir $TMP_OLDISO - fi - - if [ -f "$CONF" ]; then - rm $CONF - fi - - if [ -d "$TMP_ISOPUPPET" ]; then - rm -Rf $TMP_ISOPUPPET - fi -} - -get_deb_name() { - ar p $1 control.tar.gz | tar xzO ./control | grep "^Package:.* " | sed 's/.* //' - if [ $PIPESTATUS -ne 0 ]; then - echo "Error in get_deb_name($1)" - exit 1 - fi -} - -get_deb_rev() { - ar p $1 control.tar.gz | tar xzO ./control | grep "^Version:.* " | sed 's/.* //' - if [ $PIPESTATUS -ne 0 ]; then - echo "Error in get_deb_rev($1)" - exit 1 - fi -} - - -# Added logic for ".orig" files: -# 1. Is there an .orig file for the new file? -# 2. If the file is not present in base ISO -> Error! -# 3. If the file is changed i base ISO -> Error! (need manual rebase) -# 4. If there is no .orig file, but file is present in base ISO: Error! -verify_orig_files() { - OLDDIR=$1 - NEWDIR=$2 - - pushd $NEWDIR >/dev/null - for f in $(find * -type f -name '*.orig') - do - origfile=$NEWDIR/$f - oldfile=$OLDDIR/$(echo $f | sed 's/.orig$//') - newfile=$NEWDIR/$(echo $f | sed 's/.orig$//') - - origfile=${newfile}.orig - # If no corresponding base file, error - if [ ! -f $oldfile ]; then - printf "\n\n\n\n" - echo "Error: found ${newfile} but no" - echo "Error: ${oldfile}" - echo "Error: Manual rebase is needed!" - printf "\n\n\n\n" - exit 1 - fi - - # If orig file differs from base file, error - if ! diff -q $origfile $oldfile > /dev/null; then - printf "\n\n\n\n" - echo "Error: $origfile differs from" - echo "Error: $oldfile!" - echo "Error: Manual rebase is needed!" - printf "\n\n\n\n" - exit 1 - fi - - done - - - # Check that there we're not overwriting oldfiles without having a ".orig" copy - for f in $(find * -type f ! -name '*.orig') - do - newfile=$NEWDIR/$(echo $f | sed 's/.orig$//') - origfile=${newfile}.orig - oldfile=$OLDDIR/$f - if [ -f $oldfile ]; then - if [ ! -f $origfile ]; then - printf "\n\n\n\n" - echo "Error: Will overwrite $oldfile, but there is no" - echo "Error: $origfile!" - echo "Error: You need to create the `basename $origfile`!" - printf "\n\n\n\n" - exit 1 - fi - fi - done - - - popd >/dev/null -} - -prep_make_live() { - DEST=$TMP_HOSTMOUNT - REPO=$DEST/var/www/nailgun/ubuntu/fuelweb/x86_64 - echo "Live install" - ssh-copy-id root@$FUELHOST - sshfs root@1${FUELHOST}:/ $TMP_HOSTMOUNT - - if [ -f $REPO/dists/xenial/main/binary-amd64/Packages.backup ]; then - echo "Error - found backup file for Packages!" - exit 1 - fi - - if [ -f $REPO/dists/xenial/main/binary-amd64/Packages.gz.backup ]; then - echo "Error - found backup file for Packages.gz!" - exit 1 - fi - - if [ -f $REPO/dists/xenial/Release.backup ]; then - echo "Error - found backup file for Release!" - exit 1 - fi - - if [ -d $DEST/etc/puppet.backup ]; then - echo "Error - found backup file for Puppet!" - exit 1 - fi - - cp $REPO/dists/xenial/main/binary-amd64/Packages $REPO/dists/xenial/main/binary-amd64/Packages.backup - cp $REPO/dists/xenial/main/binary-amd64/Packages.gz $REPO/dists/xenial/main/binary-amd64/Packages.gz.backup - cp $REPO/dists/xenial/Release $REPO/dists/xenial/Release.backup - cp -Rvp $DEST/etc/puppet $DEST/etc/puppet.backup -} - -post_make_live() { - if [ -d $TOP/release/puppet/modules ]; then - echo "Installing into Puppet:" - cd $TOP/release/puppet/modules - if [ `ls -1 | wc -l` -gt 0 ]; then - for dir in * - do - echo " $dir" - cp -Rp $dir $DEST/etc/puppet/modules - done - fi - fi -} - -make_live() { - prep_make_live - copy_packages - post_make_live -} - - -prep_make_iso() { - DEST=$TOP/newiso - REPO=$DEST/ubuntu - echo "Preparing ISO..." - echo "Unpack of old ISO..." - if [ -d newiso ]; then - chmod -R 755 newiso - rm -rf newiso - fi - mkdir newiso - fusermount -u $TMP_OLDISO 2>/dev/null || cat /dev/null - fuseiso -p $ORIGISO $TMP_OLDISO - sleep 1 - cd $TMP_OLDISO - find . | cpio -pd $TOP/newiso - cd .. - fusermount -u $TMP_OLDISO - rm -Rf $TMP_OLDISO - chmod -R 755 $TOP/newiso -} - -make_iso_image() { - echo "Making ISO..." - cd $DEST - find . -name TRANS.TBL -exec rm {} \; - rm -rf rr_moved - - if [[ -z "$OPNFV_GIT_SHA" ]]; then - OPNFV_GIT_SHA=$(git rev-parse --verify HEAD) - fi - - mkisofs --quiet -r -V "$VOLUMEID" -publisher "$PUBLISHER" \ - -p "$OPNFV_GIT_SHA" -J -R -b isolinux/isolinux.bin \ - -no-emul-boot \ - -boot-load-size 4 -boot-info-table \ - --hide-rr-moved \ - --joliet-long \ - -x "lost+found" -o $NEWISO . - - isohybrid $NEWISO - - isoinfo -d -i $NEWISO -} - -# iso_copy_puppet: Create a new puppet-slave.tgz for the iso -iso_copy_puppet() { - echo "Installing into Puppet..." - mkdir -p $TMP_ISOPUPPET/release/puppet - cd $TMP_ISOPUPPET/release/puppet - tar xzf $DEST/puppet-slave.tgz - cd $TOP/release/puppet/modules - - # Remove all .orig files before copying as they now have been verfied - - if [ -d $TOP/release/puppet/modules ]; then - if [ `ls -1 | wc -l` -gt 0 ]; then - verify_orig_files $TMP_ISOPUPPET/release/puppet $TOP/release/puppet/modules - find $TOP/release/puppet/modules -type f -name '*.orig' -exec rm {} \; - for dir in $TOP/release/puppet/modules/* - do - echo " $dir" - cp -Rp $dir $TMP_ISOPUPPET/release/puppet - done - fi - fi - - cd $TMP_ISOPUPPET/release/puppet - tar czf $DEST/puppet-slave.tgz . - cd $TOP - rm -Rf $TMP_ISOPUPPET -} - -# iso_modify_image: Add/patch files in the ISO root -iso_modify_image () { - # TODO: Add logic for ".orig" files (hey! make a function!), which would look - # something like: - # 1. Is there an .orig file? - # 2. If the file is not present in origiso -> Error exit - # 3. If the file is changed in origiso -> Error exit (need manual rebase) - # 4. Otherwise continue, but don't copy orig file (or maybe we should?) - # ... and corresponding reverse logic: - # 1. If there is no .orig file, but file is present in origiso -> Error exit - echo "Modify ISO files (wild copy)..." - - verify_orig_files $DEST $TOP/release/isoroot - # Remove all .orig files before copying as they now have been verfied - find $TOP/release/isoroot -type f -name '*.orig' -exec rm {} \; - - cd $TOP/release/isoroot - cp -Rvp . $DEST - - # Add all Git info files - sort $TOP/gitinfo*.txt > $DEST/gitinfo.txt - cp $DEST/gitinfo.txt $REPORTFILE -} - -make_iso() { - prep_make_iso - copy_packages - #iso_copy_puppet - iso_modify_image - make_iso_image -} - -copy_packages() { - echo "Copying Debian packages..." - cd $TOP/release/packages/ubuntu/pool/debian-installer - - for udeb in `ls -1 | grep '\.udeb$'` - do - echo " $udeb" - cp $udeb $REPO/pool/debian-installer - echo "Did not expect a package here, not supported" - exit 1 - done - - cd $TOP/release/packages/ubuntu/pool/main - for deb in `ls -1 | grep '\.deb$'` - do - echo " $deb" - cp $deb $REPO/pool/main - echo "Did not expect a package here, not supported" - exit 1 - done - - echo "Running Fuel package patch file" - pushd $REPO/pool/main > /dev/null - - for line in `cat $TOP/apply_patches | grep -v "^#" | grep -v "^$"`; do - echo "Line is $line" - echo "Did not expect a line here, not supported" - exit 1 - ref=`echo $line | cut -d '>' -f 1` - origpkg=`echo $line| cut -d '>' -f 2` - url=`echo $line | cut -d '>' -f 3` - - if [ -z "$origpkg" ]; then - echo "Error: No origpkg for patching" - exit 1 - fi - - if [ -z "$url" ]; then - echo "Error: No url for patching" - exit 1 - fi - - if [ -z "$ref" ]; then - echo "Error: No reference text for patching" - exit 1 - fi - - echo "CM: Patching Fuel package for $ref" | tee -a $REPORTFILE - echo "CM: Replacing package $origpkg with $url" | tee -a $REPORTFILE - oldrev=`get_deb_rev $origpkg` - rm $origpkg - wget --quiet $url - topkg=`basename $url` - echo "CM: MD5 of new package:" | tee -a $REPORTFILE - md5sum $topkg | tee -a $REPORTFILE - - patchname=`get_deb_name $topkg` - patchrev=`get_deb_rev $topkg` - echo "Correcting dependencies towards $patchname rev $patchrev - old rev $oldrev" | tee -a $REPORTFILE - $TOP/patch-packages/tools/correct_deps $patchname $oldrev $patchrev | tee -a $REPORTFILE - if [ $PIPESTATUS -ne 0 ]; then - exit 1 - fi - done - - printf "Done running Fuel patch file\n\n" - echo "Running add packages file" - for line in `cat $TOP/add_opnfv_packages | grep -v "^#" | grep -v "^$"`; do - echo "Line is $line" - echo "Did not expect a line here, not supported" - exit 1 - ref=`echo $line | cut -d '>' -f 1` - origpkg=`echo $line| cut -d '>' -f 2` - url=`echo $line | cut -d '>' -f 3` - - if [ -z "$origpkg" ]; then - echo "Error: No origpkg for patching" - exit 1 - fi - - if [ -z "$url" ]; then - echo "Error: No url for patching" - exit 1 - fi - - if [ -z "$ref" ]; then - echo "Error: No reference text for patching" - exit 1 - fi - - if [ "$origpkg" != "NONE" ]; then - echo "CM: Patching added package for $ref" | tee -a $REPORTFILE - echo "CM: Replacing package $origpkg with $url" | tee -a $REPORTFILE - oldrev=`get_deb_rev $origpkg` - rm $origpkg - else - echo "CM: Adding previoulsy uninstalled package for $ref" tee -a $REPORTFILE - fi - wget --quiet $url - topkg=`basename $url` - echo "CM: MD5 of new package:" | tee -a $REPORTFILE - md5sum $topkg | tee -a $REPORTFILE - if [ "$origpkg" != "NONE" ]; then - patchname=`get_deb_name $topkg` - patchrev=`get_deb_rev $topkg` - echo "Correcting dependencies towards $patchname rev $patchrev - old rev $oldrev" | tee -a $REPORTFILE - $TOP/patch-packages/tools/correct_deps $patchname $oldrev $patchrev | tee -a $REPORTFILE - if [ $PIPESTATUS -ne 0 ]; then - exit 1 - fi - fi - done - printf "Done running add packages file\n\n" - - popd > /dev/null - - if [ -f $TOP/patch-packages/release/patch-replacements ]; then - echo "Applying package patches" | tee -a $REPORTFILE - pushd $REPO/pool/main > /dev/null - echo "CM: I am now in $(pwd)" - printf "\n\n" | tee -a $REPORTFILE - for line in `cat $TOP/patch-packages/release/patch-replacements` - do - echo "Did not expect a line here, not supported" - exit 1 - echo "Processing $line ..." - frompkg=`echo $line | cut -d ">" -f 1` - topkg=`echo $line | cut -d ">" -f 2` - echo "CM: Applying patch to $frompkg" | tee -a $REPORTFILE - echo "CM: New package rev after patch: $topkg" | tee -a $REPORTFILE - - if [ ! -f $frompkg ]; then - echo "Error: Can't find $frompkg in repo" - exit 1 - else - oldrev=`get_deb_rev $frompkg` - echo "Removing $frompkg from repo" - rm $frompkg - fi - - if [ ! -f $TOP/patch-packages/release/packages/$topkg ]; then - echo "Error: Can't find $topkg in patch release" - exit 1 - else - echo "Adding $topkg to repo" - pkg_dest=$(dirname $frompkg) - cp $TOP/patch-packages/release/packages/$topkg $pkg_dest/ - fi - - pushd $pkg_dest > /dev/null - patchname=`get_deb_name $topkg` - patchrev=`get_deb_rev $topkg` - echo "Correcting dependencies towards $patchname rev $patchrev - old rev $oldrev" | tee -a $REPORTFILE - $TOP/patch-packages/tools/correct_deps $patchname $oldrev $patchrev | tee -a $REPORTFILE - if [ $PIPESTATUS -ne 0 ]; then - exit 1 - fi - popd > /dev/null - done - popd > /dev/null - fi - - echo "Generating metadata..." - pushd $REPO > /dev/null - - # The below methods are from 15B - APT_REL_CONF="$TOP/install/apt-ftparchive-release.conf" - APT_DEB_CONF="$TOP/install/apt-ftparchive-deb.conf" - APT_UDEB_CONF="$TOP/install/apt-ftparchive-udeb.conf" - - echo Not running apt-ftparchive -c "${APT_REL_CONF}" generate "${APT_DEB_CONF}" - echo Not running apt-ftparchive generate "${APT_UDEB_CONF}" - - # Fuel also needs this index file - # cat dists/xenial/main/binary-amd64/Packages | \ - # awk '/^Package:/{pkg=$2} - # /^Version:/{print pkg ": \"" $2 "\""}' > ubuntu-versions.yaml - # cp ubuntu-versions.yaml $DEST - - # apt-ftparchive -c "${APT_REL_CONF}" release dists/mos10.0/ > dists/mos10.0/Release - # gzip -9cf dists/mos10.0/Release > dists/mos10.0/Release.gz - - popd > /dev/null - -} - - -############################################################################# - -trap my_exit EXIT - -CONF=`mktemp /tmp/XXXXXXX` -MODE=$1 -TOP=`pwd` - -if [ $MODE = "iso" ]; then - PUBLISHER="OPNFV" - TMP_OLDISO=`mktemp -d /tmp/XXXXXXX` - TMP_ISOPUPPET=`mktemp -d /tmp/XXXXXXX` - ORIGISO=$2 - NEWISO=$3 - VOLUMEID="$4_$5" - REPORTFILE="${NEWISO}.txt" - echo "Opening reportfile at $REPORTFILE" - touch $REPORTFILE - if [ ! -f $ORIGISO ]; then - echo "Can't find original iso at $ORIGISO" - rm $CONF - exit 1 - fi - - make_iso -else - echo "Unknown mode: $MODE" - exit 1 -fi diff --git a/build/install/uninstall.sh b/build/install/uninstall.sh deleted file mode 100755 index 5252c3093..000000000 --- a/build/install/uninstall.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -e -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -my_exit() { - cd /tmp - if [ -d "$MOUNT" ]; then - fusermount -u $MOUNT - rmdir $MOUNT - fi -} -trap my_exit EXIT - -echo "Live uninstall is currently disabled as it is not tested" -exit 1 - -TOP=`pwd` -MOUNT=`mktemp -d /tmp/XXXXXXX` -ssh-copy-id root@10.20.0.2 -sshfs root@10.20.0.2:/ $MOUNT - -DEST=$MOUNT -REPO=$DEST/var/www/nailgun/ubuntu/fuelweb/x86_64 - -cd $REPO -if [ ! -f $REPO/dists/xenial/main/binary-amd64/Packages.backup ]; then - echo "Error - didn't find backup file for Packages!" - exit 1 -fi - -if [ ! -f $REPO/dists/xenial/main/binary-amd64/Packages.gz.backup ]; then - echo "Error - didn't find backup file for Packages.gz!" - exit 1 -fi - -if [ ! -f $REPO/dists/xenial/Release.backup ]; then - echo "Error - didn't find backup file for Release!" - exit 1 -fi - -if [ ! -f $DEST/etc/puppet/manifests/site.pp.backup ]; then - echo "Error - didn't find backup file for site.pp!" - exit 1 -fi - -echo "Removing Debian packages:" -cd $TOP/release/pool/main -for deb in *.deb -do - echo " $deb" - rm -Rf $REPO/pool/main/$deb -done -cd $REPO - -echo "Removing Puppet modules:" -cd $TOP/puppet/modules -for dir in * -do - echo " $dir" - rm -Rf $DEST/etc/puppet/modules/$dir -done -cd $REPO - -echo "Restoring backups of datafiles" - -rm -f $REPO/dists/xenial/main/binary-amd64/Packages $REPO/dists/xenial/main/binary-amd64/Packages.gz -rm -f $REPO/dists/xenial/Release $DEST/etc/puppet/manifests/site.pp -mv $REPO/dists/xenial/main/binary-amd64/Packages.backup $REPO/dists/xenial/main/binary-amd64/Packages -mv $REPO/dists/xenial/main/binary-amd64/Packages.gz.backup $REPO/dists/xenial/main/binary-amd64/Packages.gz -mv $REPO/dists/xenial/Release.backup $REPO/dists/xenial/Release -mv $DEST/etc/puppet/manifests/site.pp.backup $DEST/etc/puppet/manifests/site.pp diff --git a/build/patch-packages/Makefile b/build/patch-packages/Makefile deleted file mode 100644 index d12b53a72..000000000 --- a/build/patch-packages/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -SUBDIRS := -SUBCLEAN = $(addsuffix .clean,$(SUBDIRS)) - -.PHONY: $(SUBDIRS) $(SUBCLEAN) clean -$(SUBDIRS): - @mkdir -p release/packages - ORIGISO=$(ORIGISO) REVSTATE=$(REVSTATE) $(MAKE) -C $@ -f Makefile release - -release: $(SUBDIRS) - @echo $(ORIGISO) - -clean: $(SUBCLEAN) - @rm -Rf release - -$(SUBCLEAN): %.clean: - $(MAKE) -C $* -f Makefile clean diff --git a/build/patch-packages/tools/correct_deps b/build/patch-packages/tools/correct_deps deleted file mode 100755 index cfb7d538f..000000000 --- a/build/patch-packages/tools/correct_deps +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -patch_package () { - deb=$1 - pkgdep=$2 - newrev=$3 - - - tmpdir=`mktemp -d /tmp/patchXXXXX` - - cp $deb $tmpdir - pushd $tmpdir > /dev/null - - mkdir -p repack - dpkg -x $deb repack - - mkdir -p repack/DEBIAN - dpkg -e $deb repack/DEBIAN - - - pushd repack/DEBIAN > /dev/null - - echo "Before: `cat control | grep '^Depends:'`" - sed -i "s/$pkgdep (\([^ ]*\) [^)]*)/$pkgdep (\1 $newrev)/" control - echo "After: `cat control | grep '^Depends:'`" - popd > /dev/null - - fakeroot dpkg-deb --build repack - - popd > /dev/null - - cp $tmpdir/repack.deb $deb - rm -Rf $tmpdir -} - -# Name of package for which to check dependencies to -PKGDEP=$1 -# The old revision of the package in question -OLDREV=$2 -# The new revision of the package in question -NEWREV=$3 - -if [ -z "$PKGDEP" ]; then - echo "No package dependency name" - exit 1 -fi - -if [ -z "$OLDREV" ]; then - echo "No old rev" - exit 1 -fi - -if [ -z "$NEWREV" ]; then - echo "No new rev" - exit 1 -fi - - -for deb in *.deb -do - ar p $deb control.tar.gz | tar xzO ./control | grep -q "^Depends:.* ${PKGDEP} ([^ ]* ${OLDREV})" - if [ $? -eq 0 ]; then - name=`ar p $deb control.tar.gz | tar xzO ./control | grep "^Package:.* " | sed 's/.* //'` - echo "**** Changing dependencies line in $deb ($name) ****" - patch_package $deb $PKGDEP $NEWREV - fi -done - diff --git a/build/patch-packages/tools/deb_pack b/build/patch-packages/tools/deb_pack deleted file mode 100755 index 1550d95d8..000000000 --- a/build/patch-packages/tools/deb_pack +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -e -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -my_exit() { - - if [ -d "$ISOROOT" ]; then - fusermount -u $ISOROOT - fi -} - -ME=$(basename $0) - -trap my_exit EXIT - -REV="$(echo $1 | tr '_' '-')" -if [ -z "$REV" ]; then - echo "$ME: Error - no revision info provided" - exit 1 -fi - -if [ ! -d package ]; then - echo "$ME: Error - package directory does not exist" - exit 1 -fi - -echo "Stepping revision number to $REV" - - -revision_step () -{ - REV=$1 - - sed -i "s/^\(Version:.*$\)/\1-opnfv$REV/" package/DEBIAN/control -} - -md5sum_gen () -{ - pushd package - find * -type f | grep -v "^DEBIAN/" | xargs md5sum | sort > DEBIAN/md5sums - popd -} - -revision_step $REV -md5sum_gen -fakeroot dpkg-deb --build package -PKGNAME=`grep "^Package: " package/DEBIAN/control | awk '{ print $2 }'` -PKGREV=`grep "^Version: " package/DEBIAN/control | awk '{ print $2 }'` -mv package.deb ${PKGNAME}_${PKGREV}.deb - -ORIGPKG=`cat .package` - -# Add patch into file read by install.sh -echo "$ORIGPKG>${PKGNAME}_${PKGREV}.deb" > patch-replacements - diff --git a/build/patch-packages/tools/deb_unpack b/build/patch-packages/tools/deb_unpack deleted file mode 100755 index aaa60b743..000000000 --- a/build/patch-packages/tools/deb_unpack +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -e -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -my_exit() { - - if [ -d "$ISOROOT" ]; then - fusermount -u $ISOROOT - fi -} - -ME=$(basename $0) - -trap my_exit EXIT - - -if [ -z "$1" ]; then - echo "$ME: Error - No package specified" - exit 1 -fi - -if [ -z "$2" ]; then - echo "$ME: Error - No ISO path specified" - exit 1 -fi - -DEB=$1 -ORIGISO=$2 -DEST=package - -if [ -e $DEST -o -d $DEST ]; then - echo "$ME: Error - $DEST already exists" - exit 1 -fi - -ISOROOT=`mktemp -d /tmp/XXXXXXX` -fuseiso -p $ORIGISO $ISOROOT -sleep 1 - -if [ ! -f $ISOROOT/ubuntu/pool/main/$DEB ];then - echo "Could not find package $DEB in source ISO!" -fi - -mkdir -p $DEST -dpkg -x $ISOROOT/ubuntu/pool/main/$DEB $DEST - -mkdir -p $DEST/DEBIAN -dpkg -e $ISOROOT/ubuntu/pool/main/$DEB $DEST/DEBIAN - -echo $DEB > .package
\ No newline at end of file diff --git a/build/patch-packages/tools/udeb_pack b/build/patch-packages/tools/udeb_pack deleted file mode 100755 index e961a7320..000000000 --- a/build/patch-packages/tools/udeb_pack +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -e -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -my_exit() { - - if [ -d "$ISOROOT" ]; then - fusermount -u $ISOROOT - fi -} - -ME=$(basename $0) - -trap my_exit EXIT - -if [ ! -d udebPackage ]; then - echo "$ME: Error - package directory does not exist" - exit 1 -fi - -echo "Stepping revision number to $REV" - - -fakeroot dpkg-deb --build -Zgzip udebPackage -PKGNAME=`grep "^Package: " udebPackage/DEBIAN/control | awk '{ print $2 }'` -PKGREV=`grep "^Version: " udebPackage/DEBIAN/control | awk '{ print $2 }'` -ARCH=`grep "^Architecture: " udebPackage/DEBIAN/control | awk '{ print $2 }'` -mv udebPackage.deb ${PKGNAME}_${PKGREV}_${ARCH}.udeb - -ORIGPKG=`cat .udebpackage` diff --git a/build/patch-packages/tools/udeb_unpack b/build/patch-packages/tools/udeb_unpack deleted file mode 100755 index ed9cd21aa..000000000 --- a/build/patch-packages/tools/udeb_unpack +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -e -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - - -my_exit() { - - if [ -d "$ISOROOT" ]; then - fusermount -u $ISOROOT - fi -} - -ME=$(basename $0) - -trap my_exit EXIT - - -if [ -z "$1" ]; then - echo "$ME: Error - No package specified" - exit 1 -fi - -if [ -z "$2" ]; then - echo "$ME: Error - No ISO path specified" - exit 1 -fi - -DEB=$1 -ORIGISO=$2 -DEST=udebPackage - -if [ -e $DEST -o -d $DEST ]; then - echo "$ME: Error - $DEST already exists" - exit 1 -fi - -ISOROOT=`mktemp -d /tmp/XXXXXXX` -fuseiso -p $ORIGISO $ISOROOT -sleep 1 - -if [ ! -f $ISOROOT/ubuntu/pool/debian-installer/$DEB ];then - echo "Could not find package $DEB in source ISO!" -fi - -mkdir -p $DEST -dpkg -x $ISOROOT/ubuntu/pool/debian-installer/$DEB $DEST - -mkdir -p $DEST/DEBIAN -dpkg -e $ISOROOT/ubuntu/pool/debian-installer/$DEB $DEST/DEBIAN - -echo $DEB > .udebpackage diff --git a/build/patch-packages/tr_example/Makefile b/build/patch-packages/tr_example/Makefile deleted file mode 100644 index b7cab3590..000000000 --- a/build/patch-packages/tr_example/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -TOP := $(shell pwd) - -.PHONY: all -all: - -.PHONY: clean -clean: - @rm -rf package - @rm -rf *.deb - @rm -rf patch-replacements - @rm -rf .package - -.PHONY: release -release: - ../tools/deb_unpack python-oslo.messaging_1.3.0-fuel5.1~mira4_all.deb $(ORIGISO) - @mkdir -p package/etc - @echo "Hello, world" > package/etc/hello.txt - ../tools/deb_pack $(REVSTATE) - @cp *.deb ../release/packages - @cat patch-replacements >> ../release/patch-replacements diff --git a/build/repo_info.sh b/build/repo_info.sh deleted file mode 100755 index 347ede7f7..000000000 --- a/build/repo_info.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -usage() { - cat <<EOF -Usage: `basename $0` [-r] <path> - - -r - Recursively list all repos found starting at <path> - -h - Display help text -EOF -} - -repoinfo() { - repotop=$(git -C $1 rev-parse --show-toplevel) - origin=$(git -C $repotop config --get remote.origin.url) - sha1=$(git -C $repotop rev-parse HEAD) - echo "$origin: $sha1" -} - - -if [ $# -eq 2 ]; then - case $1 in - -r) - RECURSE=1 - shift - ;; - -h) - usage - exit 0 - ;; - *) - echo "Error, argument $1 not known" >&2 - usage - exit 1 - esac -fi - -if [ $# -gt 1 ]; then - echo "Error, too many arguments" >&2 - usage - exit 1 -fi - -abspath=$(readlink -f $1) - -if [ -n "$RECURSE" ]; then - for dir in $(find $abspath -type d -name .git) - do - repoinfo $(readlink -f $dir/..) - done -else - repoinfo $abspath -fi diff --git a/build/select_closest_fuel_mirror.py b/build/select_closest_fuel_mirror.py deleted file mode 100755 index 0fdc69eac..000000000 --- a/build/select_closest_fuel_mirror.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/python -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -# Select closest fuel mirror based on latency measured with ping. -# Failsafe: The us1 mirror - -from subprocess import Popen,PIPE -import re -from operator import itemgetter - -mirrors = [ "us1", "cz1" ] -FNULL = open('/dev/null', 'w') -try: - re_avg = re.compile(r'.* = [^/]*/([^/]*).*') - - pingtime = {} - for mirror in mirrors: - fqdn = "mirror.seed-"+mirror+".fuel-infra.org" - pingtime[fqdn] = 0 - pipe = Popen("ping -c 3 " + fqdn + " | tail -1",shell = True, stdout=PIPE, stderr=FNULL) - avg = pipe.communicate()[0] - pipe.stdout.close() - pingtime[fqdn] = float(re_avg.split(avg)[1]) - - print sorted(pingtime.items(), key=itemgetter(1))[0][0] -except: - print "mirror.seed-"+mirrors[0]+".fuel-infra.org" @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2015 Ericsson AB and others. +# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others. # stefan.k.berg@ericsson.com # jonas.bjurel@ericsson.com # All rights reserved. This program and the accompanying materials @@ -12,14 +12,13 @@ Abstract ======== The fuel/ci directory holds all Fuel@OPNFV programatic abstractions for the OPNFV community release and continous integration pipeline. -There are two Fuel@OPNF autonomous scripts fo this, complying to the OPNFV CI pipeline guideline: - - build.sh +There is now only one Fuel@OPNFV autonomous script for this, complying to the +OPNFV CI pipeline guideline: - deploy.sh USAGE ===== For usage information of the CI/CD scripts, please run: -./build.sh -h ./deploy.sh -h Details on the CI/CD deployment framework @@ -28,35 +27,31 @@ Details on the CI/CD deployment framework Overview and purpose -------------------- The CI/CD deployment script relies on a configuration structure, providing base -installer configuration (part of fuel repo: deploy/config), per POD specific +installer configuration (part of fuel repo: mcp/config), per POD specific configuration (part of a separate classified POD configuration repo: securedlab -, plugin configuration (part of fuel repo: deploy/config/plugins), and -deployment scenario configuration (part of fuel repo: deploy/scenario). +and deployment scenario configuration (part of fuel repo: mcp/config/scenario). - The base installer configuration resembles the least common denominator of all - HW/POD environment and deployment scenarios (These configurations are - normally carried by the the installer projects in this case (fuel@OPNFV). + HW/POD environment and deployment scenarios. These configurations are + normally carried by the the installer projects in this case (Fuel@OPNFV). - Per POD specific configuration specifies POD unique parameters, the POD parameter possible to alter is governed by the Fuel@OPNFV project. -- Plugin configuration - providing configuration of a specific plugin. - these configurations maintain there own namespace and are normally maintained - by collaborative projects building Fuel@OPNFV plugins - Deployment scenario configuration - provides a high level, POD/HW environment independent scenario configuration for a specifiv deployment. It defines what - features/plugins that shall be deployed - as well needed overrides of the base - installer-, POD/HW environment- configurations. Objects allowed to override - is governed by the Fuel@OPNFV project. + features shall be deployed - as well needed overrides of the base + installer, POD/HW environment configurations. Objects allowed to override + are governed by the Fuel@OPNFV project. Executing a deployment ---------------------- deploy.sh must be executed locally at the target lab/pod/jumpserver A configuration structure must be provided - see the section below. It is straight forward to execute a deployment task - as an example: -sudo deploy.sh -b file:///home/jenkins/config -l LF-1 -p POD-2 -s -os_odl-l2_ha -i file:///home/jenkins/MyIso.iso +$ sudo deploy.sh -b file:///home/jenkins/config \ + -l lf -p pod2 -s os-nosdn-nofeature-ha -b and -i arguments should be expressed in URI style (eg: file://... -or http://.... The resources can thus be local or remote. +or http://...). The resources can thus be local or remote. Configuration repository structure ---------------------------------- @@ -68,9 +63,13 @@ remote strcture fullfilling the diectory/file structure below. The reason that this configuration structure needs to be secure/hidden is that there are security sensitive information in the various configuration files. + +FIXME: Below information is out of date and should be refreshed after PDF +support is fully implemented. + A local stripped version of this configuration structure with virtual deployment configurations also exist under build/config/. -Following configuration directory and file structure should be adheare to: +Following configuration directory and file structure should adheare to: TOP ! @@ -98,4 +97,4 @@ TOP Creating a deployment scenario ------------------------------ Please find deploy/scenario/README for instructions on how to create a new -deployment scenario.
\ No newline at end of file +deployment scenario. diff --git a/ci/build.sh b/ci/build.sh deleted file mode 100755 index 82049cdcd..000000000 --- a/ci/build.sh +++ /dev/null @@ -1,269 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################ -# BEGIN of usage description -# -usage () -{ -cat | more << EOF -xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -`basename $0`: Builds the Fuel@OPNFV stack - -usage: `basename $0` [-s spec-file] [-c cache-URI] [-l log-file] [-f flags] - [output-directory] - -OPTIONS: - -s spec-file (NOTE! DEPRECATED!) - define the build-spec file, default ../build/config.mk. The script only - verifies that the spec-file exists. - -c cache base URI - specifies the base URI to a build cache to be used/updated, supported - methods are http://, ftp:// and file:// - -l log-file - specifies the output log-file (stdout and stderr), if not specified - logs are output to console as normal - -v - version tag to be applied to the build result - -r - alternative remote access method script/program. curl is default. - -f flag[...] - build flags: - s: Do nothing, succeed - f: Do nothing, fail - D: Debug mode - P: Clear the local cache before building. This flag is only - valid if the "-c cache-URI" options has been specified and - and the method in the cache-URI is file:// (local cache). - - -h help, prints this help text - - output-directory, specifies the directory for the output artifacts - (.iso file). If no output-directory is specified, the current path - when calling the script is used. - - -Description: - -build.sh builds the opnfv .iso artifact. -To reduce build time it uses build caches on a local or remote location. A -cache is rebuilt and uploaded if either of the below conditions are met: -1) The P(opulate) flag is set and the -c cache-base-URI is provided and set - to the method file:// , if -c is - not provided the cache will stay local. -2) If a cache is invalidated by the make system - the exact logic is encoded - in the cache.mk of the different parts of the build. -3) A valid cache does not exist on the specified -c cache-base-URI. - -A cache has a blob (binary data) and a meta file in the format of: - <SHA1>.blob - <SHA1>.meta - -Logging is by default to console, but can be directed elsewhere with the -l -option in which case both stdout and stderr is redirected to that destination. - -Built in unit testing of components is enabled by adding the t(est) flag. - -Return codes: - - 0 Success! - - 1-99 Unspecified build error - - 100-199 Build system internal error (not build it self) - - 101 Build system instance busy - - 200 Build failure - -Examples: - build -c http://opnfv.org/artifactory/fuel/cache \ - -d ~/jenkins/genesis/fuel/ci/output -f ti - -NOTE: At current the build scope is set to the git root of the repository, -d - destination locations outside that scope will not work! -EOF -} -# -# END of usage description -############################################################################ - -############################################################################ -# BEGIN of function error_exit - -error_exit() { - echo "$@" >&2 - exit 1 -} - -# -# END of function error_exit -############################################################################ - - -############################################################################ -# BEGIN of shorthand variables for internal use -# -SCRIPT_DIR=$(readlink -f $(dirname ${BASH_SOURCE[0]})) -BUILD_BASE=$(readlink -e ${SCRIPT_DIR}/../build/) -RESULT_DIR="${BUILD_BASE}/release" -BUILD_SPEC="${BUILD_BASE}/config.mk" -LOCAL_CACHE_ARCH_NAME="${LOCAL_CACHE_ARCH_NAME:-fuel-cache}" - -# -# END of variables to customize -############################################################################ - -############################################################################ -# BEGIN of script assigned default variables -# -export CACHEBASE="file://$HOME/cache" -export CACHETRANSPORT="curl --silent" -CLEAR_CACHE=0 -MAKE_ARGS="" - -# -# END of script assigned variables -############################################################################ - -build() { - echo "CI build parameters:" - echo "SCRIPT_DIR = $SCRIPT_DIR" - echo "BUILD_BASE = $BUILD_BASE" - echo "RESULT_DIR = $RESULT_DIR" - echo "BUILD_SPEC = $BUILD_SPEC" - echo "LOCAL_CACHE_ARCH_NAME = $LOCAL_CACHE_ARCH_NAME" - echo "CLEAR_CACHE = $CLEAR_CACHE" - echo "DEBUG = $DEBUG" - echo "OUTPUT_DIR = $OUTPUT_DIR" - echo "BUILD_LOG = $BUILD_LOG" - echo "MAKE_ARGS = $MAKE_ARGS" - echo "CACHEBASE = $CACHEBASE" - echo "CACHETRANSPORT = $CACHETRANSPORT" - - - if [ "$CLEAR_CACHE" -eq 1 ]; then - echo $CACHEBASE | grep -q '^file://' $CACHE_BASE - if [ $? -ne 0 ]; then - error_exit "Can't clear a non-local cache!" - else - CACHEDIR=$(echo $CACHEBASE | sed 's;file://;;') - echo "Clearing local cache at $CACHEDIR..." - rm -rvf $CACHEDIR/* - fi - fi - - echo make ${MAKE_ARGS} cache - - cd ${BUILD_BASE} - if make ${MAKE_ARGS} cache; then - echo "Copying build result into $OUTPUT_DIR" - sort ${BUILD_BASE}/gitinfo*.txt > ${OUTPUT_DIR}/gitinfo.txt - cp ${RESULT_DIR}/*.iso ${OUTPUT_DIR} - cp ${RESULT_DIR}/*.iso.txt ${OUTPUT_DIR} - else - error_exit "Build failed" - fi -} - -############################################################################ -# BEGIN of main -# -while getopts "s:c:l:v:f:r:f:h" OPTION -do - case $OPTION in - s) - BUILD_SPEC=${OPTARG} - if [ ! -f ${BUILD_SPEC} ]; then - echo "spec file does not exist: $BUILD_SPEC - exiting ...." - exit 100 - fi - ;; - c) - # This value is used by cache.sh - export CACHEBASE=${OPTARG} - ;; - l) - BUILD_LOG=$(readlink -f ${OPTARG}) - ;; - v) - MAKE_ARGS+="REVSTATE=${OPTARG}" - ;; - r) - # This value is used by cache.sh - export CACHETRANSPORT=${OPTARG} - ;; - h) - usage - rc=0 - exit $rc - ;; - f) - BUILD_FLAGS=${OPTARG} - for ((i=0; i<${#BUILD_FLAGS};i++)); do - case ${BUILD_FLAGS:$i:1} in - s) - exit 0 - ;; - - f) - exit 1 - ;; - - P) - CLEAR_CACHE=1 - ;; - - D) - DEBUG=1 - ;; - - *) - error_exit "${BUILD_FLAGS:$i:1} is not a valid build flag - exiting ...." - ;; - esac - done - ;; - - *) - echo "${OPTION} is not a valid argument" - rc=100 - exit $rc - ;; - esac -done - -# Get output directory -shift $[$OPTIND - 1] -case $# in - 0) - # No directory on command line - OUTPUT_DIR=$(pwd) - ;; - 1) - # Directory on command line - OUTPUT_DIR=$(readlink -f $1) - ;; - *) - error_exit "Too many arguments" - ;; -esac -mkdir -p $OUTPUT_DIR || error_exit "Could not access output directory $OUTPUT_DIR" - - -if [ -n "${BUILD_LOG}" ]; then - touch ${BUILD_LOG} || error_exit "Could not write to log file ${BUILD_LOG}" - build 2>&1 | tee ${BUILD_LOG} -else - build -fi - -rc=$? -exit $rc - -# -# END of main -############################################################################ diff --git a/ci/clean_cache.sh b/ci/clean_cache.sh deleted file mode 100755 index 177fe821b..000000000 --- a/ci/clean_cache.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# 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 -############################################################################## - -# Clean the build cache according to its expiry date. Invoke with the cache -# directory as the first argument. - -if [ -z "$1" ]; then - echo "No cache directory specified, exiting..." - exit 1 -else - CACHEDIR=$1 - echo "Operating on cache $CACHEDIR" -fi - -NOW=$(date '+%s') - -cd $CACHEDIR -echo "Step 1, cleaning orphaned meta and blob files" -ls *.meta *.blob | sed 's/\..*//' | sort | uniq -u | xargs -n 1 -I {} sh -c "rm -vf {}.*" -echo "Step 2, cleaning expired files" -for cache in $(ls -1 *.meta | sed 's/\..*//') -do - blob=${cache}.blob - meta=${cache}.meta - expiry=$(grep Expires: $meta | sed 's/Expires: *//') - if [ $expiry -le $NOW ]; then - echo "$cache expired $(date -d "@$expiry"), removing..." - rm -f $blob $meta - fi -done - diff --git a/deploy/README b/deploy/README deleted file mode 100644 index ee6bc3156..000000000 --- a/deploy/README +++ /dev/null @@ -1,171 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# peter.barabas@ericsson.com -# 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 -############################################################################## - -======== PREREQUISITES ======== - -the following dependencies and python modules are required to be installed: - -- for Ubuntu: - -sudo apt-get update -sudo apt-get install -y libvirt-bin qemu-kvm python-pip fuseiso mkisofs \ -genisoimage ipmitool -sudo apt-get install -y python-dev libz-dev libxml2-dev libxslt-dev libyaml-dev -sudo pip install pyyaml netaddr paramiko lxml scp pycrypto ecdsa amt - -During libvirt install the user is added to the libvirtd group, so you have to -logout then login back again - - -======== PREPARE and RUN the OPNFV Autodeployment ======== - - ---- Step.1 Prepare the DEA and DHA configuration files and the OPNFV ISO file - -Make sure that you are using the right DEA - Deployment Environment Adapter and -DHA - Deployment Hardware Adapter configuration files, the ones provided are only templates -you will have to modify them according to your needs - -- If wou wish to deploy OPNFV cloud environment on top of KVM/Libvirt - virtualization use as example the following configuration files: - - => templates/virtual_environment/conf/ha - dea.yaml - dha.yaml - - -- If you wish to deploy OPNFV cloud environment on hardware - use as example the following configuration files: - - => templates/hardware_environment/conf/ericsson_montreal_lab/pod1/ha - dea.yaml - dha.yaml - - => templates/hardware_environment/conf/linux_foundation_lab/pod1/ha - dea.yaml - dha.yaml - - => templates/hardware_environment/conf/linux_foundation_lab/pod2/ha - dea.yaml - dha.yaml - - ---- Step.2 Run Autodeployment --- - -usage: python ./deploy.py [-h] [-nf] [-nh] [-fo] [-co] [-c] [-iso [ISO_FILE]] - [-dea [DEA_FILE]] [-dha [DHA_FILE]] [-s STORAGE_DIR] - [-b PXE_BRIDGE] [-p FUEL_PLUGINS_DIR] - [-pc FUEL_PLUGINS_CONF_DIR] [-np] - [-dt DEPLOY_TIMEOUT] [-nde] - -optional arguments: - -h, --help show this help message and exit - -nf Do not install Fuel Master (and Node VMs when using - libvirt) - -nh Don't run health check after deployment - -fo Install Fuel Master only (and Node VMs when using - libvirt) - -co Cleanup VMs and Virtual Networks according to what is - defined in DHA - -c Cleanup after deploy - -iso [ISO_FILE] ISO File [default: OPNFV.iso] - -dea [DEA_FILE] Deployment Environment Adapter: dea.yaml - -dha [DHA_FILE] Deployment Hardware Adapter: dha.yaml - -s STORAGE_DIR Storage Directory [default: images] - -b PXE_BRIDGE Linux Bridge for booting up the Fuel Master VM - [default: pxebr] - -p FUEL_PLUGINS_DIR Fuel Plugins directory - -pc FUEL_PLUGINS_CONF_DIR - Fuel Plugins Configuration directory - -np Do not install Fuel Plugins - -dt DEPLOY_TIMEOUT Deployment timeout (in minutes) [default: 240] - -nde Do not launch environment deployment - -log [LOG_FILE] Deployment log path and file name - -* EXAMPLES: - -- Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware Environment: - - sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr -log ~/Deployment-888.log.tar.gz - - -- Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual Environment: - - sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images -log ~/Deployment-888.log.tar.gz - - -- Deploy OPNFV Cloud on an already active Environment where Fuel Master VM is running so no need to install Fuel again: - - sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -log ~/Deployment-888.log.tar.gz - - => with plugin installation - sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -log ~/Deployment-888.log.tar.gz - - => with cleanup after deployment is finished - sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -c -log ~/Deployment-888.log.tar.gz - - => no healthcheck after deployment is completed - sudo python deploy.py -nf -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -nh -log ~/Deployment-888.log.tar.gz - - -- Install Fuel Master only (and Node VMs when using virtual environment): - - => for virtual environment: - sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images -log ~/Deployment-888.log.tar.gz - - => for hardware environment: - sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr -log ~/Deployment-888.log.tar.gz - - -- Cleanup a running OPNFV environment: - - sudo python deploy.py -co -dha ~/CONF/virtual/dha.yaml - - -* WARNINGS: - -=> If optional argument -s <storage_dir> is not specified, Autodeployment will use -"<current_working_dir>/images" as default, and it will create it, if it hasn't been created before - -=> If optional argument -b <pxe_bridge> is not specified, Autodeployment will use "pxebr" as default, -if the bridge does not exist, the application will terminate with an error message - -=> If argument -iso [ISO_FILE] is not specified, Autodeployment will use "<current_working_dir>/OPNFV.iso" -as default, if the iso file does not exist, the application will terminate with an error message - -=> If argument -dea [DEA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dea.yaml" -as default, if DEA file does not exist, the application will terminate with an error message - -=> If argument -dha [DHA_FILE] is not specified, Autodeployment will use "<current_working_dir>/dha.yaml" -as default, if DHA file does not exist, the application will terminate with an error message - -=> Optional argument -b PXE_BRIDGE is not required for Autodeployment in virtual environment, - even if it is specified it will not be used at all because virtual environment is using a different virtual network setup - -=> If optional argument -p FUEL_PLUGINS_DIR is not specified, no external plugins will be installed in Fuel - - ---- Networking considerations --- - -For Virtual Environment: - -There are some NAT, IPTABLE conflicts on the edge of libvirt bridging and Fuel Master -according to http://wiki.libvirt.org/page/Networking -netfilter on the bridges should be disabled - -Add these lines to /etc/sysctl.conf - -cat >> /etc/sysctl.conf <<EOF -net.bridge.bridge-nf-call-ip6tables = 0 -net.bridge.bridge-nf-call-iptables = 0 -net.bridge.bridge-nf-call-arptables = 0 -EOF - -and then reload configuration: -sysctl -p /etc/sysctl.conf diff --git a/deploy/README.templater b/deploy/README.templater deleted file mode 100644 index b5d52ab9d..000000000 --- a/deploy/README.templater +++ /dev/null @@ -1,371 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# peter.barabas@ericsson.com -# 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 -############################################################################## - -======== TEMPLATING SUPPORT IN YAML CONFIGURATION FILES ======== - -deploy/templater.py makes it possible to use templates to generate configuration -files. It takes 2 input YAML files and an output file as arguments. One being -the dictionary (called the base file), which is used to look up values in; the -other file is the template, where the substitution will take place. Templater -will write the result to an output file, specified as the 3rd argument. - - -======== SYNTAX OF TEMPLATE FILES ======== - -A template file can contain any valid YAML data and template variables, whose -syntax is described below: - -1. Single value references - - %{title} - - %{environment/net_segment_type} - - Either a root element, or a path can be specified. - -2. YAML sections - - %{nodes} - - %{network/networking_parameters} - - Either a root element, or a path can be specified. - -3. Interface lookup for network - - %{interface(storage)} - - Specify a network type as argument to interface(). - -4. Interface lookup for network and role - - %{interface(public,compute)} - - Specify a network type and a role as arguments to interface(). - -5. File inclusion - - %{include(templates/interfaces.yaml)} - - Filename with absolute or relative path. - - -======== EXAMPLES ======== - -Base YAML file (excerpt): - -title: Deployment Environment Adapter (DEA) -version: 1.1 -created: Wed Mar 30 08:16:04 2016 -environment: - name: vCity - net_segment_type: tun -wanted_release: Liberty on Ubuntu 14.04 -nodes: -- id: 1 - interfaces: interfaces_1 - role: ceph-osd,compute - transformations: transformations_1 -- id: 2 - interfaces: interfaces_1 - role: ceph-osd,compute - transformations: transformations_1 -- id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - transformations: transformations_1 -- id: 4 - interfaces: interfaces_2 - role: controller,mongo - transformations: transformations_2 -- id: 5 - interfaces: interfaces_2 - role: controller,mongo - transformations: transformations_2 -- id: 6 - interfaces: interfaces_2 - role: controller,mongo - transformations: transformations_2 -interfaces_1: - ens3: - - fuelweb_admin - - management - ens4: - - storage - ens5: - - private - ens6: - - public -interfaces_2: - ens3: - - fuelweb_admin - - management - ens4: - - storage - - private - - public -network: - networks: - - cidr: 172.16.0.0/24 - gateway: 172.16.0.1 - ip_ranges: - - - 172.16.0.2 - - 172.16.0.126 - meta: - cidr: 172.16.0.0/24 - configurable: true - floating_range_var: floating_ranges - ip_range: - - 172.16.0.2 - - 172.16.0.126 - map_priority: 1 - name: public - notation: ip_ranges - render_addr_mask: public - render_type: null - use_gateway: true - vips: - - haproxy - - vrouter - vlan_start: null - name: public - vlan_start: null - - cidr: 192.168.1.0/24 - gateway: null - ip_ranges: - - - 192.168.1.1 - - 192.168.1.254 - meta: - cidr: 192.168.1.0/24 - configurable: true - map_priority: 2 - name: storage - notation: cidr - render_addr_mask: storage - render_type: cidr - use_gateway: false - vlan_start: 102 - name: storage - vlan_start: 102 - - ---- Example 1 --- - -Template file: - -deployment-scenario-metadata: - title: %{title} - version: 0.1 -dea-override-config: - environment: - net_segment_type: %{environment/net_segment_type} - nodes: - %{nodes} - - -Result: - -deployment-scenario-metadata: - title: Deployment Environment Adapter (DEA) - version: 0.1 -dea-override-config: - environment: - net_segment_type: tun - nodes: - - id: 1 - interfaces: interfaces_1 - role: ceph-osd,compute - transformations: transformations_1 - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,compute - transformations: transformations_1 - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - transformations: transformations_1 - - id: 4 - interfaces: interfaces_2 - role: controller,mongo - transformations: transformations_2 - - id: 5 - interfaces: interfaces_2 - role: controller,mongo - transformations: transformations_2 - - id: 6 - interfaces: interfaces_2 - role: controller,mongo - transformations: transformations_2 - - ---- Example 2 --- - -Template file: - -dea-override-config: - network: - networks: - %{network/networks} - - -Result: - -dea-override-config: - network: - networks: - - cidr: 172.16.0.0/24 - gateway: 172.16.0.1 - ip_ranges: - - - 172.16.0.2 - - 172.16.0.126 - meta: - cidr: 172.16.0.0/24 - configurable: true - floating_range_var: floating_ranges - ip_range: - - 172.16.0.2 - - 172.16.0.126 - map_priority: 1 - name: public - notation: ip_ranges - render_addr_mask: public - render_type: null - use_gateway: true - vips: - - haproxy - - vrouter - vlan_start: null - name: public - vlan_start: null - - cidr: 192.168.1.0/24 - gateway: null - ip_ranges: - - - 192.168.1.1 - - 192.168.1.254 - meta: - cidr: 192.168.1.0/24 - configurable: true - map_priority: 2 - name: storage - notation: cidr - render_addr_mask: storage - render_type: cidr - use_gateway: false - vlan_start: 102 - name: storage - vlan_start: 102 - - ---- Example 3 --- - -Template file: - -storage_if: %{interface(storage)} -compute_private_if: %{interface(private,compute)} -# Management interface of a mongo node -mongo_mgmt_if: %{interface(management,mongo)} -controller_private_if: %{interface(private,controller)} - - -Result: - -storage_if: ens4 -compute_private_if: ens5 -# Management interface of a mongo node -mongo_mgmt_if: ens3 -controller_private_if: ens4 - - ---- Example 4 --- - -Template file: - -version: 1.1 -created: Mon Jun 13 19:39:35 2016 -comment: None -%{include(environment.yaml)} - - -environment.yaml: - -environment: - name: F9-NOSDN-NOFEATURE-VXLAN-BAREMETAL - net_segment_type: tun - - -Result: - -version: 1.1 -created: Mon Jun 13 19:39:35 2016 -comment: None -environment: - name: F9-NOSDN-NOFEATURE-VXLAN-BAREMETAL - net_segment_type: tun - - ---- Example 5 --- - -Template file (except): - -settings: - editable: - access: - email: - description: Email address for Administrator - label: Email - regex: - error: Invalid email - source: ^\S+@\S+$ - type: text - value: admin@localhost - weight: 40 -# ... -# lines omitted for brevity - %{include(templates/cgroups.yaml)} - - -cgroups.yaml: - - cgroups: - metadata: - always_editable: true - group: general - label: Cgroups conguration for services - restrictions: - - action: hide - condition: 'true' - weight: 90 - - -Result: - -settings: - editable: - access: - email: - description: Email address for Administrator - label: Email - regex: - error: Invalid email - source: ^\S+@\S+$ - type: text - value: admin@localhost - weight: 40 -# ... -# again, lines omitted for brevity - cgroups: - metadata: - always_editable: true - group: general - label: Cgroups conguration for services - restrictions: - - action: hide - condition: 'true' - weight: 90 - diff --git a/deploy/__init__.py b/deploy/__init__.py deleted file mode 100644 index fb73157f9..000000000 --- a/deploy/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### diff --git a/deploy/cloud/configure_environment.py b/deploy/cloud/configure_environment.py deleted file mode 100644 index 0fbf225c6..000000000 --- a/deploy/cloud/configure_environment.py +++ /dev/null @@ -1,73 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from configure_settings import ConfigureSettings -from configure_network import ConfigureNetwork -from configure_nodes import ConfigureNodes - -from common import ( - E, - exec_cmd, - parse, - err, - log, - delete, - create_dir_if_not_exists, -) - - -class ConfigureEnvironment(object): - - def __init__(self, dea, yaml_config_dir, release_id, node_id_roles_dict): - self.env_id = None - self.dea = dea - self.yaml_config_dir = yaml_config_dir - self.release_id = release_id - self.node_id_roles_dict = node_id_roles_dict - self.required_networks = [] - - def env_exists(self, env_name): - env_list = parse(exec_cmd('fuel env --list')) - for env in env_list: - if env[E['name']] == env_name and env[E['status']] == 'new': - self.env_id = env[E['id']] - return True - return False - - def configure_environment(self): - log('Configure environment') - delete(self.yaml_config_dir) - create_dir_if_not_exists(self.yaml_config_dir) - env_name = self.dea.get_env_name() - env_net_segment_type = self.dea.get_env_net_segment_type() - log('Creating environment %s release %s net-segment-type %s' - % (env_name, self.release_id, env_net_segment_type)) - exec_cmd('fuel env create --name "%s" --release %s --net-segment-type %s' - % (env_name, self.release_id, env_net_segment_type)) - - if not self.env_exists(env_name): - err('Failed to create environment %s' % env_name) - self.config_settings() - self.config_network() - self.config_nodes() - - def config_settings(self): - settings = ConfigureSettings(self.yaml_config_dir, self.env_id, - self.dea) - settings.config_settings() - - def config_network(self): - network = ConfigureNetwork(self.yaml_config_dir, self.env_id, self.dea) - network.config_network() - - def config_nodes(self): - nodes = ConfigureNodes(self.yaml_config_dir, self.env_id, - self.node_id_roles_dict, self.dea) - nodes.config_nodes() diff --git a/deploy/cloud/configure_network.py b/deploy/cloud/configure_network.py deleted file mode 100644 index b3ff9e9e0..000000000 --- a/deploy/cloud/configure_network.py +++ /dev/null @@ -1,69 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import yaml -import io - -from common import ( - exec_cmd, - check_file_exists, - log, - backup, -) - - -class ConfigureNetwork(object): - - def __init__(self, yaml_config_dir, env_id, dea): - self.yaml_config_dir = yaml_config_dir - self.env_id = env_id - self.dea = dea - self.required_networks = [] - - def download_network_config(self): - log('Download network config for environment %s' % self.env_id) - exec_cmd('fuel network --env %s --download --dir %s' - % (self.env_id, self.yaml_config_dir)) - - def upload_network_config(self): - log('Upload network config for environment %s' % self.env_id) - exec_cmd('fuel network --env %s --upload --dir %s' - % (self.env_id, self.yaml_config_dir)) - - def config_network(self): - log('Configure network') - self.download_network_config() - self.modify_network_config() - self.upload_network_config() - - def modify_network_config(self): - log('Modify network config for environment %s' % self.env_id) - network_yaml = ('%s/network_%s.yaml' - % (self.yaml_config_dir, self.env_id)) - check_file_exists(network_yaml) - backup(network_yaml) - - network_config = self.dea.get_property('network') - - with io.open(network_yaml) as stream: - network = yaml.load(stream) - - net_names = self.dea.get_network_names() - net_id = {} - for net in network['networks']: - if net['name'] in net_names: - net_id[net['name']] = {'id': net['id'], - 'group_id': net['group_id']} - - for network in network_config['networks']: - network.update(net_id[network['name']]) - - with io.open(network_yaml, 'w') as stream: - yaml.dump(network_config, stream, default_flow_style=False) diff --git a/deploy/cloud/configure_nodes.py b/deploy/cloud/configure_nodes.py deleted file mode 100644 index a50973af6..000000000 --- a/deploy/cloud/configure_nodes.py +++ /dev/null @@ -1,194 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - -import copy -import io - -import six -import yaml - -from common import ( - exec_cmd, - check_file_exists, - log, - backup, -) - - -class ConfigureNodes(object): - - def __init__(self, yaml_config_dir, env_id, node_id_roles_dict, dea): - self.yaml_config_dir = yaml_config_dir - self.env_id = env_id - self.node_id_roles_dict = node_id_roles_dict - self.dea = dea - - def config_nodes(self): - log('Configure nodes') - - # Assign nodes to environment with given roles - for node_id, roles_blade in self.node_id_roles_dict.iteritems(): - exec_cmd('fuel node set --node-id %s --role %s --env %s' - % (node_id, roles_blade[0], self.env_id)) - - for node_id, roles_blade in self.node_id_roles_dict.iteritems(): - # Modify interfaces configuration - self.download_interface_config(node_id) - self.modify_node_interface(node_id, roles_blade) - self.upload_interface_config(node_id) - # Modify node attributes - self.download_attributes(node_id) - self.modify_node_attributes(node_id, roles_blade) - self.upload_attributes(node_id) - - # Currently not used, we use default deployment facts - # which are generated by fuel based on type segmentation - # and network to nic assignment - # - # Download our modified deployment configuration, which includes our - # changes to network topology etc. - #self.download_deployment_config() - #for node_id, roles_blade in self.node_id_roles_dict.iteritems(): - # self.modify_node_network_schemes(node_id, roles_blade) - #self.upload_deployment_config() - - def modify_node_network_schemes(self, node_id, roles_blade): - log('Modify network transformations for node %s' % node_id) - type = self.dea.get_node_property(roles_blade[1], 'transformations') - transformations = self.dea.get_property(type) - deployment_dir = '%s/deployment_%s' % ( - self.yaml_config_dir, self.env_id) - backup(deployment_dir) - node_file = ('%s/%s.yaml' % (deployment_dir, node_id)) - with io.open(node_file) as stream: - node = yaml.load(stream) - - node['network_scheme'].update(transformations) - - with io.open(node_file, 'w') as stream: - yaml.dump(node, stream, default_flow_style=False) - - def download_deployment_config(self): - log('Download deployment config for environment %s' % self.env_id) - exec_cmd('fuel deployment --env %s --default --dir %s' - % (self.env_id, self.yaml_config_dir)) - - def upload_deployment_config(self): - log('Upload deployment config for environment %s' % self.env_id) - exec_cmd('fuel deployment --env %s --upload --dir %s' - % (self.env_id, self.yaml_config_dir)) - - def download_interface_config(self, node_id): - log('Download interface config for node %s' % node_id) - exec_cmd('fuel node --env %s --node %s --network --download ' - '--dir %s' % (self.env_id, node_id, self.yaml_config_dir)) - - def upload_interface_config(self, node_id): - log('Upload interface config for node %s' % node_id) - exec_cmd('fuel node --env %s --node %s --network --upload ' - '--dir %s' % (self.env_id, node_id, self.yaml_config_dir)) - - def download_attributes(self, node_id): - log('Download attributes for node %s' % node_id) - exec_cmd('fuel node --env %s --node %s --attributes --download ' - '--dir %s' % (self.env_id, node_id, self.yaml_config_dir)) - - def upload_attributes(self, node_id): - log('Upload attributes for node %s' % node_id) - exec_cmd('fuel node --env %s --node %s --attributes --upload ' - '--dir %s' % (self.env_id, node_id, self.yaml_config_dir)) - - def modify_node_attributes(self, node_id, roles_blade): - log('Modify attributes for node {0}'.format(node_id)) - dea_key = self.dea.get_node_property(roles_blade[1], 'attributes') - if not dea_key: - # Node attributes are not overridden. Nothing to do. - return - new_attributes = self.dea.get_property(dea_key) - attributes_yaml = ('%s/node_%s/attributes.yaml' - % (self.yaml_config_dir, node_id)) - check_file_exists(attributes_yaml) - backup('%s/node_%s' % (self.yaml_config_dir, node_id)) - - with open(attributes_yaml) as stream: - attributes = yaml.load(stream) - result_attributes = self._merge_dicts(attributes, new_attributes) - - with open(attributes_yaml, 'w') as stream: - yaml.dump(result_attributes, stream, default_flow_style=False) - - # interface configuration can - # looks like this: - # - # interfaces_dpdk: - # ens3: - # - fuelweb_admin - # ens4: - # - storage - # - management - # ens5: - # - interface_properties: - # dpdk: - # enabled: - # value: true - # - private - # ens6: - # - public - def modify_node_interface(self, node_id, roles_blade): - log('Modify interface config for node %s' % node_id) - interface_yaml = ('%s/node_%s/interfaces.yaml' - % (self.yaml_config_dir, node_id)) - check_file_exists(interface_yaml) - backup('%s/node_%s' % (self.yaml_config_dir, node_id)) - - with io.open(interface_yaml) as stream: - interfaces = yaml.load(stream) - - net_name_id = {} - for interface in interfaces: - for network in interface['assigned_networks']: - net_name_id[network['name']] = network['id'] - - type = self.dea.get_node_property(roles_blade[1], 'interfaces') - interface_config = self.dea.get_property(type) - - for interface in interfaces: - interface['assigned_networks'] = [] - if interface['name'] in interface_config: - for prop in interface_config[interface['name']]: - net = {} - # net name - if isinstance(prop, six.string_types): - net['id'] = net_name_id[prop] - net['name'] = prop - interface['assigned_networks'].append(net) - # network properties - elif isinstance(prop, dict): - if 'interface_properties' not in prop: - log('Interface configuration contains unknown dict: %s' % prop) - continue - interface['attributes'] = self._merge_dicts( - interface.get('attributes', {}), - prop.get('interface_properties', {})) - - with io.open(interface_yaml, 'w') as stream: - yaml.dump(interfaces, stream, default_flow_style=False) - - def _merge_dicts(self, dict1, dict2): - """Recursively merge dictionaries.""" - result = copy.deepcopy(dict1) - for k, v in six.iteritems(dict2): - if isinstance(result.get(k), list) and isinstance(v, list): - result[k].extend(v) - continue - if isinstance(result.get(k), dict) and isinstance(v, dict): - result[k] = self._merge_dicts(result[k], v) - continue - result[k] = copy.deepcopy(v) - return result diff --git a/deploy/cloud/configure_settings.py b/deploy/cloud/configure_settings.py deleted file mode 100644 index b60a60fd1..000000000 --- a/deploy/cloud/configure_settings.py +++ /dev/null @@ -1,75 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import yaml -import io - -from common import ( - exec_cmd, - check_file_exists, - log, - backup, -) - - -class ConfigureSettings(object): - - def __init__(self, yaml_config_dir, env_id, dea): - self.yaml_config_dir = yaml_config_dir - self.env_id = env_id - self.dea = dea - - def download_settings(self): - log('Download settings for environment %s' % self.env_id) - exec_cmd('fuel settings --env %s --download --dir %s' - % (self.env_id, self.yaml_config_dir)) - - def upload_settings(self): - log('Upload settings for environment %s' % self.env_id) - exec_cmd('fuel settings --env %s --upload --dir %s' - % (self.env_id, self.yaml_config_dir)) - - def config_settings(self): - log('Configure settings') - self.download_settings() - self.modify_settings() - self.upload_settings() - - def modify_settings(self): - log('Modify settings for environment %s' % self.env_id) - settings_yaml = ('%s/settings_%s.yaml' - % (self.yaml_config_dir, self.env_id)) - check_file_exists(settings_yaml) - - with io.open(settings_yaml, 'r') as stream: - orig_dea = yaml.load(stream) - - backup(settings_yaml) - settings = self.dea.get_property('settings') - # Copy fuel defined plugin_id's to user defined settings - # From Fuel 8.0 chosen_id was added because it is now - # possible to install many version of the same plugin - # but we will install only one version - for plugin in orig_dea['editable']: - if 'metadata' in orig_dea['editable'][plugin]: - if 'plugin_id' in orig_dea['editable'][plugin]['metadata']: - if not plugin in settings['editable']: - settings['editable'][plugin] = orig_dea['editable'][plugin] - else: - settings['editable'][plugin]["metadata"]["plugin_id"] = orig_dea['editable'][plugin]["metadata"]["plugin_id"] - elif 'chosen_id' in orig_dea['editable'][plugin]['metadata']: - if not plugin in settings['editable']: - settings['editable'][plugin] = orig_dea['editable'][plugin] - else: - settings['editable'][plugin]['metadata']['chosen_id'] = orig_dea['editable'][plugin]['metadata']['chosen_id'] - settings['editable'][plugin]['metadata']['versions'][0]['metadata']['plugin_id'] = orig_dea['editable'][plugin]['metadata']['versions'][0]['metadata']['plugin_id'] - - with io.open(settings_yaml, 'w') as stream: - yaml.dump(settings, stream, default_flow_style=False) diff --git a/deploy/cloud/deploy.py b/deploy/cloud/deploy.py deleted file mode 100644 index dac2fe8dd..000000000 --- a/deploy/cloud/deploy.py +++ /dev/null @@ -1,109 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from dea import DeploymentEnvironmentAdapter -from configure_environment import ConfigureEnvironment -from deployment import Deployment - -from common import ( - R, - exec_cmd, - parse, - check_file_exists, - commafy, - ArgParser, - log, -) - -YAML_CONF_DIR = '/var/lib/opnfv' - - -class Deploy(object): - - def __init__(self, dea_file, no_health_check, deploy_timeout, - no_deploy_environment): - self.dea = DeploymentEnvironmentAdapter(dea_file) - self.no_health_check = no_health_check - self.deploy_timeout = deploy_timeout - self.no_deploy_environment = no_deploy_environment - self.macs_per_blade = {} - self.blades = self.dea.get_node_ids() - self.blade_node_dict = self.dea.get_blade_node_map() - self.node_roles_dict = {} - self.env_id = None - self.wanted_release = self.dea.get_property('wanted_release') - - def assign_roles_to_cluster_node_ids(self): - self.node_roles_dict = {} - for blade, node in self.blade_node_dict.iteritems(): - if self.dea.get_node_roles(blade): - roles = commafy(self.dea.get_node_roles(blade)) - self.node_roles_dict[node] = (roles, blade) - - def configure_environment(self): - release_list = parse(exec_cmd('fuel release -l')) - for release in release_list: - if release[R['name']] == self.wanted_release: - break - config_env = ConfigureEnvironment(self.dea, YAML_CONF_DIR, - release[R['id']], - self.node_roles_dict) - config_env.configure_environment() - self.env_id = config_env.env_id - - def deploy_cloud(self): - dep = Deployment(self.dea, YAML_CONF_DIR, self.env_id, - self.node_roles_dict, self.no_health_check, - self.deploy_timeout) - if not self.no_deploy_environment: - dep.deploy() - else: - log('Configuration is done. Deployment is not launched.') - - def deploy(self): - - self.assign_roles_to_cluster_node_ids() - - self.configure_environment() - - self.deploy_cloud() - - -def parse_arguments(): - parser = ArgParser(prog='python %s' % __file__) - parser.add_argument('-nh', dest='no_health_check', action='store_true', - default=False, - help='Don\'t run health check after deployment') - parser.add_argument('-dt', dest='deploy_timeout', action='store', - default=240, help='Deployment timeout (in minutes) ' - '[default: 240]') - parser.add_argument('-nde', dest='no_deploy_environment', - action='store_true', default=False, - help=('Do not launch environment deployment')) - parser.add_argument('dea_file', action='store', - help='Deployment Environment Adapter: dea.yaml') - - args = parser.parse_args() - check_file_exists(args.dea_file) - - kwargs = {'dea_file': args.dea_file, - 'no_health_check': args.no_health_check, - 'deploy_timeout': args.deploy_timeout, - 'no_deploy_environment': args.no_deploy_environment} - return kwargs - - -def main(): - kwargs = parse_arguments() - deploy = Deploy(**kwargs) - deploy.deploy() - -if __name__ == '__main__': - main() diff --git a/deploy/cloud/deployment.py b/deploy/cloud/deployment.py deleted file mode 100644 index 4329a4cec..000000000 --- a/deploy/cloud/deployment.py +++ /dev/null @@ -1,230 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - -import time -import re -import json - -from common import ( - N, - exec_cmd, - parse, - err, - log, -) - -SEARCH_TEXT = '(err)' -LOG_FILE = '/var/log/puppet.log' -GREP_LINES_OF_LEADING_CONTEXT = 100 -GREP_LINES_OF_TRAILING_CONTEXT = 100 -LIST_OF_CHAR_TO_BE_ESCAPED = ['[', ']', '"'] -ERROR_MSGS = ['Critical nodes are not available for deployment', - 'offline. Remove them from environment and try again.', - 'Task[move_to_bootstrap/', - 'Failed tasks: Task[connectivity-checker/'] - - -class DeployNotStart(Exception): - """Unable to start deployment""" - - -class NodesGoOffline(Exception): - """Nodes goes offline during deployment""" - - -class Deployment(object): - - def __init__(self, dea, yaml_config_dir, env_id, node_id_roles_dict, - no_health_check, deploy_timeout): - self.dea = dea - self.yaml_config_dir = yaml_config_dir - self.env_id = env_id - self.node_id_roles_dict = node_id_roles_dict - self.no_health_check = no_health_check - self.deploy_timeout = deploy_timeout - self.pattern = re.compile( - '\d\d\d\d-\d\d-\d\d\s\d\d:\d\d:\d\d') - - def collect_error_logs(self): - for node_id, roles_blade in self.node_id_roles_dict.iteritems(): - log_list = [] - cmd = ('ssh -q node-%s grep \'"%s"\' %s' - % (node_id, SEARCH_TEXT, LOG_FILE)) - results, _ = exec_cmd(cmd, False) - for result in results.splitlines(): - log_msg = '' - - sub_cmd = '"%s" %s' % (result, LOG_FILE) - for c in LIST_OF_CHAR_TO_BE_ESCAPED: - sub_cmd = sub_cmd.replace(c, '\%s' % c) - grep_cmd = ('grep -B%s %s' - % (GREP_LINES_OF_LEADING_CONTEXT, sub_cmd)) - cmd = ('ssh -q node-%s "%s"' % (node_id, grep_cmd)) - - details, _ = exec_cmd(cmd, False) - details_list = details.splitlines() - - found_prev_log = False - for i in range(len(details_list) - 2, -1, -1): - if self.pattern.match(details_list[i]): - found_prev_log = True - break - if found_prev_log: - log_msg += '\n'.join(details_list[i:-1]) + '\n' - - grep_cmd = ('grep -A%s %s' - % (GREP_LINES_OF_TRAILING_CONTEXT, sub_cmd)) - cmd = ('ssh -q node-%s "%s"' % (node_id, grep_cmd)) - - details, _ = exec_cmd(cmd, False) - details_list = details.splitlines() - - found_next_log = False - for i in range(1, len(details_list)): - if self.pattern.match(details_list[i]): - found_next_log = True - break - if found_next_log: - log_msg += '\n'.join(details_list[:i]) - else: - log_msg += details - - if log_msg: - log_list.append(log_msg) - - if log_list: - role = ('controller' if 'controller' in roles_blade[0] - else 'compute host') - log('_' * 40 + 'Errors in node-%s %s' % (node_id, role) - + '_' * 40) - for log_msg in log_list: - print(log_msg + '\n') - - def run_deploy(self): - SLEEP_TIME = 60 - abort_after = 60 * int(self.deploy_timeout) - start = time.time() - - log('Starting deployment of environment %s' % self.env_id) - deploy_id = None - ready = False - timeout = False - - attempts = 5 - while attempts > 0: - try: - if time.time() > start + abort_after: - timeout = True - break - if not deploy_id: - deploy_id = self._start_deploy_task() - sts, prg, msg = self._deployment_status(deploy_id) - if sts == 'error': - log('Error during deployment: {}'.format(msg)) - break - if sts == 'running': - log('Environment deployment progress: {}%'.format(prg)) - elif sts == 'ready': - ready = True - break - time.sleep(SLEEP_TIME) - except (DeployNotStart, NodesGoOffline) as e: - log(e) - attempts -= 1 - deploy_id = None - time.sleep(SLEEP_TIME * attempts) - - if timeout: - err('Deployment timed out, environment %s is not operational, ' - 'snapshot will not be performed' - % self.env_id) - if ready: - log('Environment %s successfully deployed' - % self.env_id) - else: - self.collect_error_logs() - err('Deployment failed, environment %s is not operational' - % self.env_id, self.collect_logs) - - def _start_deploy_task(self): - out, _ = exec_cmd('fuel2 env deploy {}'.format(self.env_id), False) - id = self._deployment_task_id(out) - return id - - def _deployment_task_id(self, response): - response = str(response) - if response.startswith('Deployment task with id'): - for s in response.split(): - if s.isdigit(): - return int(s) - raise DeployNotStart('Unable to start deployment: {}'.format(response)) - - def _deployment_status(self, id): - task = self._task_fields(id) - if task['status'] == 'error': - if any(msg in task['message'] for msg in ERROR_MSGS): - raise NodesGoOffline(task['message']) - return task['status'], task['progress'], task['message'] - - def _task_fields(self, id): - try: - out, _ = exec_cmd('fuel2 task show {} -f json'.format(id), False) - task_info = json.loads(out) - properties = {} - # for 9.0 this can be list of dicts or dict - # see https://bugs.launchpad.net/fuel/+bug/1625518 - if isinstance(task_info, list): - for d in task_info: - properties.update({d['Field']: d['Value']}) - else: - return task_info - return properties - except ValueError as e: - err('Unable to fetch task info: {}'.format(e)) - - def collect_logs(self): - log('Cleaning out any previous deployment logs') - exec_cmd('rm -f /var/log/remote/fuel-snapshot-*', False) - exec_cmd('rm -f /root/deploy-*', False) - log('Generating Fuel deploy snap-shot') - if exec_cmd('fuel snapshot < /dev/null &> snapshot.log', False)[1] != 0: - log('Could not create a Fuel snapshot') - else: - exec_cmd('mv /root/fuel-snapshot* /var/log/remote/', False) - - log('Collecting all Fuel Snapshot & deploy log files') - r, _ = exec_cmd('tar -czhf /root/deploy-%s.log.tar.gz /var/log/remote' % time.strftime("%Y%m%d-%H%M%S"), False) - log(r) - - def verify_node_status(self): - node_list = parse(exec_cmd('fuel --env %s node' % self.env_id)) - failed_nodes = [] - for node in node_list: - if node[N['status']] != 'ready': - failed_nodes.append((node[N['id']], node[N['status']])) - - if failed_nodes: - summary = '' - for node, status in failed_nodes: - summary += '[node %s, status %s]\n' % (node, status) - err('Deployment failed: %s' % summary, self.collect_logs) - - def health_check(self): - log('Now running sanity and smoke health checks') - r = exec_cmd('fuel health --env %s --check sanity,smoke --force' % self.env_id) - log(r) - if 'failure' in r: - err('Healthcheck failed!', self.collect_logs) - - def deploy(self): - self.run_deploy() - self.verify_node_status() - if not self.no_health_check: - self.health_check() - self.collect_logs() diff --git a/deploy/common.py b/deploy/common.py deleted file mode 100644 index b3d552415..000000000 --- a/deploy/common.py +++ /dev/null @@ -1,201 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# peter.barabas@ericsson.com -# 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 -############################################################################### - - -import subprocess -import sys -import os -import logging -import argparse -import shutil -import errno -import time -import shlex - -N = {'id': 0, 'status': 1, 'name': 2, 'cluster': 3, 'ip': 4, 'mac': 5, - 'roles': 6, 'pending_roles': 7, 'online': 8, 'group_id': 9} -E = {'id': 0, 'status': 1, 'name': 2, 'release_id': 3, 'pending_release_id': 4} -R = {'id': 0, 'name': 1, 'state': 2, 'operating_system': 3, 'version': 4} -RO = {'name': 0, 'conflicts': 1} -CWD = os.getcwd() -LOG = logging.getLogger(__name__) -LOG.setLevel(logging.DEBUG) -formatter = logging.Formatter('%(message)s') -out_handler = logging.StreamHandler(sys.stdout) -out_handler.setFormatter(formatter) -LOG.addHandler(out_handler) -LOGFILE = 'autodeploy.log' -if os.path.isfile(LOGFILE): - os.remove(LOGFILE) -out_handler = logging.FileHandler(LOGFILE, mode='w') -out_handler.setFormatter(formatter) -LOG.addHandler(out_handler) -os.chmod(LOGFILE, 0664) - - -def mask_arguments(cmd, mask_args, mask_str): - cmd_line = shlex.split(cmd) - for pos in mask_args: - # Don't mask the actual command; also check if we don't reference - # beyond bounds - if pos == 0 or pos >= len(cmd_line): - continue - cmd_line[pos] = mask_str - return ' '.join(cmd_line) - - -def exec_cmd(cmd, check=True, attempts=1, delay=5, verbose=False, mask_args=[], mask_str='*****'): - masked_cmd = mask_arguments(cmd, mask_args, mask_str) - - # a negative value means forever - while attempts != 0: - attempts -= 1 - process = subprocess.Popen(cmd, - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, - shell=True) - (response, stderr) = process.communicate() - return_code = process.returncode - if return_code == 0 or attempts == 0: - break - time.sleep(delay) - if verbose: - log('%d attempts left: %s' % (attempts, masked_cmd)) - - response = response.strip() - if check: - if return_code > 0: - stderr = stderr.strip() - print("Failed command: " + str(masked_cmd)) - print("Command returned response: " + str(stderr)) - print("Command return code: " + str(return_code)) - raise Exception(stderr) - else: - print("Command: " + str(masked_cmd)) - print(str(response)) - return response - return response, return_code - - -def run_proc(cmd): - process = subprocess.Popen(cmd, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - shell=True) - return process - - -def run_proc_wait_terminated(process): - response = process.communicate()[0].strip() - return_code = process.returncode - return response, return_code - - -def run_proc_kill(process): - response = process.kill() - return response - - -def parse(printout): - parsed_list = [] - lines = printout.splitlines() - for l in lines[2:]: - parsed = [e.strip() for e in l.split('|')] - parsed_list.append(parsed) - return parsed_list - - -def clean(lines): - parsed_list = [] - parsed = [] - for l in lines.strip().splitlines(): - parsed = [] - cluttered = [e.strip() for e in l.split(' ')] - for p in cluttered: - if p: - parsed.append(p) - parsed_list.append(parsed) - return parsed if len(parsed_list) == 1 else parsed_list - - -def err(message, fun=None, *args): - LOG.error('%s\n' % message) - if fun: - fun(*args) - sys.exit(1) - - -def warn(message): - LOG.warning('%s\n' % message) - - -def check_file_exists(file_path): - if not os.path.dirname(file_path): - file_path = '%s/%s' % (CWD, file_path) - if not os.access(file_path, os.R_OK): - err('ERROR: File %s not found\n' % file_path) - - -def check_dir_exists(dir_path): - if not os.path.dirname(dir_path): - dir_path = '%s/%s' % (CWD, dir_path) - if not os.path.isdir(dir_path): - err('ERROR: Directory %s not found\n' % dir_path) - - -def create_dir_if_not_exists(dir_path): - if not os.path.isdir(dir_path): - log('Creating directory %s' % dir_path) - os.makedirs(dir_path) - - -def delete(f): - if os.path.isfile(f): - log('Deleting file %s' % f) - os.remove(f) - elif os.path.isdir(f): - log('Deleting directory %s' % f) - shutil.rmtree(f) - - -def commafy(comma_separated_list): - l = [c.strip() for c in comma_separated_list.split(',')] - return ','.join(l) - - -def check_if_root(): - uid = os.getuid() - if uid != 0: - err('You need be root to run this application') - - -def log(message): - LOG.debug('%s\n' % message) - - -class ArgParser(argparse.ArgumentParser): - - def error(self, message): - sys.stderr.write('ERROR: %s\n' % message) - self.print_help() - sys.exit(2) - - -def backup(path): - src = path - dst = path + '_orig' - delete(dst) - try: - shutil.copytree(src, dst) - except OSError as e: - if e.errno == errno.ENOTDIR: - shutil.copy(src, dst) - else: - raise diff --git a/deploy/config/dea_base.yaml b/deploy/config/dea_base.yaml deleted file mode 100644 index 939ca7d70..000000000 --- a/deploy/config/dea_base.yaml +++ /dev/null @@ -1,1012 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -dea-base-config-metadata: - title: 'Deployment Environment Adapter Base configuration' - # DEA API version supported - version: '0.4' - created: 'Fri Jun 10 2016' - comment: 'Rebased for Fuel 10' -environment: - net_segment_type: tun -fuel: - FEATURE_GROUPS: - - experimental - FUEL_ACCESS: - password: admin - user: admin -wanted_release: Newton on Ubuntu 16.04 -settings: - editable: - access: - email: - description: Email address for Administrator - label: Email - regex: - error: Invalid email - source: ^\S+@\S+$ - type: text - value: admin@localhost - weight: 40 - metadata: - group: general - label: OpenStack Access - weight: 10 - password: - description: Password for Administrator - label: Password - regex: - error: Empty password - source: \S - type: password - value: admin - weight: 20 - tenant: - description: Tenant (project) name for Administrator - label: Tenant - regex: - error: Invalid tenant name - source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?!ironic$)(?![Gg]uest$)(?!.* - +.*$).+ - type: text - value: admin - weight: 30 - user: - description: Username for Administrator - label: Username - regex: - error: Invalid username - source: ^(?!services$)(?!nova$)(?!glance$)(?!keystone$)(?!neutron$)(?!cinder$)(?!swift$)(?!ceph$)(?!ironic$)(?![Gg]uest$)(?!.* - +.*$).+ - type: text - value: admin - weight: 10 - additional_components: - ceilometer: - description: If selected, Ceilometer and Aodh components will be installed - label: Install Ceilometer and Aodh - type: checkbox - value: true - weight: 60 - heat: - description: '' - label: '' - type: hidden - value: true - weight: 50 - ironic: - description: If selected, Ironic component will be installed - label: Install Ironic - restrictions: - - cluster:net_provider != 'neutron' or networking_parameters:segmentation_type != 'vlan': Ironic - requires Neutron with VLAN segmentation. - - settings:storage.images_ceph.value == true and settings:storage.objects_ceph.value == false: Ironic - requires Swift or RadosGW for Glance images. - type: checkbox - value: false - weight: 80 - metadata: - group: openstack_services - label: Additional Components - weight: 10 - mongo: - description: If selected, You can use external Mongo DB as ceilometer backend - label: Use external Mongo DB - restrictions: - - settings:additional_components.ceilometer.value == false: External Mongo - aims to be an external backend for Ceilometer. Without Ceilometer enabled, - External Mongo is useless and should not be installed. - type: checkbox - value: false - weight: 70 - murano: - description: If selected, Murano component will be installed - label: Install Murano - type: checkbox - value: false - weight: 20 - murano-cfapi: - description: If selected, Murano service broker will be installed - label: Install Murano service broker for Cloud Foundry - restrictions: - - condition: settings:additional_components.murano.value == false - message: Murano should be enabled - - action: hide - condition: not ('experimental' in version:feature_groups) - type: checkbox - value: false - weight: 30 - sahara: - description: If selected, Sahara component will be installed - label: Install Sahara - type: checkbox - value: false - weight: 10 - atop: - interval: - description: Interval between the snapshots in seconds - label: Interval between the snapshots - regex: - error: Should be a number of seconds - source: ^[1-9]\d*$ - restrictions: - - action: hide - condition: settings:atop.service_enabled.value == false - type: text - value: '20' - weight: 20 - metadata: - enabled: true - group: logging - label: Advanced System & Process Monitor (atop) - toggleable: false - weight: 60 - rotate: - description: Number of days to keep log files - label: Rotate days - regex: - error: Should be a number of days - source: ^[1-9]\d*$ - restrictions: - - action: hide - condition: settings:atop.service_enabled.value == false - type: text - value: '7' - weight: 30 - service_enabled: - description: 'NOTE: When enabled, the service may generate logs up to a gigabyte - in size per day. - - This should be taken into consideration when determining the correct size - for the log partition. - - ' - label: Enable atop service - type: checkbox - value: true - weight: 10 - cgroups: - metadata: - always_editable: true - group: general - label: Cgroups conguration for services - restrictions: - - action: hide - condition: 'true' - weight: 90 - common: - auth_key: - group: security - type: hidden - value: '' - weight: 70 - auto_assign_floating_ip: - description: If selected, OpenStack will automatically assign a floating IP - to a new instance - group: network - label: Auto assign floating IP - restrictions: - - action: hide - condition: cluster:net_provider == 'neutron' - type: checkbox - value: false - weight: 40 - debug: - description: Debug logging mode provides more information, but requires more - disk space. - group: logging - label: OpenStack debug logging - type: checkbox - value: false - weight: 20 - libvirt_type: - group: compute - label: Hypervisor type - type: radio - value: kvm - values: - - data: kvm - description: Choose this type of hypervisor if you run OpenStack on hardware - label: KVM - - data: qemu - description: Choose this type of hypervisor if you run OpenStack on virtual - hosts. - label: QEMU - weight: 30 - metadata: - label: Common - weight: 10 - nova_quota: - description: Quotas are used to limit CPU and memory usage for tenants. Enabling - quotas will increase load on the Nova database. - group: compute - label: Nova quotas - type: checkbox - value: false - weight: 30 - propagate_task_deploy: - type: hidden - value: false - weight: 12 - puppet_debug: - description: Debug puppet logging mode provides more information, but requires - more disk space. - group: logging - label: Puppet debug logging - type: checkbox - value: true - weight: 20 - resume_guests_state_on_host_boot: - description: Whether to resume previous guests state when the host reboots. - If enabled, this option causes guests assigned to the host to resume their - previous state. If the guest was running a restart will be attempted when - nova-compute starts. If the guest was not running previously, a restart - will not be attempted. - group: compute - label: Resume guests state on host boot - type: checkbox - value: true - weight: 50 - run_ping_checker: - description: Uncheck this box if the public gateway will not be available - or will not respond to ICMP requests to the deployed cluster. If unchecked, - the controllers will not take public gateway availability into account as - part of the cluster health. If the cluster will not have internet access, - you will need to make sure to provide proper offline mirrors for the deployment - to succeed. - group: network - label: Public Gateway is Available - type: checkbox - value: false - weight: 50 - task_deploy: - type: hidden - value: true - weight: 11 - use_cow_images: - description: For most cases you will want qcow format. If it's disabled, raw - image format will be used to run VMs. OpenStack with raw format currently - does not support snapshotting. - group: storage - label: Use qcow format for images - type: checkbox - value: true - weight: 60 - use_vcenter: - type: hidden - value: false - weight: 30 - corosync: - group: - description: '' - label: Group - type: text - value: 226.94.1.1 - weight: 10 - metadata: - group: general - label: Corosync - restrictions: - - action: hide - condition: 'true' - weight: 50 - port: - description: '' - label: Port - type: text - value: '12000' - weight: 20 - verified: - description: Set True only if multicast is configured correctly on router. - label: Need to pass network verification. - type: checkbox - value: false - weight: 10 - external_dns: - dns_list: - description: List of upstream DNS servers - label: DNS list - max: 3 - regex: - error: Invalid IP address - source: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ - type: text_list - value: - - 10.20.0.1 - weight: 10 - metadata: - group: network - label: Host OS DNS Servers - weight: 30 - external_mongo: - hosts_ip: - description: IP Addresses of MongoDB. Use comma to split IPs - label: MongoDB hosts IP - regex: - error: Invalid hosts ip sequence - source: ^(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),)*((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ - type: text - value: '' - weight: 30 - metadata: - group: openstack_services - label: External MongoDB - restrictions: - - action: hide - condition: settings:additional_components.mongo.value == false - message: Ceilometer and MongoDB are not enabled on the Additional Components - section - weight: 30 - mongo_db_name: - description: Mongo database name - label: Database name - regex: - error: Invalid database name - source: ^\w+$ - type: text - value: ceilometer - weight: 30 - mongo_password: - description: Mongo database password - label: Password - regex: - error: Password contains spaces - source: ^\S*$ - type: password - value: ceilometer - weight: 30 - mongo_replset: - description: Name for Mongo replication set - label: Replset - type: text - value: '' - weight: 30 - mongo_user: - description: Mongo database username - label: Username - regex: - error: Empty username - source: ^\w+$ - type: text - value: ceilometer - weight: 30 - external_ntp: - metadata: - group: network - label: Host OS NTP Servers - weight: 40 - ntp_list: - description: List of upstream NTP servers - label: NTP server list - regex: - error: Invalid NTP server - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text_list - value: - - 0.pool.ntp.org - - 1.pool.ntp.org - - 2.pool.ntp.org - weight: 10 - kernel_params: - kernel: - description: Default kernel parameters - label: Initial parameters - type: text - value: console=tty0 net.ifnames=1 biosdevname=0 rootdelay=90 nomodeset - metadata: - group: general - label: Kernel parameters - weight: 60 - murano_settings: - metadata: - group: openstack_services - label: Murano Settings - restrictions: - - action: hide - condition: settings:additional_components.murano.value == false - message: Murano is not enabled on the Additional Components section - weight: 20 - murano_glance_artifacts_plugin: - description: If selected glance artifact repository will be enabled - label: Enable glance artifact repository - type: checkbox - value: true - weight: 40 - murano_repo_url: - description: '' - label: Murano Repository URL - type: text - value: http://storage.apps.openstack.org/ - weight: 10 - neutron_advanced_configuration: - metadata: - group: network - label: Neutron Advanced Configuration - restrictions: - - action: hide - condition: cluster:net_provider != 'neutron' - weight: 20 - neutron_dvr: - description: Enable Distributed Virtual Routers in Neutron - label: Neutron DVR - restrictions: - - ? networking_parameters:segmentation_type != 'vlan' and settings:neutron_advanced_configuration.neutron_l2_pop.value - == false - : DVR requires L2 population to be enabled. - type: checkbox - value: false - weight: 20 - neutron_l2_pop: - description: Enable L2 population mechanism in Neutron - label: Neutron L2 population - restrictions: - - action: hide - condition: networking_parameters:segmentation_type == 'vlan' - type: checkbox - value: false - weight: 10 - neutron_l3_ha: - description: 'Enable High Availability features for Virtual Routers in Neutron - - Requires at least 2 Controller nodes to function properly - - ' - label: Neutron L3 HA - restrictions: - - condition: settings:neutron_advanced_configuration.neutron_dvr.value == - true - message: Neutron DVR must be disabled in order to use Neutron L3 HA - type: checkbox - value: false - weight: 30 - neutron_qos: - description: Enable Neutron QoS advanced service plug-in - label: Neutron QoS - type: checkbox - value: false - weight: 40 - operator_user: - authkeys: - description: Public SSH keys to include to operator user's authorized keys, - one per line. - label: Authorized SSH keys - type: textarea - value: '' - weight: 80 - homedir: - description: Home directory for operator user - label: Home directory - regex: - error: Invalid path - source: ^/\S - type: text - value: /home/fueladmin - weight: 70 - metadata: - group: general - label: Operating System Access - weight: 15 - name: - description: Username for operator user - label: Username - regex: - error: Empty username - source: \S - type: text - value: fueladmin - weight: 50 - password: - description: Password for operator user - label: Password - regex: - error: Empty password - source: \S - type: password - value: sD2hWNhXxB70SJIBBmaixvvt - weight: 60 - sudo: - description: Sudoers configuration directives for operator user, one per line. - label: Sudoers configuration - type: textarea - value: 'ALL=(ALL) NOPASSWD: ALL' - weight: 90 - provision: - metadata: - group: general - label: Provision - restrictions: - - action: hide - condition: 'false' - weight: 80 - method: - type: hidden - value: image - packages: - label: Initial packages - type: textarea - value: 'acl - - anacron - - bash-completion - - bridge-utils - - bsdmainutils - - build-essential - - cloud-init - - curl - - daemonize - - debconf-utils - - gdisk - - grub-pc - - hwloc - - i40e-dkms - - linux-firmware - - linux-headers-generic-lts-xenial - - linux-image-generic-lts-xenial - - lvm2 - - mcollective - - mdadm - - multipath-tools - - multipath-tools-boot - - nailgun-agent - - nailgun-mcagents - - network-checker - - ntp - - ntpdate - - openssh-client - - openssh-server - - puppet - - python-amqp - - ruby-augeas - - ruby-ipaddress - - ruby-json - - ruby-netaddr - - ruby-openstack - - ruby-shadow - - ruby-stomp - - telnet - - ubuntu-minimal - - ubuntu-standard - - uuid-runtime - - vim - - virt-what - - vlan - - ' - weight: 10 - public_network_assignment: - assign_to_all_nodes: - description: When disabled, public network will be assigned to controllers - only - label: Assign public network to all nodes - type: checkbox - value: true - weight: 10 - metadata: - group: network - label: Public network assignment - restrictions: - - action: hide - condition: cluster:net_provider != 'neutron' - weight: 10 - public_ssl: - cert_data: - description: Certificate and private key data, concatenated into a single - file - label: Certificate - restrictions: - - action: hide - condition: (settings:public_ssl.cert_source.value != 'user_uploaded') or - (settings:public_ssl.horizon.value == false and settings:public_ssl.services.value - == false) - type: file - value: '' - weight: 40 - cert_source: - description: From where we'll get certificate and private key - label: Select source for certificate - restrictions: - - action: hide - condition: settings:public_ssl.horizon.value == false and settings:public_ssl.services.value - == false - type: radio - value: self_signed - values: - - data: self_signed - description: Generate private key and certificate that will be signed by - this key - label: Self-signed - - data: user_uploaded - description: Use pre-generated key and certificate - label: I have my own keypair with certificate - weight: 30 - horizon: - description: Secure access to Horizon enabling HTTPS instead of HTTP - label: HTTPS for Horizon - restrictions: - - settings:public_ssl.services.value == false: TLS for OpenStack public endpoints - should be enabled - type: checkbox - value: false - weight: 20 - hostname: - description: Your DNS entries should point to this name. Self-signed certificates - also will use this hostname - label: DNS hostname for public TLS endpoints - regex: - error: Invalid DNS hostname - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - restrictions: - - action: hide - condition: settings:public_ssl.horizon.value == false and settings:public_ssl.services.value - == false - type: text - value: public.fuel.local - weight: 50 - metadata: - group: security - label: Public TLS - weight: 110 - services: - description: Enable TLS termination on HAProxy for OpenStack services - label: TLS for OpenStack public endpoints - type: checkbox - value: false - weight: 10 - repo_setup: - metadata: - always_editable: true - group: general - label: Repositories - weight: 50 - repos: - description: 'Please note: the first repository will be considered the operating - system mirror that will be used during node provisioning. - - To create a local repository mirror on the Fuel master node, please follow - the instructions provided by running "fuel-createmirror --help" on the Fuel - master node. - - Please make sure your Fuel master node has Internet access to the repository - before attempting to create a mirror. - - ' - extra_priority: null - type: custom_repo_configuration - value: - - name: ubuntu - priority: null - section: main - suite: xenial - type: deb - uri: http://10.20.0.2:8080/mirrors/ubuntu/ - - name: ubuntu-main - priority: null - section: main universe multiverse - suite: xenial - type: deb - uri: mirror://mirrors.ubuntu.com/mirrors.txt - - name: ubuntu-updates - priority: null - section: main universe multiverse - suite: xenial-updates - type: deb - uri: mirror://mirrors.ubuntu.com/mirrors.txt - - name: ubuntu-security - priority: null - section: main universe multiverse - suite: xenial-security - type: deb - uri: mirror://mirrors.ubuntu.com/mirrors.txt - - name: mos - priority: 1050 - section: main restricted - suite: mos10.0 - type: deb - uri: http://10.20.0.2:8080/newton-10.0/ubuntu/x86_64 - - name: mos-updates - priority: 1050 - section: main restricted - suite: mos10.0-updates - type: deb - uri: http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/ - - name: mos-security - priority: 1050 - section: main restricted - suite: mos10.0-security - type: deb - uri: http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/ - - name: mos-holdback - priority: 1100 - section: main restricted - suite: mos10.0-holdback - type: deb - uri: http://mirror.fuel-infra.org/mos-repos/ubuntu/10.0/ - - name: Auxiliary - priority: 1150 - section: main restricted - suite: auxiliary - type: deb - uri: http://10.20.0.2:8080/newton-10.0/ubuntu/auxiliary - service_user: - homedir: - type: hidden - value: /var/lib/fuel - metadata: - group: general - label: Service user account - restrictions: - - action: hide - condition: 'true' - weight: 10 - name: - type: hidden - value: fuel - password: - type: hidden - value: 5rkDBE1Pddi75UQuohA6E2s4 - root_password: - type: hidden - value: r00tme - sudo: - type: hidden - value: 'ALL=(ALL) NOPASSWD: ALL' - ssh: - brute_force_protection: - description: When enabled, the access from all networks (except the provided - ones) will be granted, but the networks will be checked against the brute - force attack. - label: Brute force protection - restrictions: - - action: hide - condition: settings:ssh.security_enabled.value == false - type: checkbox - value: false - weight: 30 - metadata: - enabled: true - group: security - label: SSH security - toggleable: false - weight: 120 - security_enabled: - description: 'NOTE: When enabled, provide at least one working IP address - (the Fuel Master node IP is already added). - - We recommend adding new addresses instead of replacing the provided Fuel - Master node IP. - - When disabled (by default), the admin, management, and storage networks - are only allowed to connect to the SSH service. - - ' - label: Restrict SSH service on network - type: checkbox - value: false - weight: 10 - security_networks: - description: IPv4/CIDR address - label: Restrict access to - regex: - error: Invalid IPv4/CIDR address - source: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))*$ - restrictions: - - action: hide - condition: settings:ssh.security_enabled.value == false - type: text_list - value: - - 10.20.0.2 - weight: 20 - storage: - admin_key: - type: hidden - value: AQAVkvxXAAAAABAAZzOFaGpPvF4oFOQlz7ud4g== - auth_s3_keystone_ceph: - description: This allows to authenticate S3 requests basing on EC2/S3 credentials - managed by Keystone. Please note that enabling the integration will increase - the latency of S3 requests as well as load on Keystone service. Please consult - with Mirantis Technical Bulletin 27 and Mirantis Support on mitigating the - risks related with load. - label: Enable S3 API Authentication via Keystone in Ceph RadosGW - restrictions: - - action: hide - condition: settings:storage.objects_ceph.value == false - type: checkbox - value: false - weight: 82 - bootstrap_osd_key: - type: hidden - value: AQAVkvxXAAAAABAA9pOqDPq0En8Dh1Pi6fZENA== - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: false - weight: 75 - fsid: - type: hidden - value: 801bd64d-bec4-44cc-9126-16245e53f470 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: false - weight: 30 - images_vcenter: - description: Configures Glance to use the vCenter/ESXi backend to store images. - If enabled, this option will prevent Swift from installing. - label: VMware vCenter/ESXi datastore for images (Glance) - restrictions: - - action: hide - condition: settings:common.use_vcenter.value != true - - condition: settings:storage.images_ceph.value == true - message: Only one Glance backend could be selected. - type: checkbox - value: false - weight: 35 - metadata: - group: storage - label: Storage Backends - weight: 60 - mon_key: - type: hidden - value: AQAVkvxXAAAAABAA9ZxWFYdRmV+DSwKr7BKKXg== - objects_ceph: - description: Configures RadosGW front end for Ceph RBD. This exposes S3 and - Swift API Interfaces. If enabled, this option will prevent Swift from installing. - label: Ceph RadosGW for objects (Swift API) - type: checkbox - value: false - weight: 80 - osd_pool_size: - description: Configures the default number of object replicas in Ceph. This - number must be equal to or lower than the number of deployed 'Ceph OSD' - nodes. - label: Ceph object replication factor - regex: - error: Invalid number - source: ^[1-9]\d*$ - type: text - value: '3' - weight: 85 - radosgw_key: - type: hidden - value: AQAVkvxXAAAAABAA1pC6F8i40b7KVCnh5Fe2GQ== - volumes_block_device: - description: High performance block device storage. It is recommended to have - at least one Cinder Block Device - label: Cinder Block device driver - restrictions: - - settings:storage.volumes_ceph.value == true - type: checkbox - value: false - weight: 15 - volumes_ceph: - description: Configures Cinder to store volumes in Ceph RBD images. - label: Ceph RBD for volumes (Cinder) - restrictions: - - settings:storage.volumes_lvm.value == true or settings:storage.volumes_block_device.value - == true - type: checkbox - value: true - weight: 20 - volumes_lvm: - description: It is recommended to have at least one Cinder node. - label: Cinder LVM over iSCSI for volumes - restrictions: - - settings:storage.volumes_ceph.value == true - type: checkbox - value: false - weight: 10 - syslog: - metadata: - enabled: false - group: logging - label: Syslog - toggleable: true - weight: 50 - syslog_port: - description: Remote syslog port - label: Port - regex: - error: Invalid syslog port - source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - type: text - value: '514' - weight: 20 - syslog_server: - description: Remote syslog hostname - label: Hostname - regex: - error: Invalid hostname - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text - value: '' - weight: 10 - syslog_transport: - label: Syslog transport protocol - type: radio - value: tcp - values: - - data: udp - description: '' - label: UDP - - data: tcp - description: '' - label: TCP - weight: 30 - workloads_collector: - enabled: - type: hidden - value: true - metadata: - group: general - label: Workloads Collector User - restrictions: - - action: hide - condition: 'true' - weight: 10 - password: - type: password - value: uuuegVGpIeAzHsAkf1o8KEzK - tenant: - type: text - value: services - user: - type: text - value: fuel_stats_user diff --git a/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml deleted file mode 100644 index 852b363d4..000000000 --- a/deploy/config/labs/devel-pipeline/default/fuel/config/dea-pod-override.yaml +++ /dev/null @@ -1,256 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -dea-pod-override-config-metadata: - title: 'Deployment Environment Adapter POD override for Development Pipeline - Ericsson ELX version' - version: '0.3' - created: 'Fri Jun 10 2016' - comment: 'Rebased for Fuel 9' -environment: - name: opnfv_virt -interfaces_1: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -interfaces_dpdk: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - - interface_properties: - dpdk: - enabled: - value: true - ens6: - - public -interfaces_vlan: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -fuel: - ADMIN_NETWORK: - dhcp_pool_end: 10.20.0.254 - dhcp_pool_start: 10.20.0.3 - ipaddress: 10.20.0.2 - netmask: 255.255.255.0 - ssh_network: 10.20.0.0/24 - DNS_DOMAIN: domain.tld - DNS_SEARCH: domain.tld - DNS_UPSTREAM: 8.8.8.8, 8.8.4.4 - HOSTNAME: fuel - NTP1: 0.ubuntu.pool.ntp.org - NTP2: 1.ubuntu.pool.ntp.org - NTP3: 2.ubuntu.pool.ntp.org -network: - networking_parameters: - base_mac: fa:16:3e:00:00:00 - configuration_template: null - dns_nameservers: - - 8.8.8.8 - - 8.8.4.4 - floating_name: admin_floating_net - floating_ranges: - - - 172.16.0.130 - - 172.16.0.254 - gre_id_range: - - 2 - - 65535 - internal_cidr: 192.168.111.0/24 - internal_gateway: 192.168.111.1 - internal_name: admin_internal_net - net_l23_provider: ovs - segmentation_type: tun - vlan_range: - - 1000 - - 1030 - networks: - - cidr: 192.168.1.0/24 - gateway: null - ip_ranges: - - - 192.168.1.1 - - 192.168.1.254 - meta: - cidr: 192.168.1.0/24 - configurable: true - map_priority: 2 - name: storage - notation: cidr - render_addr_mask: storage - render_type: cidr - use_gateway: false - vlan_start: 102 - name: storage - vlan_start: 102 - - cidr: 192.168.0.0/24 - gateway: null - ip_ranges: - - - 192.168.0.1 - - 192.168.0.253 - meta: - cidr: 192.168.0.0/24 - configurable: true - map_priority: 2 - name: management - notation: ip_ranges - render_addr_mask: internal - render_type: cidr - use_gateway: false - vips: - - haproxy - - vrouter - vlan_start: null - name: management - vlan_start: null - - cidr: 192.168.2.0/24 - gateway: null - ip_ranges: - - - 192.168.2.1 - - 192.168.2.254 - meta: - cidr: 192.168.2.0/24 - configurable: true - map_priority: 2 - name: private - notation: cidr - render_addr_mask: null - render_type: cidr - seg_type: tun - use_gateway: false - vlan_start: 103 - name: private - vlan_start: 103 - - cidr: 172.16.0.0/24 - gateway: 172.16.0.1 - ip_ranges: - - - 172.16.0.2 - - 172.16.0.126 - meta: - cidr: 172.16.0.0/24 - configurable: true - floating_range_var: floating_ranges - ip_range: - - 172.16.0.2 - - 172.16.0.126 - map_priority: 1 - name: public - notation: ip_ranges - render_addr_mask: public - render_type: null - use_gateway: true - vips: - - haproxy - - vrouter - vlan_start: null - name: public - vlan_start: null - - cidr: 10.20.0.0/24 - gateway: 10.20.0.2 - ip_ranges: - - - 10.20.0.3 - - 10.20.0.254 - meta: - configurable: false - map_priority: 0 - notation: ip_ranges - render_addr_mask: null - render_type: null - unmovable: true - use_gateway: true - name: fuelweb_admin - vlan_start: null -settings: - editable: - external_dns: - dns_list: - description: List of upstream DNS servers - label: DNS list - max: 3 - regex: - error: Invalid IP address - source: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ - type: text_list - value: - - 8.8.8.8 - - 8.8.4.4 - weight: 10 - metadata: - group: network - label: Host OS DNS Servers - weight: 30 - external_ntp: - metadata: - group: network - label: Host OS NTP Servers - weight: 40 - ntp_list: - description: List of upstream NTP servers - label: NTP server list - regex: - error: Invalid NTP server - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text_list - value: - - 0.ubuntu.pool.ntp.org - - 1.ubuntu.pool.ntp.org - - 2.ubuntu.pool.ntp.org - weight: 10 - syslog: - metadata: - enabled: false - group: logging - label: Syslog - toggleable: true - weight: 50 - syslog_port: - description: Remote syslog port - label: Port - regex: - error: Invalid syslog port - source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - type: text - value: '514' - weight: 20 - syslog_server: - description: Remote syslog hostname - label: Hostname - regex: - error: Invalid hostname - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text - value: '' - weight: 10 - syslog_transport: - label: Syslog transport protocol - type: radio - value: tcp - values: - - data: udp - description: '' - label: UDP - - data: tcp - description: '' - label: TCP - weight: 30 - diff --git a/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml deleted file mode 100644 index 0374c5d29..000000000 --- a/deploy/config/labs/devel-pipeline/default/fuel/config/dha.yaml +++ /dev/null @@ -1,109 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -dha-pod-config-metadata: - title: Deployment Hardware Adapter (DHA) for fuel development pipeline - default version - version: 0.0.3 - created: Feb 1 2016 - comment: Default Fuel8 version - -# Adapter to use for this definition -adapter: libvirt - -# Node list. -# Mandatory property is id, all other properties are adapter specific. - -nodes: -- id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml -- id: 2 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 3 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 4 - libvirtName: compute3 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 5 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -virtNetConfDir: templates/virtual_environment/networks - -disks: - fuel: 100G - controller: 100G - compute: 100G - -# Here the infrastructure VMs can be defined. -# The entries are not mandatory! If it is left empty -# the default defined in deploy/templates will -# be used. -define_vms: - fuel: - vcpu: - value: 2 - memory: - attribute_equlas: - unit: KiB - value: 8388608 - currentMemory: - attribute_equlas: - unit: KiB - value: 8388608 - devices: - interface: - # With attribute_equlas someone can define which - # interface type is meant - attribute_equlas: - type: network - # This will overwrite the type of the model of - # the interface - model: - attribute: - type: virtio - controller: - vcpu: - value: 4 - memory: - attribute_equlas: - unit: KiB - value: 10485760 - currentMemory: - attribute_equlas: - unit: KiB - value: 10485760 - devices: - interface: - attribute_equlas: - type: network - model: - attribute: - type: e1000 - compute: - memory: - attribute_equlas: - unit: KiB - value: 6291456 - currentMemory: - attribute_equlas: - unit: KiB - value: 6291456 - devices: - interface: - attribute_equlas: - type: network - model: - attribute: - type: e1000 diff --git a/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml deleted file mode 100644 index 150d4ed06..000000000 --- a/deploy/config/labs/devel-pipeline/elx/fuel/config/dea-pod-override.yaml +++ /dev/null @@ -1,253 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -dea-pod-override-config-metadata: - title: 'Deployment Environment Adapter POD override for Development Pipeline - Ericsson ELX version' - version: '0.3' - created: 'Fri Jun 10 2016' - comment: 'Rebased for Fuel 9' -environment: - name: opnfv_virt -interfaces_1: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -interfaces_dpdk: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - - interface_properties: - dpdk: - enabled: - value: true - ens6: - - public -interfaces_vlan: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -fuel: - ADMIN_NETWORK: - dhcp_pool_end: 10.20.0.254 - dhcp_pool_start: 10.20.0.3 - ipaddress: 10.20.0.2 - netmask: 255.255.255.0 - ssh_network: 10.20.0.0/24 - DNS_DOMAIN: domain.tld - DNS_SEARCH: domain.tld - DNS_UPSTREAM: 147.214.6.234 - HOSTNAME: fuel - NTP1: time1.ericsson.se - NTP2: time2.ericsson.se - NTP3: time2.ericsson.se -network: - networking_parameters: - base_mac: fa:16:3e:00:00:00 - configuration_template: null - dns_nameservers: - - 147.214.6.234 - floating_name: admin_floating_net - floating_ranges: - - - 172.16.0.130 - - 172.16.0.254 - gre_id_range: - - 2 - - 65535 - internal_cidr: 192.168.111.0/24 - internal_gateway: 192.168.111.1 - internal_name: admin_internal_net - net_l23_provider: ovs - segmentation_type: tun - vlan_range: - - 1000 - - 1030 - networks: - - cidr: 192.168.1.0/24 - gateway: null - ip_ranges: - - - 192.168.1.1 - - 192.168.1.254 - meta: - cidr: 192.168.1.0/24 - configurable: true - map_priority: 2 - name: storage - notation: cidr - render_addr_mask: storage - render_type: cidr - use_gateway: false - vlan_start: 102 - name: storage - vlan_start: 102 - - cidr: 192.168.0.0/24 - gateway: null - ip_ranges: - - - 192.168.0.1 - - 192.168.0.253 - meta: - cidr: 192.168.0.0/24 - configurable: true - map_priority: 2 - name: management - notation: ip_ranges - render_addr_mask: internal - render_type: cidr - use_gateway: false - vips: - - haproxy - - vrouter - vlan_start: null - name: management - vlan_start: null - - cidr: 192.168.2.0/24 - gateway: null - ip_ranges: - - - 192.168.2.1 - - 192.168.2.254 - meta: - cidr: 192.168.2.0/24 - configurable: true - map_priority: 2 - name: private - notation: cidr - render_addr_mask: null - render_type: cidr - seg_type: tun - use_gateway: false - vlan_start: 103 - name: private - vlan_start: 103 - - cidr: 172.16.0.0/24 - gateway: 172.16.0.1 - ip_ranges: - - - 172.16.0.2 - - 172.16.0.126 - meta: - cidr: 172.16.0.0/24 - configurable: true - floating_range_var: floating_ranges - ip_range: - - 172.16.0.2 - - 172.16.0.126 - map_priority: 1 - name: public - notation: ip_ranges - render_addr_mask: public - render_type: null - use_gateway: true - vips: - - haproxy - - vrouter - vlan_start: null - name: public - vlan_start: null - - cidr: 10.20.0.0/24 - gateway: 10.20.0.2 - ip_ranges: - - - 10.20.0.3 - - 10.20.0.254 - meta: - configurable: false - map_priority: 0 - notation: ip_ranges - render_addr_mask: null - render_type: null - unmovable: true - use_gateway: true - name: fuelweb_admin - vlan_start: null -settings: - editable: - external_dns: - dns_list: - description: List of upstream DNS servers - label: DNS list - max: 3 - regex: - error: Invalid IP address - source: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ - type: text_list - value: - - 147.214.6.234 - weight: 10 - metadata: - group: network - label: Host OS DNS Servers - weight: 30 - external_ntp: - metadata: - group: network - label: Host OS NTP Servers - weight: 40 - ntp_list: - description: List of upstream NTP servers - label: NTP server list - regex: - error: Invalid NTP server - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text_list - value: - - time1.ericsson.se - - time2.ericsson.se - weight: 10 - syslog: - metadata: - enabled: false - group: logging - label: Syslog - toggleable: true - weight: 50 - syslog_port: - description: Remote syslog port - label: Port - regex: - error: Invalid syslog port - source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - type: text - value: '514' - weight: 20 - syslog_server: - description: Remote syslog hostname - label: Hostname - regex: - error: Invalid hostname - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text - value: '' - weight: 10 - syslog_transport: - label: Syslog transport protocol - type: radio - value: tcp - values: - - data: udp - description: '' - label: UDP - - data: tcp - description: '' - label: TCP - weight: 30 - diff --git a/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml deleted file mode 100644 index c2352f924..000000000 --- a/deploy/config/labs/devel-pipeline/elx/fuel/config/dha.yaml +++ /dev/null @@ -1,110 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -dha-pod-config-metadata: - title: Deployment Hardware Adapter (DHA) for fuel development pipeline - Ericsson ELX version - version: 0.0.3 - created: Feb 2 2016 - comment: ELX Fuel 9 version - -# Adapter to use for this definition -adapter: libvirt - -# Node list. -# Mandatory property is id, all other properties are adapter specific. - -nodes: -- id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml -- id: 2 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 3 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 4 - libvirtName: compute3 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 5 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -virtNetConfDir: templates/virtual_environment/networks - -disks: - fuel: 100G - controller: 100G - compute: 100G - -# Here the infrastructure VMs can be defined. -# The entries are not mandatory! If it is left empty -# the default defined in deploy/templates will -# be used. -define_vms: - fuel: - vcpu: - value: 2 - memory: - attribute_equlas: - unit: KiB - value: 8388608 - currentMemory: - attribute_equlas: - unit: KiB - value: 8388608 - devices: - interface: - # With attribute_equlas someone can define which - # interface type is meant - attribute_equlas: - type: network - # This will overwrite the type of the model of - # the interface - model: - attribute: - type: virtio - controller: - vcpu: - value: 4 - memory: - attribute_equlas: - unit: KiB - value: 10485760 - currentMemory: - attribute_equlas: - unit: KiB - value: 10485760 - devices: - interface: - attribute_equlas: - type: network - model: - attribute: - type: e1000 - compute: - memory: - attribute_equlas: - unit: KiB - value: 6291456 - currentMemory: - attribute_equlas: - unit: KiB - value: 6291456 - devices: - interface: - attribute_equlas: - type: network - model: - attribute: - type: e1000 - diff --git a/deploy/config/labs/devel-pipeline/huawei-ch/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/huawei-ch/fuel/config/dea-pod-override.yaml deleted file mode 100644 index be80b9724..000000000 --- a/deploy/config/labs/devel-pipeline/huawei-ch/fuel/config/dea-pod-override.yaml +++ /dev/null @@ -1,254 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -dea-pod-override-config-metadata: - title: 'Deployment Environment Adapter POD override for Development Pipeline - Huawei-China version' - version: '0.3' - created: 'Jun 14 2016' - comment: 'Rebased for Fuel 9' -environment: - name: opnfv_virt -interfaces_1: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -interfaces_dpdk: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - - interface_properties: - dpdk: - enabled: - value: true - ens6: - - public -interfaces_vlan: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -fuel: - ADMIN_NETWORK: - dhcp_pool_end: 10.20.0.254 - dhcp_pool_start: 10.20.0.3 - ipaddress: 10.20.0.2 - netmask: 255.255.255.0 - ssh_network: 10.20.0.0/24 - DNS_DOMAIN: domain.tld - DNS_SEARCH: domain.tld - DNS_UPSTREAM: 114.114.114.114 - HOSTNAME: fuel - NTP1: 0.fuel.pool.ntp.org - NTP2: 1.fuel.pool.ntp.org - NTP3: 2.fuel.pool.ntp.org -network: - networking_parameters: - base_mac: fa:16:3e:00:00:00 - configuration_template: null - dns_nameservers: - - 114.114.114.114 - floating_name: admin_floating_net - floating_ranges: - - - 172.16.0.130 - - 172.16.0.254 - gre_id_range: - - 2 - - 65535 - internal_cidr: 192.168.111.0/24 - internal_gateway: 192.168.111.1 - internal_name: admin_internal_net - net_l23_provider: ovs - segmentation_type: tun - vlan_range: - - 1000 - - 1030 - networks: - - cidr: 192.168.1.0/24 - gateway: null - ip_ranges: - - - 192.168.1.1 - - 192.168.1.254 - meta: - cidr: 192.168.1.0/24 - configurable: true - map_priority: 2 - name: storage - notation: cidr - render_addr_mask: storage - render_type: cidr - use_gateway: false - vlan_start: 102 - name: storage - vlan_start: 102 - - cidr: 192.168.0.0/24 - gateway: null - ip_ranges: - - - 192.168.0.1 - - 192.168.0.253 - meta: - cidr: 192.168.0.0/24 - configurable: true - map_priority: 2 - name: management - notation: ip_ranges - render_addr_mask: internal - render_type: cidr - use_gateway: false - vips: - - haproxy - - vrouter - vlan_start: null - name: management - vlan_start: null - - cidr: 192.168.2.0/24 - gateway: null - ip_ranges: - - - 192.168.2.1 - - 192.168.2.254 - meta: - cidr: 192.168.2.0/24 - configurable: true - map_priority: 2 - name: private - notation: cidr - render_addr_mask: null - render_type: cidr - seg_type: tun - use_gateway: false - vlan_start: 103 - name: private - vlan_start: 103 - - cidr: 172.16.0.0/24 - gateway: 172.16.0.1 - ip_ranges: - - - 172.16.0.2 - - 172.16.0.126 - meta: - cidr: 172.16.0.0/24 - configurable: true - floating_range_var: floating_ranges - ip_range: - - 172.16.0.2 - - 172.16.0.126 - map_priority: 1 - name: public - notation: ip_ranges - render_addr_mask: public - render_type: null - use_gateway: true - vips: - - haproxy - - vrouter - vlan_start: null - name: public - vlan_start: null - - cidr: 10.20.0.0/24 - gateway: 10.20.0.2 - ip_ranges: - - - 10.20.0.3 - - 10.20.0.254 - meta: - configurable: false - map_priority: 0 - notation: ip_ranges - render_addr_mask: null - render_type: null - unmovable: true - use_gateway: true - name: fuelweb_admin - vlan_start: null -settings: - editable: - external_dns: - dns_list: - description: List of upstream DNS servers - label: DNS list - max: 3 - regex: - error: Invalid IP address - source: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ - type: text_list - value: - - 114.114.114.114 - weight: 10 - metadata: - group: network - label: Host OS DNS Servers - weight: 30 - external_ntp: - metadata: - group: network - label: Host OS NTP Servers - weight: 40 - ntp_list: - description: List of upstream NTP servers - label: NTP server list - regex: - error: Invalid NTP server - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text_list - value: - - 0.fuel.pool.ntp.org - - 1.fuel.pool.ntp.org - - 2.fuel.pool.ntp.org - weight: 10 - syslog: - metadata: - enabled: false - group: logging - label: Syslog - toggleable: true - weight: 50 - syslog_port: - description: Remote syslog port - label: Port - regex: - error: Invalid syslog port - source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - type: text - value: '514' - weight: 20 - syslog_server: - description: Remote syslog hostname - label: Hostname - regex: - error: Invalid hostname - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text - value: '' - weight: 10 - syslog_transport: - label: Syslog transport protocol - type: radio - value: tcp - values: - - data: udp - description: '' - label: UDP - - data: tcp - description: '' - label: TCP - weight: 30 - diff --git a/deploy/config/labs/devel-pipeline/huawei-ch/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/huawei-ch/fuel/config/dha.yaml deleted file mode 100644 index d8f904362..000000000 --- a/deploy/config/labs/devel-pipeline/huawei-ch/fuel/config/dha.yaml +++ /dev/null @@ -1,47 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -dha-pod-config-metadata: - title: Deployment Hardware Adapter (DHA) for fuel development pipeline - default version - version: 0.0.4 - created: Jun 14 2016 - comment: Huawei-Ch Fuel9 version - -# Adapter to use for this definition -adapter: libvirt - -# Node list. -# Mandatory property is id, all other properties are adapter specific. - -nodes: -- id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml -- id: 2 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 3 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 4 - libvirtName: compute3 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 5 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -virtNetConfDir: templates/virtual_environment/networks - -disks: - fuel: 100G - controller: 100G - compute: 100G diff --git a/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dea-pod-override.yaml b/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dea-pod-override.yaml deleted file mode 100644 index 35a2201cf..000000000 --- a/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dea-pod-override.yaml +++ /dev/null @@ -1,252 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -dea-pod-override-config-metadata: - title: 'Deployment Environment Adapter POD override for Development Pipeline - Intel Santa Clara, CA, USA version' - version: '0.1' - created: 'Wed Sept 7 2016' - comment: 'For Fuel 9' -environment: - name: opnfv_virt -interfaces_1: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -interfaces_dpdk: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - - interface_properties: - dpdk: - enabled: - value: true - ens6: - - public -interfaces_vlan: - ens3: - - fuelweb_admin - - storage - ens4: - - management - ens5: - - private - ens6: - - public -fuel: - ADMIN_NETWORK: - dhcp_pool_end: 10.20.0.254 - dhcp_pool_start: 10.20.0.3 - ipaddress: 10.20.0.2 - netmask: 255.255.255.0 - ssh_network: 10.20.0.0/24 - DNS_DOMAIN: domain.tld - DNS_SEARCH: domain.tld - DNS_UPSTREAM: 10.248.2.1 - HOSTNAME: fuel - NTP1: 10.20.0.1 - NTP2: null - NTP3: null -network: - networking_parameters: - base_mac: fa:16:3e:00:00:00 - configuration_template: null - dns_nameservers: - - 10.248.2.1 - floating_name: admin_floating_net - floating_ranges: - - - 172.16.0.130 - - 172.16.0.254 - gre_id_range: - - 2 - - 65535 - internal_cidr: 192.168.111.0/24 - internal_gateway: 192.168.111.1 - internal_name: admin_internal_net - net_l23_provider: ovs - segmentation_type: tun - vlan_range: - - 1000 - - 1030 - networks: - - cidr: 192.168.1.0/24 - gateway: null - ip_ranges: - - - 192.168.1.1 - - 192.168.1.254 - meta: - cidr: 192.168.1.0/24 - configurable: true - map_priority: 2 - name: storage - notation: cidr - render_addr_mask: storage - render_type: cidr - use_gateway: false - vlan_start: 102 - name: storage - vlan_start: 102 - - cidr: 192.168.0.0/24 - gateway: null - ip_ranges: - - - 192.168.0.1 - - 192.168.0.253 - meta: - cidr: 192.168.0.0/24 - configurable: true - map_priority: 2 - name: management - notation: ip_ranges - render_addr_mask: internal - render_type: cidr - use_gateway: false - vips: - - haproxy - - vrouter - vlan_start: null - name: management - vlan_start: null - - cidr: 192.168.2.0/24 - gateway: null - ip_ranges: - - - 192.168.2.1 - - 192.168.2.254 - meta: - cidr: 192.168.2.0/24 - configurable: true - map_priority: 2 - name: private - notation: cidr - render_addr_mask: null - render_type: cidr - seg_type: tun - use_gateway: false - vlan_start: 103 - name: private - vlan_start: 103 - - cidr: 172.16.0.0/24 - gateway: 172.16.0.1 - ip_ranges: - - - 172.16.0.2 - - 172.16.0.126 - meta: - cidr: 172.16.0.0/24 - configurable: true - floating_range_var: floating_ranges - ip_range: - - 172.16.0.2 - - 172.16.0.126 - map_priority: 1 - name: public - notation: ip_ranges - render_addr_mask: public - render_type: null - use_gateway: true - vips: - - haproxy - - vrouter - vlan_start: null - name: public - vlan_start: null - - cidr: 10.20.0.0/24 - gateway: 10.20.0.2 - ip_ranges: - - - 10.20.0.3 - - 10.20.0.254 - meta: - configurable: false - map_priority: 0 - notation: ip_ranges - render_addr_mask: null - render_type: null - unmovable: true - use_gateway: true - name: fuelweb_admin - vlan_start: null -settings: - editable: - external_dns: - dns_list: - description: List of upstream DNS servers - label: DNS list - max: 3 - regex: - error: Invalid IP address - source: ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ - type: text_list - value: - - 147.214.6.234 - weight: 10 - metadata: - group: network - label: Host OS DNS Servers - weight: 30 - external_ntp: - metadata: - group: network - label: Host OS NTP Servers - weight: 40 - ntp_list: - description: List of upstream NTP servers - label: NTP server list - regex: - error: Invalid NTP server - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text_list - value: - - 10.20.0.1 - weight: 10 - syslog: - metadata: - enabled: false - group: logging - label: Syslog - toggleable: true - weight: 50 - syslog_port: - description: Remote syslog port - label: Port - regex: - error: Invalid syslog port - source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - type: text - value: '514' - weight: 20 - syslog_server: - description: Remote syslog hostname - label: Hostname - regex: - error: Invalid hostname - source: ^[a-zA-Z\d]+[-\.\da-zA-Z]*$ - type: text - value: '' - weight: 10 - syslog_transport: - label: Syslog transport protocol - type: radio - value: tcp - values: - - data: udp - description: '' - label: UDP - - data: tcp - description: '' - label: TCP - weight: 30 - diff --git a/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dha.yaml b/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dha.yaml deleted file mode 100644 index 837293950..000000000 --- a/deploy/config/labs/devel-pipeline/intel-sc/fuel/config/dha.yaml +++ /dev/null @@ -1,110 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# stefan.k.berg@ericsson.com -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -dha-pod-config-metadata: - title: Deployment Hardware Adapter (DHA) for fuel development pipeline - Intel Santa Clara, CA. USA version - version: 0.0.1 - created: Sept 7 2016 - comment: Intel Santa Clara, CA, USA Fuel 9 version - -# Adapter to use for this definition -adapter: libvirt - -# Node list. -# Mandatory property is id, all other properties are adapter specific. - -nodes: -- id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml -- id: 2 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 3 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 4 - libvirtName: compute3 - libvirtTemplate: templates/virtual_environment/vms/compute.xml -- id: 5 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -virtNetConfDir: templates/virtual_environment/networks - -disks: - fuel: 100G - controller: 100G - compute: 100G - -# Here the infrastructure VMs can be defined. -# The entries are not mandatory! If it is left empty -# the default defined in deploy/templates will -# be used. -define_vms: - fuel: - vcpu: - value: 2 - memory: - attribute_equlas: - unit: KiB - value: 8388608 - currentMemory: - attribute_equlas: - unit: KiB - value: 8388608 - devices: - interface: - # With attribute_equlas someone can define which - # interface type is meant - attribute_equlas: - type: network - # This will overwrite the type of the model of - # the interface - model: - attribute: - type: virtio - controller: - vcpu: - value: 4 - memory: - attribute_equlas: - unit: KiB - value: 10485760 - currentMemory: - attribute_equlas: - unit: KiB - value: 10485760 - devices: - interface: - attribute_equlas: - type: network - model: - attribute: - type: e1000 - compute: - memory: - attribute_equlas: - unit: KiB - value: 6291456 - currentMemory: - attribute_equlas: - unit: KiB - value: 6291456 - devices: - interface: - attribute_equlas: - type: network - model: - attribute: - type: e1000 - diff --git a/deploy/config/plugins/fuel-barometer_1.0.0.yaml b/deploy/config/plugins/fuel-barometer_1.0.0.yaml deleted file mode 100644 index 81e66833d..000000000 --- a/deploy/config/plugins/fuel-barometer_1.0.0.yaml +++ /dev/null @@ -1,41 +0,0 @@ -############################################################################## -# Copyright (c) 2017 Intel Corp. -# navyax.bathula@intel.com -# 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 -############################################################################## -plugin-config-metadata: - title: Barometer Plugin - version: 1.0.0 - created: 06.02.2017 - comment: Deploy Barometer plugin - -fuel-plugin-collectd-ceilometer: - metadata: - class: plugin - default: false - enabled: true - label: fuel-plugin-collectd-ceilometer - toggleable: true - versions: - - metadata: - always_editable: false - plugin_version: 1.0.0 - enable_mcelog: - type: "checkbox" - weight: 20 - value: true - label: "Enable collectd for mcelog" - enable_hugepages: - type: "checkbox" - weight: 20 - value: true - label: "Enable collectd for hugepages" - enable_ovs_events: - type: "checkbox" - weight: 20 - value: true - label: "Enable collectd for Open vSwitch events" - weight: 70 diff --git a/deploy/config/plugins/fuel-bgpvpn_0.9.0.yaml b/deploy/config/plugins/fuel-bgpvpn_0.9.0.yaml deleted file mode 100644 index 1aa1259ca..000000000 --- a/deploy/config/plugins/fuel-bgpvpn_0.9.0.yaml +++ /dev/null @@ -1,30 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -plugin-config-metadata: - title: BGPVPN fuel Plugin configuration template - version: 0.9.0 - created: 29.06.2016 - comment: None - -bgpvpn: - metadata: - class: plugin - default: false - enabled: true - label: BGPVPN plugin - toggleable: true - versions: - - metadata: - always_editable: false - label: BGPVPN plugin - plugin_version: 0.9.0 - restrictions: - - cluster:net_provider != 'neutron': Only neutron is supported by BGPVPN-plugin - weight: 90 - weight: 70 diff --git a/deploy/config/plugins/fuel-bgpvpn_1.0.0.yaml b/deploy/config/plugins/fuel-bgpvpn_1.0.0.yaml deleted file mode 100644 index 70ae3ea3b..000000000 --- a/deploy/config/plugins/fuel-bgpvpn_1.0.0.yaml +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## -plugin-config-metadata: - title: BGPVPN fuel Plugin configuration template - version: 1.0.0 - created: 01.02.2017 - comment: None - -bgpvpn: - metadata: - class: plugin - default: false - enabled: true - label: BGPVPN plugin - toggleable: true - versions: - - metadata: - always_editable: false - label: BGPVPN plugin - plugin_version: 1.0.0 - restrictions: - - "cluster:net_provider != 'neutron'": "Only neutron is supported by BGPVPN-plugin" - - condition: "settings:opendaylight == null or settings:opendaylight.metadata.enabled != true" - strict: false - message: "OpenDaylight plugin must be installed and enabled" - weight: 90 - weight: 70 diff --git a/deploy/config/plugins/fuel-congress_1.0.0.yaml b/deploy/config/plugins/fuel-congress_1.0.0.yaml deleted file mode 100644 index c7ba8a138..000000000 --- a/deploy/config/plugins/fuel-congress_1.0.0.yaml +++ /dev/null @@ -1,49 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Mirantis Inc and others. -# fzhadaev@mirantis.com -# 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 -############################################################################## - -plugin-config-metadata: - title: Congress fuel plugin configuration template - version: 0.1 - created: 03.10.2016 - comment: None -congress: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: Fuel Congress plugin - toggleable: true - versions: - - enabled: - description: Service enable state for congress-server - label: Enable - type: checkbox - value: true - weight: 25 - metadata: - contains_legacy_tasks: false - db_password: - generator: 'password' - group: openstack_services - hot_pluggable: false - #plugin_id: Assigned during installation - plugin_version: 1.0.0 - port: 1789 - service: congress-server - user: congress - user_password: - generator: 'password' - policies: - description: Set of policies to configure for congress (in JSON format) - label: Policies - type: text - value: '{}' - weight: 50 - weight: 70
\ No newline at end of file diff --git a/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml b/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml deleted file mode 100644 index 170424edb..000000000 --- a/deploy/config/plugins/fuel-nfvkvm_0.0.1.yaml +++ /dev/null @@ -1,27 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NFV QEMU-KVM fuel Plugin configuration template - version: 0.1 - created: Wed Jan 6 2016 - comment: None - -fuel-plugin-qemu: - metadata: - enabled: true - label: fuel-plugin-qemu - # plugin_id: Assigned during installation - toggleable: true - weight: 70 - use_kvm: - label: 'EXPERIMENTAL: KVM enhancements for NFV' - type: checkbox - value: true - weight: 20 diff --git a/deploy/config/plugins/fuel-nfvkvm_0.0.2.yaml b/deploy/config/plugins/fuel-nfvkvm_0.0.2.yaml deleted file mode 100644 index 842e1e10d..000000000 --- a/deploy/config/plugins/fuel-nfvkvm_0.0.2.yaml +++ /dev/null @@ -1,34 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NFV QEMU-KVM fuel Plugin configuration template - version: 0.2 - created: Tue Feb 9 2016 - comment: None - -fuel-plugin-qemu: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: fuel-plugin-qemu - toggleable: true - versions: - - metadata: - always_editable: false - #plugin_id: 1 Assigned during installation - plugin_version: 0.5.2 - use_kvm: - label: 'EXPERIMENTAL: KVM enhancements for NFV' - type: checkbox - value: true - weight: 20 - weight: 70 diff --git a/deploy/config/plugins/fuel-nfvkvm_0.9.0.yaml b/deploy/config/plugins/fuel-nfvkvm_0.9.0.yaml deleted file mode 100644 index 85f3221f7..000000000 --- a/deploy/config/plugins/fuel-nfvkvm_0.9.0.yaml +++ /dev/null @@ -1,34 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NFV KVM fuel Plugin configuration template - version: 0.9.0 - created: 27.07.2016 - comment: None - -fuel-plugin-kvm: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: fuel-plugin-kvm - toggleable: true - versions: - - metadata: - always_editable: false - #plugin_id: 1 Assigned during installation - plugin_version: 0.9.0 - use_kvm: - label: 'EXPERIMENTAL: KVM enhancements for NFV' - type: checkbox - value: true - weight: 20 - weight: 70 diff --git a/deploy/config/plugins/fuel-nfvkvm_1.0.0.yaml b/deploy/config/plugins/fuel-nfvkvm_1.0.0.yaml deleted file mode 100644 index 7d4dd09ff..000000000 --- a/deploy/config/plugins/fuel-nfvkvm_1.0.0.yaml +++ /dev/null @@ -1,34 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Mirantis, Inc. and others. -# mpolenchuk@mirantis.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NFV KVM fuel Plugin configuration template - version: 1.0.0 - created: 05.12.2016 - comment: None - -fuel-plugin-kvm: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: fuel-plugin-kvm - toggleable: true - versions: - - metadata: - always_editable: false - #plugin_id: 1 Assigned during installation - plugin_version: 1.0.0 - use_kvm: - label: 'EXPERIMENTAL: KVM enhancements for NFV' - type: checkbox - value: true - weight: 20 - weight: 70 diff --git a/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml b/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml deleted file mode 100644 index fdaba2a21..000000000 --- a/deploy/config/plugins/fuel-nfvovs_0.0.1.yaml +++ /dev/null @@ -1,28 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NFV OVS fuel Plugin configuration template - version: 0.1 - created: Wed Jan 6 2016 - comment: None - -fuel-plugin-ovsnfv: - fuel-plugin-ovsnfv_text: - description: Description for text field - label: Text field - type: text - value: Set default value - weight: 25 - metadata: - enabled: true - label: Userspace OVS support - # plugin_id: Assigned during installation - toggleable: true - weight: 70 diff --git a/deploy/config/plugins/fuel-nfvovs_0.0.2.yaml b/deploy/config/plugins/fuel-nfvovs_0.0.2.yaml deleted file mode 100644 index 902938211..000000000 --- a/deploy/config/plugins/fuel-nfvovs_0.0.2.yaml +++ /dev/null @@ -1,35 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NFV OVS fuel Plugin configuration template - version: 0.2 - created: Mon Feb 15 2016 - comment: Rebased for new plugin arch - -fuel-plugin-ovsnfv: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: Userspace OVS support - toggleable: true - versions: - - fuel-plugin-ovsnfv_text: - description: Specify compute node interface to which OVS-DPDK binds - label: NIC for DPDK - type: text - value: ens1f1 - weight: 25 - metadata: - always_editable: false - #plugin_id: Assigned during installation - plugin_version: 0.0.1 - weight: 70 diff --git a/deploy/config/plugins/fuel-nshovs_0.0.1.yaml b/deploy/config/plugins/fuel-nshovs_0.0.1.yaml deleted file mode 100644 index ec3ac38a9..000000000 --- a/deploy/config/plugins/fuel-nshovs_0.0.1.yaml +++ /dev/null @@ -1,44 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NSHOVS fuel Plugin configuration template - version: 0.1 - created: Wed Feb 17 2016 - comment: None - -fuel-plugin-ovs: - metadata: - #chosen_id: Choosen at install time - class: plugin - default: false - enabled: true - label: Openvswitch with NSH support - toggleable: true - versions: - - dpdk-bind-nic: - label: Network device - type: text - value: eth2 - weight: 40 - metadata: - always_editable: false - #plugin_id: Choosen at install time - plugin_version: 0.5.2 - use_dpdk: - label: Use dpdk - type: checkbox - value: false - weight: 20 - use_dppd: - label: Use dppd - type: checkbox - value: false - weight: 20 - weight: 70 diff --git a/deploy/config/plugins/fuel-nshovs_0.9.0.yaml b/deploy/config/plugins/fuel-nshovs_0.9.0.yaml deleted file mode 100644 index b5caae039..000000000 --- a/deploy/config/plugins/fuel-nshovs_0.9.0.yaml +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NSHOVS fuel Plugin configuration template - version: 0.2 - created: Jun 30 2016 - comment: None - -fuel-plugin-ovs: - metadata: - #chosen_id: Choosen at install time - class: plugin - default: false - enabled: true - label: Openvswitch with NSH support - toggleable: true - versions: - - install_dpdk: - type: "checkbox" - weight: 20 - value: false - label: "Install DPDK" - install_nsh: - type: "checkbox" - weight: 20 - value: false - label: "Install NSH" - metadata: - plugin_version: 0.9.0 - weight: 70 diff --git a/deploy/config/plugins/fuel-nshovs_1.0.0.yaml b/deploy/config/plugins/fuel-nshovs_1.0.0.yaml deleted file mode 100644 index 3c87d8b80..000000000 --- a/deploy/config/plugins/fuel-nshovs_1.0.0.yaml +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Mirantis, Inc. and others. -# mpolenchuk@mirantis.com -# 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 -############################################################################## - -plugin-config-metadata: - title: NSHOVS fuel Plugin configuration template - version: 0.3 - created: Dec 14 2016 - comment: None - -fuel-plugin-ovs: - metadata: - #chosen_id: Choosen at install time - class: plugin - default: false - enabled: true - label: Openvswitch with NSH support - toggleable: true - versions: - - install_dpdk: - type: "checkbox" - weight: 20 - value: false - label: "Install DPDK" - install_nsh: - type: "checkbox" - weight: 20 - value: false - label: "Install NSH" - metadata: - plugin_version: 1.0.0 - weight: 70 diff --git a/deploy/config/plugins/fuel-odl_0.9.0.yaml b/deploy/config/plugins/fuel-odl_0.9.0.yaml deleted file mode 100644 index a1ff9b519..000000000 --- a/deploy/config/plugins/fuel-odl_0.9.0.yaml +++ /dev/null @@ -1,143 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: OpenDaylight fuel Plugin configuration template - version: 0.4 - created: 30.06.2016 - comment: Add new field for boron version -opendaylight: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: OpenDaylight plugin - toggleable: true - versions: - - bgpvpn_gateway: - description: Define the default gateway for BGPVPN - label: Default Gateway - regex: - error: Invalid ip number - source: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$ - restrictions: - - settings:opendaylight.enable_bgpvpn.value == false: Only needed if BGPVPN - is enabled. - type: text - value: 0.0.0.0 - weight: 50 - enable_bgpvpn: - description: 'This enables the bgpvpn extension of neutron togethere with - the corresponding sdnvpn features in odl. This feature will disable the - standart ovsdb feature from ODL. - - ' - label: BGPVPN extensions - restrictions: - - condition: settings:bgpvpn == null or settings:bgpvpn.metadata.enabled - == false - message: BGPVPN (fuel-plugin-bgpvpn) plugin must be installed and enabled. - strict: false - - networking_parameters:segmentation_type == 'vlan': This feature works - only with segmentation_type != vlan - type: checkbox - value: false - weight: 40 - enable_l3_odl: - label: Use ODL to manage L3 traffic - restrictions: - - networking_parameters:segmentation_type == 'vlan': Use tunneling segmentation - type. - - settings:public_network_assignment.assign_to_all_nodes.value == false: Assign - public network to all nodes - type: checkbox - value: false - weight: 10 - enable_sfc: - label: SFC features - type: checkbox - value: false - weight: 20 - sfc_class: - description: 'Classifier determines what traffic needs to be chained based - on policy based on yang model. The OpenDayLight actually supports the - OVSDB NetVirt and the GBP classifier in case of SFC. - - ' - label: Classifier used by SFC - restrictions: - - action: hide - condition: settings:opendaylight.enable_sfc.value == false - type: select - value: ncr - values: - - data: ncr - label: NetVirt - - data: gcr - label: GBP - weight: 21 - metadata: - default_credentials: - password: admin - user: admin - hot_pluggable: false - jetty_port: 8181 - odl_features: - default: - - config - - standard - - region - - package - - kar - - ssh - - management - gcr: - - odl-groupbasedpolicy-ovssfc - ncr: - - odl-ovsdb-sfc - - odl-ovsdb-sfc-rest - odl-default: - - odl-restconf-all - - odl-aaa-authn - - odl-dlux-all - ovs: - - odl-ovsdb-openstack - sfc: - - odl-sfc-model - - odl-sfc-provider - - odl-sfc-provider-rest - - odl-sfc-ovs - - odl-sfc-openflow-renderer - vpn: - - odl-vpnservice-openstack - odl_deb: opendaylight - experimental_odl_deb: opendaylight-experimental - use_experimental_odl: - - enable_bgpvpn - #plugin_id: Assigned during installation - plugin_version: 0.9.0 - restrictions: - - cluster:net_provider != 'neutron': Only neutron is supported by OpenDaylight - odl_v2: - description: V2 version is considered as experimental - label: Use V2 ML2 driver - type: checkbox - value: false - weight: 60 - rest_api_port: - description: Port on which ODL REST API will be available. - label: Port number - regex: - error: Invalid port number - source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - type: text - value: '8282' - weight: 70 - weight: 70 diff --git a/deploy/config/plugins/fuel-odl_1.0.0.yaml b/deploy/config/plugins/fuel-odl_1.0.0.yaml deleted file mode 100644 index c223130f3..000000000 --- a/deploy/config/plugins/fuel-odl_1.0.0.yaml +++ /dev/null @@ -1,151 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: OpenDaylight fuel Plugin configuration template - version: 0.5 - created: 07.12.2016 - comment: Fuel 10 support -opendaylight: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: OpenDaylight plugin - toggleable: true - versions: - - enable_l3_odl: - weight: 10 - type: "checkbox" - value: false - label: "Use ODL to manage L3 traffic" - restrictions: - - networking_parameters:segmentation_type == 'vlan': Use tunneling segmentation type. - - settings:public_network_assignment.assign_to_all_nodes.value == false: Assign public network to all nodes - enable_sfc: - weight: 20 - type: "checkbox" - value: false - label: "SFC features" - sfc_class: - weight: 21 - type: "select" - value: "ncr" - label: "Classifier used by SFC" - values: - - data: "ncr" - label: "NetVirt" - - data: "gcr" - label: "GBP" - description: - > - Classifier determines what traffic needs to be chained based on policy based on yang model. - The OpenDayLight actually supports the OVSDB NetVirt and the GBP classifier in case of SFC. - restrictions: - - condition: "settings:opendaylight.enable_sfc.value == false" - action: "hide" - enable_bgpvpn: - weight: 40 - type: "checkbox" - value: false - label: "BGPVPN extensions" - description: - > - This enables the bgpvpn extension of neutron together with the - corresponding sdnvpn features in odl. This feature will disable - the standard ovsdb feature from ODL. - restrictions: - - condition: "settings:bgpvpn == null or settings:bgpvpn.metadata.enabled == false" - strict: false - message: "BGPVPN (fuel-plugin-bgpvpn) plugin must be installed and enabled." - - networking_parameters:segmentation_type == 'vlan': This feature works only with segmentation_type != vlan - - condition: "settings:opendaylight.enable_l3_odl.value == false" - strict: false - message: "OpenDaylight must be acting as the L3 controller for the bgpvpn features to be enabled." - - condition: "settings:opendaylight.deb_version.value != '5.2.0-1'" - strict: false - message: "The BGPVPN features only support OpenDaylight 5.2.0-1. The OpenDaylight package version field must be set to that value." - odl_v2: - weight: 60 - type: "checkbox" - value: false - label: "Use V2 ML2 driver" - description: "V2 version is considered as experimental" - rest_api_port: - value: '8282' - label: 'Port number' - description: 'Port on which ODL REST API will be available.' - weight: 70 - type: "text" - regex: - source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$ - error: 'Invalid port number' - java_min_mem: - value: '1g' - label: 'Java -Xms option' - description: 'Initial memory allocation pool.' - weight: 80 - type: "text" - java_max_mem: - value: '2g' - label: 'Java -Xmx option' - description: 'Maximum memory allocation pool.' - weight: 81 - type: "text" - java_extra_opts: - value: '-XX:+UseG1GC' - label: 'Java extra options' - description: 'Additional options.' - weight: 82 - type: "text" - deb_version: - value: '5.0.0-1' - label: 'OpenDaylight package version' - description: 'Plugin can be build with more than one version of ODL.' - weight: 90 - type: "text" - metadata: - restrictions: - - "cluster:net_provider != 'neutron'": "Only neutron is supported by OpenDaylight" - odl_features: - default: - - config - - standard - - region - - package - - kar - - ssh - - management - odl-default: - - odl-restconf-all - - odl-aaa-authn - - odl-dlux-all - gcr: - - odl-groupbasedpolicy-ovssfc - ncr: - - odl-ovsdb-sfc - - odl-ovsdb-sfc-rest - ovsdb: - - odl-ovsdb-openstack - netvirt: - - odl-netvirt-openstack - sfc: - - odl-sfc-model - - odl-sfc-provider - - odl-sfc-provider-rest - - odl-sfc-ovs - - odl-sfc-openflow-renderer - default_credentials: - user: admin - password: admin - jetty_port: 8181 - #plugin_id: Assigned during installation - plugin_version: 1.0.0 - weight: 70 diff --git a/deploy/config/plugins/fuel-onos_0.0.1.yaml b/deploy/config/plugins/fuel-onos_0.0.1.yaml deleted file mode 100644 index 54ecdc0dc..000000000 --- a/deploy/config/plugins/fuel-onos_0.0.1.yaml +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: ONOS fuel Plugin configuration template - version: 0.1 - created: Wed Jan 7 2016 - comment: None - -onos: - metadata: - enabled: true - label: onos plugin - # plugin_id: Assigned during installation - restrictions: - - cluster:net_provider != 'neutron': Neutron only - toggleable: true - weight: 70 - public_eth: - description: Please note that onos needs an independent eth for public - network when interfaces of nodes are configured, or L3 traffic to - internet will fail! - Defualt is eth3. - label: Public Ethernet Port - type: text - value: eth3 - weight: 20 diff --git a/deploy/config/plugins/fuel-onos_0.0.2.yaml b/deploy/config/plugins/fuel-onos_0.0.2.yaml deleted file mode 100644 index 1d0b54d04..000000000 --- a/deploy/config/plugins/fuel-onos_0.0.2.yaml +++ /dev/null @@ -1,33 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: ONOS fuel Plugin configuration template - version: 0.2 - created: Fre Jan 29 2016 - comment: None - -onos: - metadata: - # chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: onos plugin - toggleable: true - versions: - - metadata: - always_editable: false - # plugin_id: Assigned during installation - plugin_version: 0.8.0 - restrictions: - - cluster:net_provider != 'neutron': Neutron only - - settings:public_network_assignment.assign_to_all_nodes.value == false: Assign - public network to all nodes - weight: 70 diff --git a/deploy/config/plugins/fuel-onos_0.0.3.yaml b/deploy/config/plugins/fuel-onos_0.0.3.yaml deleted file mode 100644 index 8ff9c8323..000000000 --- a/deploy/config/plugins/fuel-onos_0.0.3.yaml +++ /dev/null @@ -1,38 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -plugin-config-metadata: - title: ONOS fuel Plugin configuration template - version: 0.3 - created: Wed Jun 8 2016 - comment: add sfc feature - -onos: - metadata: - # chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: onos plugin - toggleable: true - versions: - - enable_sfc: - label: SFC features - type: checkbox - value: true - weight: 13 - metadata: - hot_pluggable: false - # plugin_id: Assigned during installation - plugin_version: 0.10.2 - restrictions: - - cluster:net_provider != 'neutron': Neutron only - - settings:public_network_assignment.assign_to_all_nodes.value == false: Assign - public network to all nodes - weight: 70 diff --git a/deploy/config/plugins/fuel-tacker_0.9.0.yaml b/deploy/config/plugins/fuel-tacker_0.9.0.yaml deleted file mode 100644 index 71e028ffd..000000000 --- a/deploy/config/plugins/fuel-tacker_0.9.0.yaml +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB and others. -# mskalski@mirantis.com -# 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 -############################################################################## - -plugin-config-metadata: - title: Tacker fuel plugin configuration template - version: 0.1 - created: 03.10.2016 - comment: None -tacker: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: Tacker VNF manager - toggleable: true - versions: - - metadata: - group: 'openstack_services' - db_password: - generator: 'password' - user_password: - generator: 'password' - user: 'tacker' - port: 8889 - service: 'tacker-server' - restrictions: - - condition: "settings:opendaylight == null or settings:opendaylight.metadata.enabled == false or settings:opendaylight.enable_sfc.value == false" - strict: false - message: "Please install OpenDaylight Plugin with SFC features enabled" - - condition: "settings:fuel-plugin-ovs == null or settings:fuel-plugin-ovs.metadata.enabled == false" - strict: false - message: "Please install and enable Openvswitch plugin with NSH support." - #plugin_id: Assigned during installation - plugin_version: 0.2.0 - debug: - value: false - label: 'Debug logging' - description: 'Debug logging mode provides more information, but requires more disk space.' - weight: 25 - type: "checkbox" - weight: 70 diff --git a/deploy/config/plugins/fuel-tacker_1.0.0.yaml b/deploy/config/plugins/fuel-tacker_1.0.0.yaml deleted file mode 100644 index 538975439..000000000 --- a/deploy/config/plugins/fuel-tacker_1.0.0.yaml +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB and others. -# mskalski@mirantis.com -# 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 -############################################################################## - -plugin-config-metadata: - title: Tacker fuel plugin configuration template - version: 0.2 - created: 02.02.2017 - comment: Fuel 10 support -tacker: - metadata: - #chosen_id: Assigned during installation - class: plugin - default: false - enabled: true - label: Tacker VNF manager - toggleable: true - versions: - - metadata: - group: 'openstack_services' - db_password: - generator: 'password' - user_password: - generator: 'password' - user: 'tacker' - port: 8889 - service: 'tacker-server' - restrictions: - - condition: "settings:opendaylight == null or settings:opendaylight.metadata.enabled == false or settings:opendaylight.enable_sfc.value == false" - strict: false - message: "Please install OpenDaylight Plugin with SFC features enabled" - - condition: "settings:fuel-plugin-ovs == null or settings:fuel-plugin-ovs.metadata.enabled == false" - strict: false - message: "Please install and enable Openvswitch plugin with NSH support." - #plugin_id: Assigned during installation - plugin_version: 1.0.0 - debug: - value: false - label: 'Debug logging' - description: 'Debug logging mode provides more information, but requires more disk space.' - weight: 25 - type: "checkbox" - weight: 70 diff --git a/deploy/dea.py b/deploy/dea.py deleted file mode 100644 index 1ac048e06..000000000 --- a/deploy/dea.py +++ /dev/null @@ -1,105 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import yaml -import io -import netaddr - - -class DeploymentEnvironmentAdapter(object): - - def __init__(self, yaml_path): - self.dea_struct = None - self.parse_yaml(yaml_path) - self.network_names = [] - self.collect_network_names() - - def modify_ip(self, ip_addr, index, val): - ip_str = str(netaddr.IPAddress(ip_addr)) - decimal_list = map(int, ip_str.split('.')) - decimal_list[index] = val - return '.'.join(map(str, decimal_list)) - - def parse_yaml(self, yaml_path): - with io.open(yaml_path) as yaml_file: - self.dea_struct = yaml.load(yaml_file) - - def get_env_name(self): - return self.get_property('environment')['name'] - - def get_env_net_segment_type(self): - return self.get_property('environment')['net_segment_type'] - - def get_fuel_config(self): - return self.dea_struct['fuel'] - - def get_fuel_ip(self): - fuel_conf = self.get_fuel_config() - return fuel_conf['ADMIN_NETWORK']['ipaddress'] - - def get_fuel_netmask(self): - fuel_conf = self.get_fuel_config() - return fuel_conf['ADMIN_NETWORK']['netmask'] - - def get_fuel_gateway(self): - ip = self.get_fuel_ip() - return self.modify_ip(ip, 3, 1) - - def get_fuel_hostname(self): - fuel_conf = self.get_fuel_config() - return fuel_conf['HOSTNAME'] - - def get_fuel_dns(self): - fuel_conf = self.get_fuel_config() - return fuel_conf['DNS_UPSTREAM'] - - def get_node_property(self, node_id, property_name): - for node in self.dea_struct['nodes']: - if node['id'] == node_id and property_name in node: - return node[property_name] - - def get_node_roles(self, node_id): - return self.get_node_property(node_id, 'role') - - def get_node_main_role(self, node_id, fuel_node_id): - if node_id == fuel_node_id: - return 'fuel' - roles = self.get_node_roles(node_id) - return 'controller' if 'controller' in roles else 'compute' - - def get_node_ids(self): - node_ids = [] - for node in self.dea_struct['nodes']: - node_ids.append(node['id']) - return node_ids - - def get_property(self, property_name): - return self.dea_struct[property_name] - - def collect_network_names(self): - self.network_names = [] - for network in self.dea_struct['network']['networks']: - self.network_names.append(network['name']) - - def get_network_names(self): - return self.network_names - - def get_dns_list(self): - settings = self.get_property('settings') - dns_list = settings['editable']['external_dns']['dns_list']['value'] - return [d.strip() for d in dns_list.split(',')] - - def get_ntp_list(self): - settings = self.get_property('settings') - ntp_list = settings['editable']['external_ntp']['ntp_list']['value'] - return [n.strip() for n in ntp_list.split(',')] - - def get_blade_node_map(self): - return self.dea_struct['blade_node_map'] diff --git a/deploy/deploy-config.py b/deploy/deploy-config.py deleted file mode 100644 index 5f5699cd7..000000000 --- a/deploy/deploy-config.py +++ /dev/null @@ -1,457 +0,0 @@ -#!/usr/bin/python -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################### - -############################################################################### -# Description -# This script constructs the final deployment dea.yaml and dha.yaml files -# The dea.yaml get's constructed from (in reverse priority): -# 1) dea-base -# 2) dea-pod-override -# 3) deployment-scenario dea-override-config section -# -# The dha.yaml get's constructed from (in reverse priority): -# 1) pod dha -# 2) deployment-scenario dha-override-config section -############################################################################### - - -import os -import yaml -import sys -import urllib2 -import calendar -import time -import collections -import hashlib - -from common import ( - ArgParser, -) - - -def parse_arguments(): - parser = ArgParser(prog='python %s' % __file__) - parser.add_argument('-dha', dest='dha_uri', action='store', - default=False, - help='dha configuration file FQDN URI', - required=True) - parser.add_argument('-deab', dest='dea_base_uri', action='store', - default=False, - help='dea base configuration FQDN URI', - required=True) - parser.add_argument('-deao', dest='dea_pod_override_uri', - action='store', - default=False, - help='dea POD override configuration FQDN URI', - required=True) - parser.add_argument('-scenario-base-uri', - dest='scenario_base_uri', - action='store', - default=False, - help='Deployment scenario base directory URI', - required=True) - parser.add_argument('-scenario', dest='scenario', action='store', - default=False, - help=('Deployment scenario short-name (priority), ' - 'or base file name (in the absense of a ' - 'shortname defenition)'), - required=True) - - parser.add_argument('-plugins', dest='plugins_uri', action='store', - default=False, - help='Plugin configurations directory URI', - required=True) - parser.add_argument('-output', dest='output_path', action='store', - default=False, - help='Local path for resulting output configuration files', - required=True) - args = parser.parse_args() - kwargs = {'dha_uri': args.dha_uri, - 'dea_base_uri': args.dea_base_uri, - 'dea_pod_override_uri': args.dea_pod_override_uri, - 'scenario_base_uri': args.scenario_base_uri, - 'scenario': args.scenario, - 'plugins_uri': args.plugins_uri, - 'output_path': args.output_path} - return kwargs - - -def warning(msg): - red = '\033[0;31m' - NC = '\033[0m' - print('%(red)s WARNING: %(msg)s %(NC)s' % {'red': red, - 'msg': msg, - 'NC': NC}) - - -def setup_yaml(): - represent_dict_order = lambda self, data: self.represent_mapping('tag:yaml.org,2002:map', data.items()) - yaml.add_representer(collections.OrderedDict, represent_dict_order) - - -def sha_uri(uri): - response = urllib2.urlopen(uri) - data = response.read() - sha1 = hashlib.sha1() - sha1.update(data) - return sha1.hexdigest() - - -def merge_fuel_plugin_version_list(list1, list2): - final_list = [] - # When the plugin version in not there in list1 it will - # not be copied - for e_l1 in list1: - plugin_version = e_l1.get('metadata', {}).get('plugin_version') - plugin_version_found = False - for e_l2 in list2: - if plugin_version == e_l2.get('metadata', {}).get('plugin_version'): - final_list.append(dict(merge_dicts(e_l1, e_l2))) - plugin_version_found = True - if not plugin_version_found: - final_list.append(e_l1) - return final_list - - -def merge_networks(list_1, list_2): - new_nets = {x.get('name'): x for x in list_2} - - return [new_nets.get(net.get('name'), net) for net in list_1] - - -def merge_dicts(dict1, dict2): - for k in set(dict1).union(dict2): - if k in dict1 and k in dict2: - if isinstance(dict1[k], dict) and isinstance(dict2[k], dict): - yield (k, dict(merge_dicts(dict1[k], dict2[k]))) - continue - if isinstance(dict1[k], list) and isinstance(dict2[k], list): - if k == 'versions': - yield (k, - merge_fuel_plugin_version_list(dict1[k], dict2[k])) - continue - if k == 'networks': - yield (k, - merge_networks(dict1[k], dict2[k])) - continue - - # If one of the values is not a dict nor a list, - # you can't continue merging it. - # Value from second dict overrides one in first if exists. - if k in dict2: - yield (k, dict2[k]) - else: - yield (k, dict1[k]) - - -def get_node_ifaces_and_trans(nodes, nid): - for node in nodes: - if node['id'] == nid: - if 'transformations' in node and 'interfaces' in node: - return (node['interfaces'], node['transformations']) - else: - return None - - return None - - -class DeployConfig(object): - def __init__(self): - self.kwargs = parse_arguments() - self.dea_conf = dict() - self.dea_metadata = dict() - self.dea_pod_ovr_metadata = dict() - self.dea_pod_ovr_nodes = None - self.scenario_metadata = dict() - self.modules = [] - self.module_uris = [] - self.module_titles = [] - self.module_versions = [] - self.module_createds = [] - self.module_shas = [] - self.module_comments = [] - self.dha_pod_conf = dict() - self.dha_metadata = dict() - - def process_dea_base(self): - # Generate final dea.yaml by merging following config files/fragments in reverse priority order: - # "dea-base", "dea-pod-override", "deplyment-scenario/module-config-override" - # and "deployment-scenario/dea-override" - print('Generating final dea.yaml configuration....') - - # Fetch dea-base, extract and purge meta-data - print('Parsing dea-base from: ' + self.kwargs["dea_base_uri"] + "....") - response = urllib2.urlopen(self.kwargs["dea_base_uri"]) - dea_conf = yaml.load(response.read()) - - dea_metadata = dict() - dea_metadata['title'] = dea_conf['dea-base-config-metadata']['title'] - dea_metadata['version'] = dea_conf['dea-base-config-metadata']['version'] - dea_metadata['created'] = dea_conf['dea-base-config-metadata']['created'] - dea_metadata['sha'] = sha_uri(self.kwargs["dea_base_uri"]) - dea_metadata['comment'] = dea_conf['dea-base-config-metadata']['comment'] - self.dea_metadata = dea_metadata - dea_conf.pop('dea-base-config-metadata') - self.dea_conf = dea_conf - - def process_dea_pod_override(self): - # Fetch dea-pod-override, extract and purge meta-data, merge with previous dea data structure - print('Parsing the dea-pod-override from: ' + self.kwargs["dea_pod_override_uri"] + "....") - response = urllib2.urlopen(self.kwargs["dea_pod_override_uri"]) - dea_pod_override_conf = yaml.load(response.read()) - - if dea_pod_override_conf: - metadata = dict() - metadata['title'] = dea_pod_override_conf['dea-pod-override-config-metadata']['title'] - metadata['version'] = dea_pod_override_conf['dea-pod-override-config-metadata']['version'] - metadata['created'] = dea_pod_override_conf['dea-pod-override-config-metadata']['created'] - metadata['sha'] = sha_uri(self.kwargs["dea_pod_override_uri"]) - metadata['comment'] = dea_pod_override_conf['dea-pod-override-config-metadata']['comment'] - self.dea_pod_ovr_metadata = metadata - - print('Merging dea-base and dea-pod-override configuration ....') - dea_pod_override_conf.pop('dea-pod-override-config-metadata') - - # Copy the list of original nodes, which holds info on their transformations - if 'nodes' in dea_pod_override_conf: - self.dea_pod_ovr_nodes = list(dea_pod_override_conf['nodes']) - if dea_pod_override_conf: - self.dea_conf = dict(merge_dicts(self.dea_conf, dea_pod_override_conf)) - - def get_scenario_uri(self): - response = urllib2.urlopen(self.kwargs["scenario_base_uri"] + "/scenario.yaml") - scenario_short_translation_conf = yaml.load(response.read()) - if self.kwargs["scenario"] in scenario_short_translation_conf: - scenario_uri = (self.kwargs["scenario_base_uri"] - + "/" - + scenario_short_translation_conf[self.kwargs["scenario"]]['configfile']) - else: - scenario_uri = self.kwargs["scenario_base_uri"] + "/" + self.kwargs["scenario"] - - return scenario_uri - - def get_scenario_config(self): - self.scenario_metadata['uri'] = self.get_scenario_uri() - response = urllib2.urlopen(self.scenario_metadata['uri']) - return yaml.load(response.read()) - - def process_modules(self): - scenario_conf = self.get_scenario_config() - if scenario_conf["stack-extensions"]: - for module in scenario_conf["stack-extensions"]: - print('Loading configuration for module: ' - + module["module"] - + ' and merging it to final dea.yaml configuration....') - response = urllib2.urlopen(self.kwargs["plugins_uri"] - + '/' - + module["module-config-name"] - + '_' - + module["module-config-version"] - + '.yaml') - module_conf = yaml.load(response.read()) - self.modules.append(module["module"]) - self.module_uris.append(self.kwargs["plugins_uri"] - + '/' - + module["module-config-name"] - + '_' - + module["module-config-version"] - + '.yaml') - self.module_titles.append(str(module_conf['plugin-config-metadata']['title'])) - self.module_versions.append(str(module_conf['plugin-config-metadata']['version'])) - self.module_createds.append(str(module_conf['plugin-config-metadata']['created'])) - self.module_shas.append(sha_uri(self.kwargs["plugins_uri"] - + '/' - + module["module-config-name"] - + '_' - + module["module-config-version"] - + '.yaml')) - self.module_comments.append(str(module_conf['plugin-config-metadata']['comment'])) - module_conf.pop('plugin-config-metadata') - self.dea_conf['settings']['editable'].update(module_conf) - - scenario_module_override_conf = module.get('module-config-override') - if scenario_module_override_conf: - dea_scenario_module_override_conf = {} - dea_scenario_module_override_conf['settings'] = {} - dea_scenario_module_override_conf['settings']['editable'] = {} - dea_scenario_module_override_conf['settings']['editable'][module["module"]] = scenario_module_override_conf - self.dea_conf = dict(merge_dicts(self.dea_conf, dea_scenario_module_override_conf)) - - def process_scenario_config(self): - # Fetch deployment-scenario, extract and purge meta-data, merge deployment-scenario/ - # dea-override-configith previous dea data structure - print('Parsing deployment-scenario from: ' + self.kwargs["scenario"] + "....") - - scenario_conf = self.get_scenario_config() - - metadata = dict() - if scenario_conf: - metadata['title'] = scenario_conf['deployment-scenario-metadata']['title'] - metadata['version'] = scenario_conf['deployment-scenario-metadata']['version'] - metadata['created'] = scenario_conf['deployment-scenario-metadata']['created'] - metadata['sha'] = sha_uri(self.scenario_metadata['uri']) - metadata['comment'] = scenario_conf['deployment-scenario-metadata']['comment'] - self.scenario_metadata = metadata - scenario_conf.pop('deployment-scenario-metadata') - else: - print("Deployment scenario file not found or is empty") - print("Cannot continue, exiting ....") - sys.exit(1) - - dea_scenario_override_conf = scenario_conf["dea-override-config"] - if dea_scenario_override_conf: - print('Merging dea-base-, dea-pod-override- and deployment-scenario ' - 'configuration into final dea.yaml configuration....') - self.dea_conf = dict(merge_dicts(self.dea_conf, dea_scenario_override_conf)) - - self.process_modules() - - # Fetch plugin-configuration configuration files, extract and purge meta-data, - # merge/append with previous dea data structure, override plugin-configuration with - # deploy-scenario/module-config-override - - if self.dea_pod_ovr_nodes: - for node in self.dea_conf['nodes']: - data = get_node_ifaces_and_trans(self.dea_pod_ovr_nodes, node['id']) - if data: - print("Honoring original interfaces and transformations for " - "node %d to %s, %s" % (node['id'], data[0], data[1])) - node['interfaces'] = data[0] - node['transformations'] = data[1] - - def dump_dea_config(self): - # Dump final dea.yaml including configuration management meta-data to argument provided - # directory - path = self.kwargs["output_path"] - if not os.path.exists(path): - os.makedirs(path) - print('Dumping final dea.yaml to ' + path + '/dea.yaml....') - with open(path + '/dea.yaml', "w") as f: - f.write("\n".join([("title: DEA.yaml file automatically generated from the " - 'configuration files stated in the "configuration-files" ' - "fragment below"), - "version: " + str(calendar.timegm(time.gmtime())), - "created: " + time.strftime("%d/%m/%Y %H:%M:%S"), - "comment: none\n"])) - - f.write("\n".join(["configuration-files:", - " dea-base:", - " uri: " + self.kwargs["dea_base_uri"], - " title: " + str(self.dea_metadata['title']), - " version: " + str(self.dea_metadata['version']), - " created: " + str(self.dea_metadata['created']), - " sha1: " + sha_uri(self.kwargs["dea_base_uri"]), - " comment: " + str(self.dea_metadata['comment']) + "\n"])) - - f.write("\n".join([" pod-override:", - " uri: " + self.kwargs["dea_pod_override_uri"], - " title: " + str(self.dea_pod_ovr_metadata['title']), - " version: " + str(self.dea_pod_ovr_metadata['version']), - " created: " + str(self.dea_pod_ovr_metadata['created']), - " sha1: " + self.dea_pod_ovr_metadata['sha'], - " comment: " + str(self.dea_pod_ovr_metadata['comment']) + "\n"])) - - f.write("\n".join([" deployment-scenario:", - " uri: " + self.scenario_metadata['uri'], - " title: " + str(self.scenario_metadata['title']), - " version: " + str(self.scenario_metadata['version']), - " created: " + str(self.scenario_metadata['created']), - " sha1: " + self.scenario_metadata['sha'], - " comment: " + str(self.scenario_metadata['comment']) + "\n"])) - - f.write(" plugin-modules:\n") - for k, _ in enumerate(self.modules): - f.write("\n".join([" - module: " + self.modules[k], - " uri: " + self.module_uris[k], - " title: " + str(self.module_titles[k]), - " version: " + str(self.module_versions[k]), - " created: " + str(self.module_createds[k]), - " sha-1: " + self.module_shas[k], - " comment: " + str(self.module_comments[k]) + "\n"])) - - yaml.dump(self.dea_conf, f, default_flow_style=False) - - def process_dha_pod_config(self): - # Load POD dha and override it with "deployment-scenario/dha-override-config" section - print('Generating final dha.yaml configuration....') - print('Parsing dha-pod yaml configuration....') - response = urllib2.urlopen(self.kwargs["dha_uri"]) - dha_pod_conf = yaml.load(response.read()) - - dha_metadata = dict() - dha_metadata['title'] = dha_pod_conf['dha-pod-config-metadata']['title'] - dha_metadata['version'] = dha_pod_conf['dha-pod-config-metadata']['version'] - dha_metadata['created'] = dha_pod_conf['dha-pod-config-metadata']['created'] - dha_metadata['sha'] = sha_uri(self.kwargs["dha_uri"]) - dha_metadata['comment'] = dha_pod_conf['dha-pod-config-metadata']['comment'] - self.dha_metadata = dha_metadata - dha_pod_conf.pop('dha-pod-config-metadata') - self.dha_pod_conf = dha_pod_conf - - scenario_conf = self.get_scenario_config() - dha_scenario_override_conf = scenario_conf["dha-override-config"] - # Only virtual deploy scenarios can override dha.yaml since there - # is no way to programatically override a physical environment: - # wireing, IPMI set-up, etc. - # For Physical environments, dha.yaml overrides will be silently ignored - if dha_scenario_override_conf and (dha_pod_conf['adapter'] == 'libvirt' - or dha_pod_conf['adapter'] == 'esxi' - or dha_pod_conf['adapter'] == 'vbox'): - print('Merging dha-pod and deployment-scenario override information to final dha.yaml configuration....') - self.dha_pod_conf = dict(merge_dicts(self.dha_pod_conf, dha_scenario_override_conf)) - - def dump_dha_config(self): - # Dump final dha.yaml to argument provided directory - path = self.kwargs["output_path"] - print('Dumping final dha.yaml to ' + path + '/dha.yaml....') - with open(path + '/dha.yaml', "w") as f: - f.write("\n".join([("title: DHA.yaml file automatically generated from " - "the configuration files stated in the " - '"configuration-files" fragment below'), - "version: " + str(calendar.timegm(time.gmtime())), - "created: " + time.strftime("%d/%m/%Y %H:%M:%S"), - "comment: none\n"])) - - f.write("configuration-files:\n") - - f.write("\n".join([" dha-pod-configuration:", - " uri: " + self.kwargs["dha_uri"], - " title: " + str(self.dha_metadata['title']), - " version: " + str(self.dha_metadata['version']), - " created: " + str(self.dha_metadata['created']), - " sha-1: " + self.dha_metadata['sha'], - " comment: " + str(self.dha_metadata['comment']) + "\n"])) - - f.write("\n".join([" deployment-scenario:", - " uri: " + self.scenario_metadata['uri'], - " title: " + str(self.scenario_metadata['title']), - " version: " + str(self.scenario_metadata['version']), - " created: " + str(self.scenario_metadata['created']), - " sha-1: " + self.scenario_metadata['sha'], - " comment: " + str(self.scenario_metadata['comment']) + "\n"])) - - yaml.dump(self.dha_pod_conf, f, default_flow_style=False) - - -def main(): - setup_yaml() - - deploy_config = DeployConfig() - deploy_config.process_dea_base() - deploy_config.process_dea_pod_override() - deploy_config.process_scenario_config() - deploy_config.dump_dea_config() - - deploy_config.process_dha_pod_config() - deploy_config.dump_dha_config() - - -if __name__ == '__main__': - main() diff --git a/deploy/deploy.py b/deploy/deploy.py deleted file mode 100755 index 057a0579c..000000000 --- a/deploy/deploy.py +++ /dev/null @@ -1,422 +0,0 @@ -#!/usr/bin/python -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import os -import io -import re -import sys -import yaml -import signal -import netaddr - -from dea import DeploymentEnvironmentAdapter -from dha import DeploymentHardwareAdapter -from install_fuel_master import InstallFuelMaster -from deploy_env import CloudDeploy -from execution_environment import ExecutionEnvironment - -from common import ( - log, - exec_cmd, - err, - warn, - check_file_exists, - check_dir_exists, - create_dir_if_not_exists, - delete, - check_if_root, - ArgParser, -) - -FUEL_VM = 'fuel' -PATCH_DIR = 'fuel_patch' -WORK_DIR = '~/deploy' -CWD = os.getcwd() -MOUNT_STATE_VAR = 'AUTODEPLOY_ISO_MOUNTED' - - -class cd: - - def __init__(self, new_path): - self.new_path = os.path.expanduser(new_path) - - def __enter__(self): - self.saved_path = CWD - os.chdir(self.new_path) - - def __exit__(self, etype, value, traceback): - os.chdir(self.saved_path) - - -class AutoDeploy(object): - - def __init__(self, no_fuel, fuel_only, no_health_check, cleanup_only, - cleanup, storage_dir, pxe_bridge, iso_file, dea_file, - dha_file, fuel_plugins_dir, fuel_plugins_conf_dir, - no_plugins, deploy_timeout, no_deploy_environment, deploy_log): - self.no_fuel = no_fuel - self.fuel_only = fuel_only - self.no_health_check = no_health_check - self.cleanup_only = cleanup_only - self.cleanup = cleanup - self.storage_dir = storage_dir - self.pxe_bridge = pxe_bridge - self.iso_file = iso_file - self.dea_file = dea_file - self.dha_file = dha_file - self.fuel_plugins_dir = fuel_plugins_dir - self.fuel_plugins_conf_dir = fuel_plugins_conf_dir - self.no_plugins = no_plugins - self.deploy_timeout = deploy_timeout - self.no_deploy_environment = no_deploy_environment - self.deploy_log = deploy_log - self.dea = (DeploymentEnvironmentAdapter(dea_file) - if not cleanup_only else None) - self.dha = DeploymentHardwareAdapter(dha_file) - self.fuel_conf = {} - self.fuel_node_id = self.dha.get_fuel_node_id() - self.fuel_username, self.fuel_password = self.dha.get_fuel_access() - self.tmp_dir = None - - def modify_ip(self, ip_addr, index, val): - ip_str = str(netaddr.IPAddress(ip_addr)) - decimal_list = map(int, ip_str.split('.')) - decimal_list[index] = val - return '.'.join(map(str, decimal_list)) - - def collect_fuel_info(self): - self.fuel_conf['ip'] = self.dea.get_fuel_ip() - self.fuel_conf['gw'] = self.dea.get_fuel_gateway() - self.fuel_conf['dns1'] = self.dea.get_fuel_dns() - self.fuel_conf['netmask'] = self.dea.get_fuel_netmask() - self.fuel_conf['hostname'] = self.dea.get_fuel_hostname() - self.fuel_conf['showmenu'] = 'yes' - - def install_fuel_master(self): - log('Install Fuel Master') - new_iso = ('%s/deploy-%s' - % (self.tmp_dir, os.path.basename(self.iso_file))) - self.patch_iso(new_iso) - self.iso_file = new_iso - self.install_iso() - - def delete_old_fuel_env(self): - log('Delete old Fuel Master environments if present') - try: - old_dep = CloudDeploy(self.dea, self.dha, self.fuel_conf['ip'], - self.fuel_username, self.fuel_password, - self.dea_file, self.fuel_plugins_conf_dir, - WORK_DIR, self.no_health_check, - self.deploy_timeout, - self.no_deploy_environment, self.deploy_log) - with old_dep.ssh: - old_dep.check_previous_installation() - except Exception as e: - log('Could not delete old env: %s' % str(e)) - - def install_iso(self): - fuel = InstallFuelMaster(self.dea_file, self.dha_file, - self.fuel_conf['ip'], self.fuel_username, - self.fuel_password, self.fuel_node_id, - self.iso_file, WORK_DIR, - self.fuel_plugins_dir, self.no_plugins) - fuel.install() - - def patch_iso(self, new_iso): - tmp_orig_dir = '%s/origiso' % self.tmp_dir - tmp_new_dir = '%s/newiso' % self.tmp_dir - try: - self.copy(tmp_orig_dir, tmp_new_dir) - self.patch(tmp_new_dir, new_iso) - except Exception as e: - exec_cmd('fusermount -u %s' % tmp_orig_dir, False) - os.environ.pop(MOUNT_STATE_VAR, None) - delete(self.tmp_dir) - err(e) - - def copy(self, tmp_orig_dir, tmp_new_dir): - log('Copying...') - os.makedirs(tmp_orig_dir) - os.makedirs(tmp_new_dir) - exec_cmd('fuseiso %s %s' % (self.iso_file, tmp_orig_dir)) - os.environ[MOUNT_STATE_VAR] = tmp_orig_dir - with cd(tmp_orig_dir): - exec_cmd('find . | cpio -pd %s' % tmp_new_dir) - exec_cmd('fusermount -u %s' % tmp_orig_dir) - os.environ.pop(MOUNT_STATE_VAR, None) - delete(tmp_orig_dir) - exec_cmd('chmod -R 755 %s' % tmp_new_dir) - - def patch(self, tmp_new_dir, new_iso): - log('Patching...') - patch_dir = '%s/%s' % (CWD, PATCH_DIR) - ks_path = '%s/ks.cfg.patch' % patch_dir - - with cd(tmp_new_dir): - exec_cmd('cat %s | patch -p0' % ks_path) - delete('.rr_moved') - isolinux = 'isolinux/isolinux.cfg' - log('isolinux.cfg before: %s' - % exec_cmd('grep ip= %s' % isolinux)) - self.update_fuel_isolinux(isolinux) - log('isolinux.cfg after: %s' - % exec_cmd('grep ip= %s' % isolinux)) - - iso_label = self.parse_iso_volume_label(self.iso_file) - log('Volume label: %s' % iso_label) - - iso_linux_bin = 'isolinux/isolinux.bin' - exec_cmd('mkisofs -quiet -r -J -R -b %s ' - '-no-emul-boot -boot-load-size 4 ' - '-boot-info-table -hide-rr-moved ' - '-joliet-long ' - '-x "lost+found:" -V %s -o %s .' - % (iso_linux_bin, iso_label, new_iso)) - - delete(tmp_new_dir) - - def update_fuel_isolinux(self, file): - with io.open(file) as f: - data = f.read() - for key, val in self.fuel_conf.iteritems(): - # skip replacing these keys, as the format is different - if key in ['ip', 'gw', 'netmask', 'hostname']: - continue - - pattern = r'%s=[^ ]\S+' % key - replace = '%s=%s' % (key, val) - data = re.sub(pattern, replace, data) - - # process networking parameters - ip = ':'.join([self.fuel_conf['ip'], - '', - self.fuel_conf['gw'], - self.fuel_conf['netmask'], - self.fuel_conf['hostname'], - 'eth0:off:::']) - - data = re.sub(r'ip=[^ ]\S+', 'ip=%s' % ip, data) - - with io.open(file, 'w') as f: - f.write(data) - - def parse_iso_volume_label(self, iso_filename): - label_line = exec_cmd('isoinfo -d -i %s | grep -i "Volume id: "' % iso_filename) - # cut leading text: 'Volume id: ' - return label_line[11:] - - def deploy_env(self): - dep = CloudDeploy(self.dea, self.dha, self.fuel_conf['ip'], - self.fuel_username, self.fuel_password, - self.dea_file, self.fuel_plugins_conf_dir, - WORK_DIR, self.no_health_check, self.deploy_timeout, - self.no_deploy_environment, self.deploy_log) - return dep.deploy() - - def setup_execution_environment(self): - exec_env = ExecutionEnvironment(self.storage_dir, self.pxe_bridge, - self.dha_file, self.dea) - exec_env.setup_environment() - - def cleanup_execution_environment(self): - exec_env = ExecutionEnvironment(self.storage_dir, self.pxe_bridge, - self.dha_file, self.dea) - exec_env.cleanup_environment() - - def create_tmp_dir(self): - self.tmp_dir = '%s/fueltmp' % CWD - delete(self.tmp_dir) - create_dir_if_not_exists(self.tmp_dir) - - def deploy(self): - self.collect_fuel_info() - if not self.no_fuel: - self.delete_old_fuel_env() - self.setup_execution_environment() - self.create_tmp_dir() - self.install_fuel_master() - if not self.fuel_only: - return self.deploy_env() - # Exit status - return 0 - - def run(self): - check_if_root() - if self.cleanup_only: - self.cleanup_execution_environment() - else: - deploy_success = self.deploy() - if self.cleanup: - self.cleanup_execution_environment() - return deploy_success - # Exit status - return 0 - - -def check_bridge(pxe_bridge, dha_path): - # Assume that bridges on remote nodes exists, we could ssh but - # the remote user might not have a login shell. - if os.environ.get('LIBVIRT_DEFAULT_URI'): - return - - with io.open(dha_path) as yaml_file: - dha_struct = yaml.load(yaml_file) - if dha_struct['adapter'] != 'libvirt': - log('Using Linux Bridge %s for booting up the Fuel Master VM' - % pxe_bridge) - r = exec_cmd('ip link show %s' % pxe_bridge) - if pxe_bridge in r and 'state DOWN' in r: - err('Linux Bridge {0} is not Active, bring' - ' it UP first: [ip link set dev {0} up]'.format(pxe_bridge)) - - -def check_fuel_plugins_dir(dir): - msg = None - if not dir: - msg = 'Fuel Plugins Directory not specified!' - elif not os.path.isdir(dir): - msg = 'Fuel Plugins Directory does not exist!' - elif not os.listdir(dir): - msg = 'Fuel Plugins Directory is empty!' - if msg: - warn('%s No external plugins will be installed!' % msg) - - -def parse_arguments(): - parser = ArgParser(prog='python %s' % __file__) - parser.add_argument('-nf', dest='no_fuel', action='store_true', - default=False, - help='Do not install Fuel Master (and Node VMs when ' - 'using libvirt)') - parser.add_argument('-nh', dest='no_health_check', action='store_true', - default=False, - help='Don\'t run health check after deployment') - parser.add_argument('-fo', dest='fuel_only', action='store_true', - default=False, - help='Install Fuel Master only (and Node VMs when ' - 'using libvirt)') - parser.add_argument('-co', dest='cleanup_only', action='store_true', - default=False, - help='Cleanup VMs and Virtual Networks according to ' - 'what is defined in DHA') - parser.add_argument('-c', dest='cleanup', action='store_true', - default=False, - help='Cleanup after deploy') - if {'-iso', '-dea', '-dha', '-h'}.intersection(sys.argv): - parser.add_argument('-iso', dest='iso_file', action='store', nargs='?', - default='%s/OPNFV.iso' % CWD, - help='ISO File [default: OPNFV.iso]') - parser.add_argument('-dea', dest='dea_file', action='store', nargs='?', - default='%s/dea.yaml' % CWD, - help='Deployment Environment Adapter: dea.yaml') - parser.add_argument('-dha', dest='dha_file', action='store', nargs='?', - default='%s/dha.yaml' % CWD, - help='Deployment Hardware Adapter: dha.yaml') - else: - parser.add_argument('iso_file', action='store', nargs='?', - default='%s/OPNFV.iso' % CWD, - help='ISO File [default: OPNFV.iso]') - parser.add_argument('dea_file', action='store', nargs='?', - default='%s/dea.yaml' % CWD, - help='Deployment Environment Adapter: dea.yaml') - parser.add_argument('dha_file', action='store', nargs='?', - default='%s/dha.yaml' % CWD, - help='Deployment Hardware Adapter: dha.yaml') - parser.add_argument('-s', dest='storage_dir', action='store', - default='%s/images' % CWD, - help='Storage Directory [default: images]') - parser.add_argument('-b', dest='pxe_bridge', action='append', - default=[], - help='Linux Bridge for booting up the Fuel Master VM ' - '[default: pxebr]') - parser.add_argument('-p', dest='fuel_plugins_dir', action='store', - help='Fuel Plugins directory') - parser.add_argument('-pc', dest='fuel_plugins_conf_dir', action='store', - help='Fuel Plugins Configuration directory') - parser.add_argument('-np', dest='no_plugins', action='store_true', - default=False, help='Do not install Fuel Plugins') - parser.add_argument('-dt', dest='deploy_timeout', action='store', - default=240, help='Deployment timeout (in minutes) ' - '[default: 240]') - parser.add_argument('-nde', dest='no_deploy_environment', - action='store_true', default=False, - help=('Do not launch environment deployment')) - parser.add_argument('-log', dest='deploy_log', - action='store', default='../ci/.', - help=('Path and name of the deployment log archive')) - - args = parser.parse_args() - log(args) - - if not args.pxe_bridge: - args.pxe_bridge = ['pxebr'] - - check_file_exists(args.dha_file) - - check_dir_exists(os.path.dirname(args.deploy_log)) - - if not args.cleanup_only: - check_file_exists(args.dea_file) - check_fuel_plugins_dir(args.fuel_plugins_dir) - - iso_abs_path = os.path.abspath(args.iso_file) - if not args.no_fuel and not args.cleanup_only: - log('Using OPNFV ISO file: %s' % iso_abs_path) - check_file_exists(iso_abs_path) - log('Using image directory: %s' % args.storage_dir) - create_dir_if_not_exists(args.storage_dir) - for bridge in args.pxe_bridge: - check_bridge(bridge, args.dha_file) - - - kwargs = {'no_fuel': args.no_fuel, 'fuel_only': args.fuel_only, - 'no_health_check': args.no_health_check, - 'cleanup_only': args.cleanup_only, 'cleanup': args.cleanup, - 'storage_dir': args.storage_dir, 'pxe_bridge': args.pxe_bridge, - 'iso_file': iso_abs_path, 'dea_file': args.dea_file, - 'dha_file': args.dha_file, - 'fuel_plugins_dir': args.fuel_plugins_dir, - 'fuel_plugins_conf_dir': args.fuel_plugins_conf_dir, - 'no_plugins': args.no_plugins, - 'deploy_timeout': args.deploy_timeout, - 'no_deploy_environment': args.no_deploy_environment, - 'deploy_log': args.deploy_log} - return kwargs - - -def handle_signals(signal_num, frame): - signal.signal(signal.SIGINT, signal.SIG_IGN) - signal.signal(signal.SIGTERM, signal.SIG_IGN) - - log('Caught signal %s, cleaning up and exiting.' % signal_num) - - mount_point = os.environ.get(MOUNT_STATE_VAR) - if mount_point: - log('Unmounting ISO from "%s"' % mount_point) - # Prevent 'Device or resource busy' errors when unmounting - os.chdir('/') - exec_cmd('fusermount -u %s' % mount_point, True) - # Be nice and remove our environment variable, even though the OS would - # would clean it up anyway - os.environ.pop(MOUNT_STATE_VAR) - - sys.exit(1) - - -def main(): - signal.signal(signal.SIGINT, handle_signals) - signal.signal(signal.SIGTERM, handle_signals) - kwargs = parse_arguments() - d = AutoDeploy(**kwargs) - sys.exit(d.run()) - -if __name__ == '__main__': - main() diff --git a/deploy/deploy_env.py b/deploy/deploy_env.py deleted file mode 100644 index d374cce11..000000000 --- a/deploy/deploy_env.py +++ /dev/null @@ -1,284 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import os -import io -import yaml -import glob -import time -import shutil - -from ssh_client import SSHClient - -from common import ( - err, - log, - parse, - N, - E, - R, - delete, -) - -CLOUD_DEPLOY_FILE = 'deploy.py' -BLADE_RESTART_TIMES = 3 - - -class CloudDeploy(object): - - def __init__(self, dea, dha, fuel_ip, fuel_username, fuel_password, - dea_file, fuel_plugins_conf_dir, work_dir, no_health_check, - deploy_timeout, no_deploy_environment, deploy_log): - self.dea = dea - self.dha = dha - self.fuel_ip = fuel_ip - self.fuel_username = fuel_username - self.fuel_password = fuel_password - self.dea_file = dea_file - self.updated_dea_file = ( - '%s/.%s' % (os.path.dirname(self.dea_file), - os.path.basename(self.dea_file))) - shutil.copy2(self.dea_file, self.updated_dea_file) - self.fuel_plugins_conf_dir = fuel_plugins_conf_dir - self.work_dir = work_dir - self.no_health_check = no_health_check - self.deploy_timeout = deploy_timeout - self.no_deploy_environment = no_deploy_environment - self.deploy_log = deploy_log - self.file_dir = os.path.dirname(os.path.realpath(__file__)) - self.ssh = SSHClient(self.fuel_ip, self.fuel_username, - self.fuel_password) - self.node_ids = self.dha.get_node_ids() - self.wanted_release = self.dea.get_property('wanted_release') - self.blade_node_dict = {} - self.macs_per_blade = {} - - def merge_plugin_config_files_to_dea_file(self): - plugins_conf_dir = ( - self.fuel_plugins_conf_dir if self.fuel_plugins_conf_dir - else '%s/plugins_conf' % os.path.dirname(self.dea_file)) - if os.path.isdir(plugins_conf_dir): - with io.open(self.updated_dea_file) as stream: - updated_dea = yaml.load(stream) - for plugin_file in glob.glob('%s/*.yaml' % plugins_conf_dir): - with io.open(plugin_file) as stream: - plugin_conf = yaml.load(stream) - updated_dea['settings']['editable'].update(plugin_conf) - with io.open(self.updated_dea_file, 'w') as stream: - yaml.dump(updated_dea, stream, default_flow_style=False) - - def upload_cloud_deployment_files(self): - with self.ssh as s: - s.exec_cmd('rm -rf %s' % self.work_dir, False) - s.exec_cmd('mkdir %s' % self.work_dir) - s.scp_put(self.updated_dea_file, '%s/%s' % ( - self.work_dir, os.path.basename(self.dea_file))) - s.scp_put('%s/common.py' % self.file_dir, self.work_dir) - s.scp_put('%s/dea.py' % self.file_dir, self.work_dir) - for f in glob.glob('%s/cloud/*' % self.file_dir): - s.scp_put(f, self.work_dir) - - def power_off_nodes(self): - for node_id in self.node_ids: - self.dha.node_power_off(node_id) - - def power_on_nodes(self): - for node_id in self.node_ids: - self.dha.node_power_on(node_id) - - def set_boot_order(self, boot_order_list): - for node_id in self.node_ids: - self.dha.node_set_boot_order(node_id, boot_order_list[:]) - - def get_mac_addresses(self): - self.macs_per_blade = {} - for node_id in self.node_ids: - self.macs_per_blade[node_id] = self.dha.get_node_pxe_mac(node_id) - - def run_cloud_deploy(self, deploy_app): - log('START CLOUD DEPLOYMENT') - deploy_app = '%s/%s' % (self.work_dir, deploy_app) - dea_file = '%s/%s' % (self.work_dir, os.path.basename(self.dea_file)) - with self.ssh as s: - status = s.run('python %s %s %s %s %s' % ( - deploy_app, - ('-nh' if self.no_health_check else ''), - ('-dt %s' % - self.deploy_timeout if self.deploy_timeout else ''), - ('-nde' if self.no_deploy_environment else ''), - dea_file)) - return status - - def check_supported_release(self): - log('Check supported release: %s' % self.wanted_release) - found = False - release_list = parse(self.ssh.exec_cmd('fuel release -l')) - for release in release_list: - if release[R['name']] == self.wanted_release: - found = True - break - if not found: - err('This Fuel does not contain the following release: %s' - % self.wanted_release) - - def check_previous_installation(self): - log('Check previous installation') - env_list = parse(self.ssh.exec_cmd('fuel env list')) - if env_list: - self.cleanup_fuel_environments(env_list) - node_list = parse(self.ssh.exec_cmd('fuel node list')) - if node_list: - self.cleanup_fuel_nodes(node_list) - - def cleanup_fuel_environments(self, env_list): - WAIT_LOOP = 60 - SLEEP_TIME = 10 - for env in env_list: - log('Deleting environment %s' % env[E['id']]) - self.ssh.exec_cmd('fuel env --env %s --delete --force' - % env[E['id']]) - all_env_erased = False - for i in range(WAIT_LOOP): - env_list = parse(self.ssh.exec_cmd('fuel env list')) - if env_list: - time.sleep(SLEEP_TIME) - else: - all_env_erased = True - break - if not all_env_erased: - log('Could not erase these environments %s' - % [(env[E['id']], env[E['status']]) for env in env_list]) - - def cleanup_fuel_nodes(self, node_list): - for node in node_list: - if node[N['status']] == 'discover': - log('Deleting node %s' % node[N['id']]) - self.ssh.exec_cmd('fuel node --node-id %s --delete-from-db ' - '--force' % node[N['id']]) - self.ssh.exec_cmd('cobbler system remove --name node-%s' - % node[N['id']], False) - - def check_prerequisites(self): - log('Check prerequisites') - with self.ssh: - self.check_supported_release() - self.check_previous_installation() - - def wait_for_discovered_blades(self): - log('Wait for discovered blades') - discovered_macs = [] - restart_times = BLADE_RESTART_TIMES - - for blade in self.node_ids: - self.blade_node_dict[blade] = None - - with self.ssh: - all_discovered = self.discovery_waiting_loop(discovered_macs) - - while not all_discovered and restart_times != 0: - restart_times -= 1 - for blade in self.get_not_discovered_blades(): - self.dha.node_reset(blade) - with self.ssh: - all_discovered = self.discovery_waiting_loop(discovered_macs) - - if not all_discovered: - err('Not all blades have been discovered: %s' - % self.not_discovered_blades_summary()) - - with io.open(self.updated_dea_file) as stream: - updated_dea = yaml.load(stream) - updated_dea.update({'blade_node_map': self.blade_node_dict}) - with io.open(self.updated_dea_file, 'w') as stream: - yaml.dump(updated_dea, stream, default_flow_style=False) - - def discovery_waiting_loop(self, discovered_macs): - WAIT_LOOP = 360 - SLEEP_TIME = 10 - all_discovered = False - for i in range(WAIT_LOOP): - node_list = parse(self.ssh.exec_cmd('fuel node list')) - if node_list: - self.node_discovery(node_list, discovered_macs) - if self.all_blades_discovered(): - all_discovered = True - break - else: - time.sleep(SLEEP_TIME) - return all_discovered - - def node_discovery(self, node_list, discovered_macs): - for node in node_list: - if (node[N['status']] == 'discover' and - (node[N['online']] == 'True' or - node[N['online']] == '1') and - node[N['mac']] not in discovered_macs): - discovered_macs.append(node[N['mac']]) - blade = self.find_mac_in_dict(node[N['mac']]) - if blade: - log('Blade %s discovered as Node %s with MAC %s' - % (blade, node[N['id']], node[N['mac']])) - self.blade_node_dict[blade] = int(node[N['id']]) - - def find_mac_in_dict(self, mac): - for blade, mac_list in self.macs_per_blade.iteritems(): - if mac in mac_list: - return blade - - def all_blades_discovered(self): - for blade, node_id in self.blade_node_dict.iteritems(): - if not node_id: - return False - return True - - def not_discovered_blades_summary(self): - summary = '' - for blade, node_id in self.blade_node_dict.iteritems(): - if not node_id: - summary += '\n[blade %s]' % blade - return summary - - def get_not_discovered_blades(self): - not_discovered_blades = [] - for blade, node_id in self.blade_node_dict.iteritems(): - if not node_id: - not_discovered_blades.append(blade) - return not_discovered_blades - - def set_boot_order_nodes(self): - self.power_off_nodes() - self.set_boot_order(['pxe', 'disk']) - self.power_on_nodes() - - def get_put_deploy_log(self): - with self.ssh as s: - s.scp_get("deploy-*", local=self.deploy_log) - - def deploy(self): - - self.set_boot_order_nodes() - - self.check_prerequisites() - - self.get_mac_addresses() - - self.wait_for_discovered_blades() - - self.merge_plugin_config_files_to_dea_file() - - self.upload_cloud_deployment_files() - - delete(self.updated_dea_file) - - rc = self.run_cloud_deploy(CLOUD_DEPLOY_FILE) - - self.get_put_deploy_log() - - return rc diff --git a/deploy/dha.py b/deploy/dha.py deleted file mode 100644 index 3f09da40a..000000000 --- a/deploy/dha.py +++ /dev/null @@ -1,38 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import yaml -import io - -from dha_adapters.libvirt_adapter import LibvirtAdapter -from dha_adapters.ipmi_adapter import IpmiAdapter -from dha_adapters.hp_adapter import HpAdapter -from dha_adapters.amt_adapter import AmtAdapter -from dha_adapters.zte_adapter import ZteAdapter - -class DeploymentHardwareAdapter(object): - - def __new__(cls, yaml_path): - with io.open(yaml_path) as yaml_file: - dha_struct = yaml.load(yaml_file) - type = dha_struct['adapter'] - - if cls is DeploymentHardwareAdapter: - if type == 'libvirt': - return LibvirtAdapter(yaml_path) - if type == 'ipmi': - return IpmiAdapter(yaml_path) - if type == 'hp': - return HpAdapter(yaml_path) - if type == 'amt': - return AmtAdapter(yaml_path) - if type == 'zte': - return ZteAdapter(yaml_path) - return super(DeploymentHardwareAdapter, cls).__new__(cls) diff --git a/deploy/dha_adapters/__init__.py b/deploy/dha_adapters/__init__.py deleted file mode 100644 index fb73157f9..000000000 --- a/deploy/dha_adapters/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### diff --git a/deploy/dha_adapters/amt_adapter.py b/deploy/dha_adapters/amt_adapter.py deleted file mode 100644 index 02025b9dd..000000000 --- a/deploy/dha_adapters/amt_adapter.py +++ /dev/null @@ -1,100 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# liyi.meng@ericsson.com -# 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 -############################################################################### - - -from hardware_adapter import HardwareAdapter - -from common import ( - log, - exec_cmd, - err, -) - - -''' -This is hardware adapter for Intel AMT based system. It use amttool to interact - with the targeting node. It dose not support vPro v9. if the targeting system - is v9 or later, we need to consider a new adpater with using lib - like https://github.com/sdague/amt -''' -class AmtAdapter(HardwareAdapter): - - def __init__(self, yaml_path): - super(AmtAdapter, self).__init__(yaml_path) - #amttool dose not allow you change bios setting permanently. - # so we have to make a workaround to make it IPMI like. - self.boot_order = {} - - def node_get_boot_dev(self, node_id): - if node_id in self.boot_order: - dev = self.boot_order[node_id][0] - if dev == 'pxe': - return 'PXE-boot' - elif dev == 'iso': - return 'cd-boot' - elif dev == 'disk': - return 'HD-boot' - else: - return 'HD-boot' - - def get_access_info(self, node_id): - ip = self.get_node_property(node_id, 'amtIp') - username = self.get_node_property(node_id, 'amtUser') - password = self.get_node_property(node_id, 'amtPass') - return ip, username, password - - def amt_cmd(self, node_id): - ip, username, password = self.get_access_info(node_id) - # We first Setup password for amttool, then use ping to wake up the node over LAN - cmd = 'export AMT_PASSWORD={0};' \ - 'ping {1} -W 5 -c 1 -q;' \ - 'yes | amttool {1}'.format(password, ip) - return cmd - - def get_node_pxe_mac(self, node_id): - mac_list = [] - mac_list.append(self.get_node_property(node_id, 'pxeMac').lower()) - return mac_list - - def node_power_on(self, node_id): - log('Power ON Node %s' % node_id) - cmd_prefix = self.amt_cmd(node_id) - resp, ret = exec_cmd('{0} info'.format(cmd_prefix), check=False) - if 'Powerstate: S0' not in resp: - dev = self.node_get_boot_dev(node_id) - resp, ret = exec_cmd('{0} powerup {1}'.format(cmd_prefix, dev), check=False) - if 'pt_status: success' not in resp: - err('Could Not Power ON Node %s' % node_id) - - def node_power_off(self, node_id): - log('Power OFF Node %s' % node_id) - cmd_prefix = self.amt_cmd(node_id) - resp, ret = exec_cmd('{0} info'.format(cmd_prefix), check=False) - if "Powerstate: S0" in resp: - resp, ret = exec_cmd('{0} powerdown'.format(cmd_prefix), check=False) - if 'pt_status: success' not in resp: - err('Could Not Power OFF Node %s' % node_id) - - def node_reset(self, node_id): - log('RESET Node %s' % node_id) - cmd_prefix = self.amt_cmd(node_id) - dev = self.node_get_boot_dev(node_id) - resp, ret = exec_cmd('{0} info'.format(cmd_prefix), check=False) - if 'Powerstate: S0' in resp: - resp, ret = exec_cmd('{0} reset {1}'.format(cmd_prefix, dev), check=False) - if 'pt_status: success' not in resp: - err('Could Not RESET Node %s' % node_id) - else: - err('Cannot RESET Node %s because it\'s not Active, state: %s' - % (node_id, resp)) - - def node_set_boot_order(self, node_id, boot_order_list): - log('Set boot order %s on Node %s' % (boot_order_list, node_id)) - self.boot_order[node_id] = boot_order_list - diff --git a/deploy/dha_adapters/hardware_adapter.py b/deploy/dha_adapters/hardware_adapter.py deleted file mode 100644 index aa59581ee..000000000 --- a/deploy/dha_adapters/hardware_adapter.py +++ /dev/null @@ -1,65 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import yaml -import io - - -class HardwareAdapter(object): - - def __init__(self, yaml_path): - self.dha_struct = None - self.parse_yaml(yaml_path) - - def parse_yaml(self, yaml_path): - with io.open(yaml_path) as yaml_file: - self.dha_struct = yaml.load(yaml_file) - - def get_adapter_type(self): - return self.dha_struct['adapter'] - - def get_all_node_ids(self): - node_ids = [] - for node in self.dha_struct['nodes']: - node_ids.append(node['id']) - node_ids.sort() - return node_ids - - def get_fuel_node_id(self): - for node in self.dha_struct['nodes']: - if 'isFuel' in node and node['isFuel']: - return node['id'] - - def get_node_ids(self): - node_ids = [] - fuel_node_id = self.get_fuel_node_id() - for node in self.dha_struct['nodes']: - if node['id'] != fuel_node_id: - node_ids.append(node['id']) - node_ids.sort() - return node_ids - - def get_node_property(self, node_id, property_name): - for node in self.dha_struct['nodes']: - if node['id'] == node_id and property_name in node: - return node[property_name] - - def get_fuel_access(self): - for node in self.dha_struct['nodes']: - if 'isFuel' in node and node['isFuel']: - return node['username'], node['password'] - - def get_disks(self): - return self.dha_struct['disks'] - - def get_vm_definition(self, role): - vm_definition = self.dha_struct.get('define_vms') - if vm_definition: - return vm_definition.get(role) diff --git a/deploy/dha_adapters/hp_adapter.py b/deploy/dha_adapters/hp_adapter.py deleted file mode 100644 index 6434da868..000000000 --- a/deploy/dha_adapters/hp_adapter.py +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from ipmi_adapter import IpmiAdapter -from ssh_client import SSHClient - -from common import ( - log, -) - -DEV = {'pxe': 'bootsource5', - 'disk': 'bootsource3', - 'iso': 'bootsource1'} - -ROOT = '/system1/bootconfig1' - - -class HpAdapter(IpmiAdapter): - - def __init__(self, yaml_path): - super(HpAdapter, self).__init__(yaml_path) - - def node_set_boot_order(self, node_id, boot_order_list): - log('Set boot order %s on Node %s' % (boot_order_list, node_id)) - ip, username, password, ipmiport = self.get_access_info(node_id) - ssh = SSHClient(ip, username, password) - with ssh as s: - for order, dev in enumerate(boot_order_list): - s.exec_cmd('set %s/%s bootorder=%s' - % (ROOT, DEV[dev], order + 1)) diff --git a/deploy/dha_adapters/ipmi_adapter.py b/deploy/dha_adapters/ipmi_adapter.py deleted file mode 100644 index 7cc930554..000000000 --- a/deploy/dha_adapters/ipmi_adapter.py +++ /dev/null @@ -1,114 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# (c) 2016 Enea Software AB -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import time -from hardware_adapter import HardwareAdapter - -from common import ( - log, - exec_cmd, - err, -) - - -class IpmiAdapter(HardwareAdapter): - - def __init__(self, yaml_path, attempts=20, delay=3): - super(IpmiAdapter, self).__init__(yaml_path) - self.attempts = attempts - self.delay = delay - - def get_access_info(self, node_id): - ip = self.get_node_property(node_id, 'ipmiIp') - username = self.get_node_property(node_id, 'ipmiUser') - password = self.get_node_property(node_id, 'ipmiPass') - ipmiport = self.get_node_property(node_id, 'ipmiPort') - return ip, username, password, ipmiport - - def ipmi_cmd(self, node_id): - ip, username, password, ipmiport = self.get_access_info(node_id) - cmd = 'ipmitool -I lanplus -A password' - cmd += ' -H %s -U %s -P %s' % (ip, username, password) - if ipmiport: - cmd += ' -p %d' % int(ipmiport) - return cmd - - def get_node_pxe_mac(self, node_id): - mac_list = [] - mac_list.append(self.get_node_property(node_id, 'pxeMac').lower()) - return mac_list - - def node_get_state(self, node_id): - state = exec_cmd('%s chassis power status' % self.ipmi_cmd(node_id), - attempts=self.attempts, delay=self.delay, - verbose=True, - mask_args=[8,10]) - return state - - def _node_power_cmd(self, node_id, cmd): - expected = 'Chassis Power is %s' % cmd - if self.node_get_state(node_id) == expected: - return - - pow_cmd = '%s chassis power %s' % (self.ipmi_cmd(node_id), cmd) - exec_cmd(pow_cmd, attempts=self.attempts, delay=self.delay, - verbose=True, - mask_args=[8,10]) - - attempts = self.attempts - while attempts: - time.sleep(self.delay) - state = self.node_get_state(node_id) - attempts -= 1 - if state == expected: - return - elif attempts != 0: - # reinforce our will, but allow the command to fail, - # we know our message got across once already... - exec_cmd(pow_cmd, check=False, mask_args=[8,10]) - - err('Could not set chassis %s for node %s' % (cmd, node_id)) - - def node_power_on(self, node_id): - log('Power ON Node %s' % node_id) - self._node_power_cmd(node_id, 'on') - - def node_power_off(self, node_id): - log('Power OFF Node %s' % node_id) - self._node_power_cmd(node_id, 'off') - - def node_reset(self, node_id): - log('RESET Node %s' % node_id) - cmd = '%s chassis power reset' % self.ipmi_cmd(node_id) - exec_cmd(cmd, attempts=self.attempts, delay=self.delay, - verbose=True, - mask_args=[8,10]) - - def node_set_boot_order(self, node_id, boot_order_list): - log('Set boot order %s on Node %s' % (boot_order_list, node_id)) - boot_order_list.reverse() - cmd_prefix = self.ipmi_cmd(node_id) - for dev in boot_order_list: - if dev == 'pxe': - exec_cmd('%s chassis bootdev pxe options=persistent' - % cmd_prefix, attempts=self.attempts, delay=self.delay, - verbose=True, - mask_args=[8,10]) - elif dev == 'iso': - exec_cmd('%s chassis bootdev cdrom' % cmd_prefix, - attempts=self.attempts, delay=self.delay, - verbose=True, - mask_args=[8,10]) - elif dev == 'disk': - exec_cmd('%s chassis bootdev disk options=persistent' - % cmd_prefix, attempts=self.attempts, delay=self.delay, - verbose=True, - mask_args=[8,10]) diff --git a/deploy/dha_adapters/libvirt_adapter.py b/deploy/dha_adapters/libvirt_adapter.py deleted file mode 100644 index a00f09147..000000000 --- a/deploy/dha_adapters/libvirt_adapter.py +++ /dev/null @@ -1,173 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from lxml import etree -from hardware_adapter import HardwareAdapter -import tempfile -import os - -from common import ( - log, - exec_cmd, - err, - delete, -) - -DEV = {'pxe': 'network', - 'disk': 'hd', - 'iso': 'cdrom'} - -VOL_XML_TEMPLATE = '''<volume type='file'> - <name>{name}</name> - <capacity unit='{unit}'>{size!s}</capacity> - <target> - <format type='{format_type}'/> - </target> -</volume>''' - -DEFAULT_POOL = 'jenkins' - -class LibvirtAdapter(HardwareAdapter): - - def __init__(self, yaml_path): - super(LibvirtAdapter, self).__init__(yaml_path) - self.parser = etree.XMLParser(remove_blank_text=True) - - def node_power_off(self, node_id): - vm_name = self.get_node_property(node_id, 'libvirtName') - log('Power OFF Node %s' % vm_name) - state = exec_cmd('virsh domstate %s' % vm_name) - if state == 'running': - exec_cmd('virsh destroy %s' % vm_name, False) - - def node_power_on(self, node_id): - vm_name = self.get_node_property(node_id, 'libvirtName') - log('Power ON Node %s' % vm_name) - state = exec_cmd('virsh domstate %s' % vm_name) - if state == 'shut off': - exec_cmd('virsh start %s' % vm_name) - - def node_reset(self, node_id): - vm_name = self.get_node_property(node_id, 'libvirtName') - log('Reset Node %s' % vm_name) - exec_cmd('virsh reset %s' % vm_name) - - def translate(self, boot_order_list): - translated = [] - for boot_dev in boot_order_list: - if boot_dev in DEV: - translated.append(DEV[boot_dev]) - else: - err('Boot device %s not recognized' % boot_dev) - return translated - - def node_set_boot_order(self, node_id, boot_order_list): - boot_order_list = self.translate(boot_order_list) - vm_name = self.get_node_property(node_id, 'libvirtName') - temp_dir = tempfile.mkdtemp() - log('Set boot order %s on Node %s' % (boot_order_list, vm_name)) - resp = exec_cmd('virsh dumpxml %s' % vm_name) - xml_dump = etree.fromstring(resp, self.parser) - os = xml_dump.xpath('/domain/os') - for o in os: - for bootelem in ['boot', 'bootmenu']: - boot = o.xpath(bootelem) - for b in boot: - o.remove(b) - for dev in boot_order_list: - b = etree.Element('boot') - b.set('dev', dev) - o.append(b) - bmenu = etree.Element('bootmenu') - bmenu.set('enable', 'no') - o.append(bmenu) - tree = etree.ElementTree(xml_dump) - xml_file = temp_dir + '/%s.xml' % vm_name - with open(xml_file, 'w') as f: - tree.write(f, pretty_print=True, xml_declaration=True) - exec_cmd('virsh define %s' % xml_file) - delete(temp_dir) - - def node_zero_mbr(self, node_id): - vm_name = self.get_node_property(node_id, 'libvirtName') - resp = exec_cmd('virsh dumpxml %s' % vm_name) - xml_dump = etree.fromstring(resp) - disks = xml_dump.xpath('/domain/devices/disk') - for disk in disks: - if disk.get('device') == 'disk': - sources = disk.xpath('source') - for source in sources: - disk_file = source.get('file') - disk_size = exec_cmd('qemu-img info ' - '%s |grep \"virtual size:\"' - % disk_file).split()[2] - delete(disk_file) - exec_cmd('qemu-img create -f raw %s %s' % (disk_file, - disk_size)) - - def node_eject_iso(self, node_id): - vm_name = self.get_node_property(node_id, 'libvirtName') - device = self.get_name_of_device(vm_name, 'cdrom') - exec_cmd('virsh change-media %s --eject %s --config --live' - % (vm_name, device), False) - - def node_insert_iso(self, node_id, iso_file): - vm_name = self.get_node_property(node_id, 'libvirtName') - device = self.get_name_of_device(vm_name, 'cdrom') - exec_cmd('virsh change-media %s --insert %s %s' - % (vm_name, device, iso_file)) - - def get_node_pxe_mac(self, node_id): - mac_list = [] - vm_name = self.get_node_property(node_id, 'libvirtName') - resp = exec_cmd('virsh dumpxml %s' % vm_name) - xml_dump = etree.fromstring(resp) - interfaces = xml_dump.xpath('/domain/devices/interface') - for interface in interfaces: - macs = interface.xpath('mac') - for mac in macs: - mac_list.append(mac.get('address').lower()) - return mac_list - - def get_name_of_device(self, vm_name, device_type): - resp = exec_cmd('virsh dumpxml %s' % vm_name) - xml_dump = etree.fromstring(resp) - disks = xml_dump.xpath('/domain/devices/disk') - for disk in disks: - if disk.get('device') == device_type: - targets = disk.xpath('target') - for target in targets: - device = target.get('dev') - if device: - return device - - def get_virt_net_conf_dir(self): - return self.dha_struct['virtNetConfDir'] - - def upload_iso(self, iso_file): - size = os.path.getsize(iso_file) - vol_name = os.path.basename(iso_file) - vol_xml = VOL_XML_TEMPLATE.format(name=vol_name, unit='bytes', - size=size, format_type='raw') - fd, fname = tempfile.mkstemp(text=True, suffix='deploy') - os.write(fd, vol_xml) - os.close(fd) - - log(vol_xml) - pool = DEFAULT_POOL # FIXME - exec_cmd('virsh vol-create --pool %s %s' % (pool, fname)) - vol_path = exec_cmd('virsh vol-path --pool %s %s' % (pool, vol_name)) - - exec_cmd('virsh vol-upload %s %s' % (vol_path, iso_file), - attempts=5, delay=10, verbose=True) - - delete(fname) - - return vol_path diff --git a/deploy/dha_adapters/zte_adapter.py b/deploy/dha_adapters/zte_adapter.py deleted file mode 100644 index 5d7939aa2..000000000 --- a/deploy/dha_adapters/zte_adapter.py +++ /dev/null @@ -1,30 +0,0 @@ -############################################################################### -# Copyright (c) 2016 Ericsson AB, ZTE and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from ipmi_adapter import IpmiAdapter - -from common import ( - log, - exec_cmd, -) - - -class ZteAdapter(IpmiAdapter): - - def __init__(self, yaml_path, attempts=100): - super(ZteAdapter, self).__init__(yaml_path, attempts) - - def node_reset(self, node_id): - log('RESET Node %s' % node_id) - cmd = '%s chassis power cycle' % self.ipmi_cmd(node_id) - exec_cmd(cmd, attempts=self.attempts, delay=self.delay, - verbose=True, - mask_args=[8,10]) - diff --git a/deploy/environments/__init__.py b/deploy/environments/__init__.py deleted file mode 100644 index fb73157f9..000000000 --- a/deploy/environments/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### diff --git a/deploy/environments/execution_environment.py b/deploy/environments/execution_environment.py deleted file mode 100644 index 7a0b4744e..000000000 --- a/deploy/environments/execution_environment.py +++ /dev/null @@ -1,102 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from lxml import etree -from dha_adapters.libvirt_adapter import LibvirtAdapter - -from common import ( - exec_cmd, - log, - delete, -) - - -class ExecutionEnvironment(object): - - def __init__(self, storage_dir, dha_file, root_dir): - self.storage_dir = storage_dir - self.dha = LibvirtAdapter(dha_file) - self.root_dir = root_dir - self.parser = etree.XMLParser(remove_blank_text=True) - self.fuel_node_id = self.dha.get_fuel_node_id() - - def delete_vm(self, node_id): - vm_name = self.dha.get_node_property(node_id, 'libvirtName') - r, c = exec_cmd('virsh dumpxml %s' % vm_name, False) - if c: - return - self.undefine_vm_delete_disk(r, vm_name) - - def undefine_vm_delete_disk(self, printout, vm_name): - disk_files = [] - xml_dump = etree.fromstring(printout, self.parser) - disks = xml_dump.xpath('/domain/devices/disk') - for disk in disks: - sources = disk.xpath('source') - for source in sources: - source_file = source.get('file') - if source_file: - disk_files.append(source_file) - log('Deleting VM %s with disks %s' % (vm_name, disk_files)) - exec_cmd('virsh destroy %s' % vm_name, False) - exec_cmd('virsh undefine --managed-save --remove-all-storage %s' % vm_name, False) - for file in disk_files: - delete(file) - - def overwrite_xml(self, vm_xml, vm_definition_overwrite): - if not vm_definition_overwrite: - return - for key, value in vm_definition_overwrite.iteritems(): - if key == 'attribute_equlas': - continue - if key == 'value': - vm_xml.text = str(value) - return - if key == 'attribute': - for attr_key, attr_value in value.iteritems(): - vm_xml.set(attr_key, str(attr_value)) - return - - if isinstance(value, dict): - only_when_attribute = value.get('attribute_equlas') - for xml_element in vm_xml.xpath(key): - if only_when_attribute: - for attr_key, attr_value in \ - only_when_attribute.iteritems(): - if attr_value != xml_element.get(attr_key): - continue - self.overwrite_xml(xml_element, value) - - def define_vm(self, vm_name, temp_vm_file, disk_path, - vm_definition_overwrite): - log('Creating VM %s with disks %s' % (vm_name, disk_path)) - with open(temp_vm_file) as f: - vm_xml = etree.parse(f) - names = vm_xml.xpath('/domain/name') - for name in names: - name.text = vm_name - uuids = vm_xml.xpath('/domain/uuid') - for uuid in uuids: - uuid.getparent().remove(uuid) - self.overwrite_xml(vm_xml.xpath('/domain')[0], - vm_definition_overwrite) - disks = vm_xml.xpath('/domain/devices/disk') - for disk in disks: - if (disk.get('type') == 'file' and - disk.get('device') == 'disk'): - sources = disk.xpath('source') - for source in sources: - disk.remove(source) - source = etree.Element('source') - source.set('file', disk_path) - disk.append(source) - with open(temp_vm_file, 'w') as f: - vm_xml.write(f, pretty_print=True, xml_declaration=True) - exec_cmd('virsh define %s' % temp_vm_file) diff --git a/deploy/environments/libvirt_environment.py b/deploy/environments/libvirt_environment.py deleted file mode 100644 index 07a47fd7e..000000000 --- a/deploy/environments/libvirt_environment.py +++ /dev/null @@ -1,107 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from lxml import etree -import glob -from execution_environment import ExecutionEnvironment -import tempfile - -from common import ( - exec_cmd, - log, - check_dir_exists, - check_file_exists, - delete, -) - - -class LibvirtEnvironment(ExecutionEnvironment): - - def __init__(self, storage_dir, dha_file, dea, root_dir): - super(LibvirtEnvironment, self).__init__( - storage_dir, dha_file, root_dir) - self.dea = dea - self.network_dir = '%s/%s' % (self.root_dir, - self.dha.get_virt_net_conf_dir()) - self.node_ids = self.dha.get_all_node_ids() - self.net_names = self.collect_net_names() - - def create_storage(self, node_id, disk_path, disk_sizes): - role = self.dea.get_node_main_role(node_id, self.fuel_node_id) - disk_size = disk_sizes[role] - exec_cmd('qemu-img create -f raw %s %s' % (disk_path, disk_size)) - - def create_vms(self): - temp_dir = tempfile.mkdtemp() - disk_sizes = self.dha.get_disks() - for node_id in self.node_ids: - vm_name = self.dha.get_node_property(node_id, 'libvirtName') - vm_template = '%s/%s' % (self.root_dir, - self.dha.get_node_property( - node_id, 'libvirtTemplate')) - check_file_exists(vm_template) - disk_path = '%s/%s.raw' % (self.storage_dir, vm_name) - self.create_storage(node_id, disk_path, disk_sizes) - temp_vm_file = '%s/%s' % (temp_dir, vm_name) - exec_cmd('cp %s %s' % (vm_template, temp_vm_file)) - vm_definition_overwrite = self.dha.get_vm_definition( - self.dea.get_node_main_role(node_id, self.fuel_node_id)) - self.define_vm(vm_name, temp_vm_file, disk_path, - vm_definition_overwrite) - delete(temp_dir) - - def start_vms(self): - for node_id in self.node_ids: - self.dha.node_power_on(node_id) - - def create_networks(self): - for net_file in glob.glob('%s/*' % self.network_dir): - exec_cmd('virsh net-define %s' % net_file) - for net in self.net_names: - log('Creating network %s' % net) - exec_cmd('virsh net-autostart %s' % net) - exec_cmd('virsh net-start %s' % net) - - def delete_networks(self): - for net in self.net_names: - log('Deleting network %s' % net) - exec_cmd('virsh net-destroy %s' % net, False) - exec_cmd('virsh net-undefine %s' % net, False) - - def get_net_name(self, net_file): - with open(net_file) as f: - net_xml = etree.parse(f) - name_list = net_xml.xpath('/network/name') - for name in name_list: - net_name = name.text - return net_name - - def collect_net_names(self): - net_list = [] - for net_file in glob.glob('%s/*' % self.network_dir): - name = self.get_net_name(net_file) - net_list.append(name) - return net_list - - def delete_vms(self): - for node_id in self.node_ids: - self.delete_vm(node_id) - - - def setup_environment(self): - check_dir_exists(self.network_dir) - self.cleanup_environment() - self.create_networks() - self.create_vms() - self.start_vms() - - def cleanup_environment(self): - self.delete_vms() - self.delete_networks() diff --git a/deploy/environments/virtual_fuel.py b/deploy/environments/virtual_fuel.py deleted file mode 100644 index 5ddd93b51..000000000 --- a/deploy/environments/virtual_fuel.py +++ /dev/null @@ -1,143 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -from lxml import etree -from execution_environment import ExecutionEnvironment -import tempfile -import os -import re -import time - -from common import ( - exec_cmd, - check_file_exists, - check_if_root, - delete, - log, -) - -VOL_XML_TEMPLATE = '''<volume type='file'> - <name>{name}</name> - <capacity unit='{unit}'>{size!s}</capacity> - <target> - <format type='{format_type}'/> - </target> -</volume>''' - -DEFAULT_POOL = 'jenkins' - -def get_size_and_unit(s): - p = re.compile('^(\d+)\s*(\D+)') - m = p.match(s) - if m == None: - return None, None - size = m.groups()[0] - unit = m.groups()[1] - return size, unit - -class VirtualFuel(ExecutionEnvironment): - - def __init__(self, storage_dir, pxe_bridge, dha_file, root_dir): - super(VirtualFuel, self).__init__(storage_dir, dha_file, root_dir) - self.pxe_bridge = pxe_bridge - self.temp_dir = tempfile.mkdtemp() - self.vm_name = self.dha.get_node_property(self.fuel_node_id, - 'libvirtName') - self.vm_template = '%s/%s' % (self.root_dir, - self.dha.get_node_property( - self.fuel_node_id, 'libvirtTemplate')) - check_file_exists(self.vm_template) - with open(self.vm_template) as f: - self.vm_xml = etree.parse(f) - - self.temp_vm_file = '%s/%s' % (self.temp_dir, self.vm_name) - self.update_vm_template_file() - - def __del__(self): - delete(self.temp_dir) - - def update_vm_template_file(self): - with open(self.temp_vm_file, "wc") as f: - self.vm_xml.write(f, pretty_print=True, xml_declaration=True) - - def del_vm_nics(self): - interfaces = self.vm_xml.xpath('/domain/devices/interface') - for interface in interfaces: - interface.getparent().remove(interface) - - def add_vm_nic(self, bridge): - interface = etree.Element('interface') - interface.set('type', 'bridge') - source = etree.SubElement(interface, 'source') - source.set('bridge', bridge) - model = etree.SubElement(interface, 'model') - model.set('type', 'virtio') - - devices = self.vm_xml.xpath('/domain/devices') - if devices: - device = devices[0] - device.append(interface) - else: - err('No devices!') - - def create_volume(self, pool, name, su, img_type='raw'): - log('Creating image using Libvirt volumes in pool %s, name: %s' % - (pool, name)) - size, unit = get_size_and_unit(su) - if size == None: - err('Could not determine size and unit of %s' % s) - - vol_xml = VOL_XML_TEMPLATE.format(name=name, unit=unit, size=size, - format_type=img_type) - fname = os.path.join(self.temp_dir, '%s_vol.xml' % name) - with file(fname, 'w') as f: - f.write(vol_xml) - - exec_cmd('virsh vol-create --pool %s %s' % (pool, fname)) - vol_path = exec_cmd('virsh vol-path --pool %s %s' % (pool, name)) - - delete(fname) - - return vol_path - - def create_image(self, disk_path, disk_size): - if os.environ.get('LIBVIRT_DEFAULT_URI') == None: - exec_cmd('qemu-img create -f raw %s %s' % (disk_path, disk_size)) - else: - pool = DEFAULT_POOL # FIXME - name = os.path.basename(disk_path) - disk_path = self.create_volume(pool, name, disk_size) - - return disk_path - - def create_vm(self): - stamp = time.strftime("%Y%m%d%H%M%S") - disk_path = '%s/%s-%s.raw' % (self.storage_dir, self.vm_name, stamp) - disk_sizes = self.dha.get_disks() - disk_size = disk_sizes['fuel'] - disk_path = self.create_image(disk_path, disk_size) - - self.del_vm_nics() - for bridge in self.pxe_bridge: - self.add_vm_nic(bridge) - self.update_vm_template_file() - - vm_definition_overwrite = self.dha.get_vm_definition('fuel') - - self.define_vm(self.vm_name, self.temp_vm_file, disk_path, - vm_definition_overwrite) - - def setup_environment(self): - check_if_root() - self.cleanup_environment() - self.create_vm() - - def cleanup_environment(self): - self.delete_vm(self.fuel_node_id) diff --git a/deploy/execution_environment.py b/deploy/execution_environment.py deleted file mode 100644 index b8e861c4a..000000000 --- a/deploy/execution_environment.py +++ /dev/null @@ -1,37 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import yaml -import io -import os - -from environments.libvirt_environment import LibvirtEnvironment -from environments.virtual_fuel import VirtualFuel - - -class ExecutionEnvironment(object): - - def __new__(cls, storage_dir, pxe_bridge, dha_path, dea): - - with io.open(dha_path) as yaml_file: - dha_struct = yaml.load(yaml_file) - - type = dha_struct['adapter'] - - root_dir = os.path.dirname(os.path.realpath(__file__)) - - if cls is ExecutionEnvironment: - if type == 'libvirt': - return LibvirtEnvironment(storage_dir, dha_path, dea, root_dir) - - if type in ['ipmi', 'hp', 'amt', 'zte']: - return VirtualFuel(storage_dir, pxe_bridge, dha_path, root_dir) - - return super(ExecutionEnvironment, cls).__new__(cls) diff --git a/deploy/fuel_patch/ks.cfg.patch b/deploy/fuel_patch/ks.cfg.patch deleted file mode 100644 index 8c9cebc0f..000000000 --- a/deploy/fuel_patch/ks.cfg.patch +++ /dev/null @@ -1,19 +0,0 @@ -*** ks.cfg.orig 2016-01-25 08:56:16.406241267 +0100 ---- ks.cfg 2016-01-25 14:31:11.417761494 +0100 -*************** -*** 98,104 **** - default_drive=`echo ${drives} ${removable_drives} | awk '{print $1}'` - - installdrive=${installdrive:-undefined} -! forceformat=${forceformat:-no} - for I in $(cat /proc/cmdline); do - case "$I" in - *=*) ---- 98,104 ---- - default_drive=`echo ${drives} ${removable_drives} | awk '{print $1}'` - - installdrive=${installdrive:-undefined} -! forceformat=${forceformat:-yes} - for I in $(cat /proc/cmdline); do - case "$I" in - *=*) diff --git a/deploy/install_fuel_master.py b/deploy/install_fuel_master.py deleted file mode 100644 index 2da69e350..000000000 --- a/deploy/install_fuel_master.py +++ /dev/null @@ -1,221 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - -import time -import os -import glob -from ssh_client import SSHClient -from dha_adapters.libvirt_adapter import LibvirtAdapter - -from common import ( - log, - err, - delete, -) - -TRANSPLANT_FUEL_SETTINGS = 'transplant_fuel_settings.py' -BOOTSTRAP_ADMIN = 'bootstrap_admin_node' -FUEL_CLIENT_CONFIG = '/etc/fuel/client/config.yaml' -PLUGINS_DIR = '~/plugins' -LOCAL_PLUGIN_FOLDER = '/opt/opnfv' -IGNORABLE_FUEL_ERRORS = ['does not update installed package', - 'Couldn\'t resolve host'] - - -class InstallFuelMaster(object): - - def __init__(self, dea_file, dha_file, fuel_ip, fuel_username, - fuel_password, fuel_node_id, iso_file, work_dir, - fuel_plugins_dir, no_plugins): - self.dea_file = dea_file - self.dha = LibvirtAdapter(dha_file) - self.fuel_ip = fuel_ip - self.fuel_username = fuel_username - self.fuel_password = fuel_password - self.fuel_node_id = fuel_node_id - self.iso_file = iso_file - self.iso_dir = os.path.dirname(self.iso_file) - self.work_dir = work_dir - self.fuel_plugins_dir = fuel_plugins_dir - self.no_plugins = no_plugins - self.file_dir = os.path.dirname(os.path.realpath(__file__)) - self.ssh = SSHClient(self.fuel_ip, self.fuel_username, - self.fuel_password) - - def install(self): - log('Start Fuel Installation') - - self.dha.node_power_off(self.fuel_node_id) - - if os.environ.get('LIBVIRT_DEFAULT_URI'): - log('Upload ISO to pool') - self.iso_file = self.dha.upload_iso(self.iso_file) - else: - log('Zero the MBR') - self.dha.node_zero_mbr(self.fuel_node_id) - - self.dha.node_set_boot_order(self.fuel_node_id, ['disk', 'iso']) - - try: - self.proceed_with_installation() - except Exception as e: - self.post_install_cleanup() - err(e) - - def proceed_with_installation(self): - log('Eject ISO') - self.dha.node_eject_iso(self.fuel_node_id) - - log('Insert ISO %s' % self.iso_file) - self.dha.node_insert_iso(self.fuel_node_id, self.iso_file) - - self.dha.node_power_on(self.fuel_node_id) - - log('Waiting for Fuel master to accept SSH') - self.wait_for_node_up() - - log('Wait until Fuel menu is up') - fuel_menu_pid = self.wait_until_fuel_menu_up() - - log('Inject our own astute.yaml and fuel_bootstrap_cli.yaml settings') - self.inject_own_astute_and_bootstrap_yaml() - - log('Let the Fuel deployment continue') - log('Found FUEL menu as PID %s, now killing it' % fuel_menu_pid) - self.ssh_exec_cmd('kill %s' % fuel_menu_pid, False) - - log('Wait until installation is complete') - self.wait_until_installation_completed() - - log('Waiting for one minute for Fuel to stabilize') - time.sleep(60) - - self.delete_deprecated_fuel_client_config() - - if not self.no_plugins: - - self.collect_plugin_files() - - self.install_plugins() - - self.post_install_cleanup() - - log('Fuel Master installed successfully !') - - def collect_plugin_files(self): - with self.ssh as s: - s.exec_cmd('mkdir %s' % PLUGINS_DIR) - if self.fuel_plugins_dir: - for f in glob.glob('%s/*.rpm' % self.fuel_plugins_dir): - s.scp_put(f, PLUGINS_DIR) - - def install_plugins(self): - log('Installing Fuel Plugins') - plugin_files = [] - with self.ssh as s: - for plugin_location in [PLUGINS_DIR, LOCAL_PLUGIN_FOLDER]: - s.exec_cmd('mkdir -p %s' % plugin_location) - r = s.exec_cmd('find %s -type f -name \'*.rpm\'' - % plugin_location) - plugin_files.extend(r.splitlines()) - for f in plugin_files: - log('Found plugin %s, installing ...' % f) - r, e = s.exec_cmd('fuel plugins --install %s' % f, False) - printout = r + e if e else r - if e and all([err not in printout - for err in IGNORABLE_FUEL_ERRORS]): - raise Exception('Installation of Fuel Plugin %s ' - 'failed: %s' % (f, e)) - - def wait_for_node_up(self): - WAIT_LOOP = 240 - SLEEP_TIME = 10 - success = False - for i in range(WAIT_LOOP): - try: - self.ssh.open() - success = True - break - except Exception: - log('Trying to SSH into Fuel VM %s ... sleeping %s seconds' - % (self.fuel_ip, SLEEP_TIME)) - time.sleep(SLEEP_TIME) - finally: - self.ssh.close() - - if not success: - raise Exception('Could not SSH into Fuel VM %s' % self.fuel_ip) - - def wait_until_fuel_menu_up(self): - WAIT_LOOP = 60 - SLEEP_TIME = 10 - CMD = 'pgrep -f fuelmenu' - fuel_menu_pid = None - with self.ssh: - for i in range(WAIT_LOOP): - ret = self.ssh.exec_cmd(CMD) - fuel_menu_pid = ret.strip() - if not fuel_menu_pid: - time.sleep(SLEEP_TIME) - else: - break - if not fuel_menu_pid: - raise Exception('Could not find the Fuel Menu Process ID') - return fuel_menu_pid - - def ssh_exec_cmd(self, cmd, check=True): - with self.ssh: - ret = self.ssh.exec_cmd(cmd, check=check) - return ret - - def inject_own_astute_and_bootstrap_yaml(self): - with self.ssh as s: - s.exec_cmd('rm -rf %s' % self.work_dir, False) - s.exec_cmd('mkdir %s' % self.work_dir) - s.scp_put(self.dea_file, self.work_dir) - s.scp_put('%s/common.py' % self.file_dir, self.work_dir) - s.scp_put('%s/dea.py' % self.file_dir, self.work_dir) - s.scp_put('%s/transplant_fuel_settings.py' - % self.file_dir, self.work_dir) - log('Modifying Fuel astute') - s.run('python %s/%s %s/%s' - % (self.work_dir, TRANSPLANT_FUEL_SETTINGS, - self.work_dir, os.path.basename(self.dea_file))) - - def wait_until_installation_completed(self): - WAIT_LOOP = 360 - SLEEP_TIME = 10 - CMD = 'pgrep -f %s' % BOOTSTRAP_ADMIN - - install_completed = False - with self.ssh: - for i in range(WAIT_LOOP): - ret = self.ssh.exec_cmd(CMD) - if not ret: - install_completed = True - break - else: - time.sleep(SLEEP_TIME) - - if not install_completed: - raise Exception('Fuel installation did not complete') - - def post_install_cleanup(self): - log('Eject ISO file %s' % self.iso_file) - self.dha.node_eject_iso(self.fuel_node_id) - delete(self.iso_dir) - - def delete_deprecated_fuel_client_config(self): - with self.ssh as s: - response, error = s.exec_cmd('fuel -v', False) - if (error and - 'DEPRECATION WARNING' in error and FUEL_CLIENT_CONFIG in error): - log('Delete deprecated fuel client config %s' % FUEL_CLIENT_CONFIG) - with self.ssh as s: - s.exec_cmd('rm %s' % FUEL_CLIENT_CONFIG, False) diff --git a/deploy/reap.py b/deploy/reap.py deleted file mode 100644 index be729181f..000000000 --- a/deploy/reap.py +++ /dev/null @@ -1,414 +0,0 @@ -#!/usr/bin/python -############################################################################### -# Copyright (c) 2015, 2016 Ericsson AB and others. -# szilard.cserey@ericsson.com -# peter.barabas@ericsson.com -# 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 -############################################################################### - - -import time -import os -import yaml -import glob -import shutil -import tempfile -import re -import netaddr -import templater - -from common import ( - N, - E, - R, - ArgParser, - exec_cmd, - parse, - err, - log, - delete, - commafy, -) - -DEA_1 = ''' -title: Deployment Environment Adapter (DEA) -# DEA API version supported -version: 1.1 -created: {date} -comment: {comment} -''' - -DHA_1 = ''' -title: Deployment Hardware Adapter (DHA) -# DHA API version supported -version: 1.1 -created: {date} -comment: {comment} - -# Adapter to use for this definition -# adapter: [ipmi|libvirt] -adapter: - -# Node list. -# Mandatory properties are id and role. -# All other properties are adapter specific. -# For Non-Fuel nodes controlled by: -# - ipmi adapter you need to provide: -# pxeMac -# ipmiIp -# ipmiUser -# ipmiPass -# and you *MAY* provide (optional, not added by reap.py): -# ipmiPort -# - libvirt adapter you need to provide: -# libvirtName: <whatever> -# libvirtTemplate: [libvirt/vms/controller.xml | libvirt/vms/compute.xml] -# -# For the Fuel Node you need to provide: -# libvirtName: <whatever> -# libvirtTemplate: libvirt/vms/fuel.xml -# isFuel: yes -# username: root -# password: r00tme -''' - -DHA_2 = ''' -# Adding the Fuel node as node id {node_id} -# which may not be correct - please adjust as needed. -''' - -DISKS = {'fuel': '100G', - 'controller': '100G', - 'compute': '100G'} - - -class Reap(object): - - def __init__(self, dea_file, dha_file, comment, base_dea, template): - self.dea_file = dea_file - self.dha_file = dha_file - self.comment = comment - self.base_dea = base_dea - self.template = template - self.temp_dir = None - self.env = None - self.env_id = None - self.last_node = None - - def get_env(self): - env_list = parse(exec_cmd('fuel env')) - if len(env_list) == 0: - err('No environment deployed') - elif len(env_list) > 1: - err('More than 1 environment deployed') - self.env = env_list[0] - self.env_id = self.env[E['id']] - - def download_config(self, config_type): - log('Download %s config for environment %s' - % (config_type, self.env_id)) - exec_cmd('fuel %s --env %s --download --dir %s' - % (config_type, self.env_id, self.temp_dir)) - - def download_node_config(self, nodeid): - log('Download node %s config for environment %s to %s' - % (nodeid, self.env_id,self.temp_dir)) - exec_cmd('fuel deployment --node-id %s --env %s --default --dir %s' - % (nodeid, self.env_id, self.temp_dir)) - - def write(self, file, text, newline=True): - mode = 'a' if os.path.isfile(file) else 'w' - with open(file, mode) as f: - f.write('%s%s' % (text, ('\n' if newline else ''))) - - def write_yaml(self, file, data, newline=True): - self.write(file, yaml.dump(data, default_flow_style=False).strip(), - newline) - - def get_node_by_id(self, node_list, node_id): - for node in node_list: - if node[N['id']] == node_id: - return node - - def reap_interface(self, node_id, interfaces): - interface, mac = self.get_interface(node_id) - if_name = None - if interfaces: - if_name = self.check_dict_exists(interfaces, interface) - if not if_name: - if_name = 'interfaces_%s' % str(len(interfaces) + 1) - interfaces[if_name] = interface - return if_name, mac - - def reap_transformation(self, node_id, roles, transformations): - main_role = 'controller' if 'controller' in roles else 'compute' - node_file = glob.glob('%s/deployment_%s/%s.yaml' - % (self.temp_dir, self.env_id, node_id)) - tr_name = None - with open(node_file[0]) as f: - node_config = yaml.load(f) - transformation = {'transformations': - node_config['network_scheme']['transformations']} - if transformations: - tr_name = self.check_dict_exists(transformations, transformation) - if not tr_name: - tr_name = 'transformations_%s' % str(len(transformations) + 1) - transformations[tr_name] = transformation - return tr_name - - def check_dict_exists(self, main_dict, dict): - for key, val in main_dict.iteritems(): - if cmp(dict, val) == 0: - return key - - def reap_nodes_interfaces_transformations(self): - node_list = parse(exec_cmd('fuel node')) - real_node_ids = [node[N['id']] for node in node_list] - real_node_ids = map(int, real_node_ids) - real_node_ids.sort() - min_node = min(real_node_ids) - interfaces = {} - transformations = {} - dea_nodes = [] - dha_nodes = [] - - for real_node_id in real_node_ids: - node_id = real_node_id - min_node + 1 - self.last_node = node_id - node = self.get_node_by_id(node_list, str(real_node_id)) - roles = commafy(node[N['roles']]) - if not roles: - err('Fuel Node %s has no role' % real_node_id) - dea_node = {'id': node_id, - 'role': roles} - dha_node = {'id': node_id} - if_name, mac = self.reap_interface(real_node_id, interfaces) - log('reap transformation for node %s' % real_node_id) - tr_name = self.reap_transformation(real_node_id, roles, - transformations) - dea_node.update( - {'interfaces': if_name, - 'transformations': tr_name}) - - dha_node.update( - {'pxeMac': mac if mac else None, - 'ipmiIp': None, - 'ipmiUser': None, - 'ipmiPass': None, - 'libvirtName': None, - 'libvirtTemplate': None}) - - dea_nodes.append(dea_node) - dha_nodes.append(dha_node) - - self.write_yaml(self.dha_file, {'nodes': dha_nodes}, False) - self.write_yaml(self.dea_file, {'nodes': dea_nodes}) - self.write_yaml(self.dea_file, interfaces) - self.write_yaml(self.dea_file, transformations) - self.reap_fuel_node_info() - self.write_yaml(self.dha_file, {'disks': DISKS}) - - def reap_fuel_node_info(self): - dha_nodes = [] - dha_node = { - 'id': self.last_node + 1, - 'libvirtName': None, - 'libvirtTemplate': None, - 'isFuel': True, - 'username': 'root', - 'password': 'r00tme'} - - dha_nodes.append(dha_node) - - self.write(self.dha_file, DHA_2.format(node_id=dha_node['id']), False) - self.write_yaml(self.dha_file, dha_nodes) - - def reap_environment_info(self): - network_file = ('%s/network_%s.yaml' - % (self.temp_dir, self.env_id)) - network = self.read_yaml(network_file) - - env = {'environment': - {'name': self.env[E['name']], - 'net_segment_type': - network['networking_parameters']['segmentation_type']}} - self.write_yaml(self.dea_file, env) - wanted_release = None - rel_list = parse(exec_cmd('fuel release')) - for rel in rel_list: - if rel[R['id']] == self.env[E['release_id']]: - wanted_release = rel[R['name']] - self.write_yaml(self.dea_file, {'wanted_release': wanted_release}) - - def reap_fuel_settings(self): - data = self.read_yaml('/etc/fuel/astute.yaml') - fuel = {} - del data['ADMIN_NETWORK']['mac'] - del data['ADMIN_NETWORK']['interface'] - for key in ['ADMIN_NETWORK', 'HOSTNAME', 'DNS_DOMAIN', 'DNS_SEARCH', - 'DNS_UPSTREAM', 'NTP1', 'NTP2', 'NTP3', 'FUEL_ACCESS']: - fuel[key] = data[key] - for key in fuel['ADMIN_NETWORK'].keys(): - if key not in ['ipaddress', 'netmask', - 'dhcp_pool_start', 'dhcp_pool_end', 'ssh_network']: - del fuel['ADMIN_NETWORK'][key] - - ## FIXME(armband): Factor in support for adding public/other interfaces. - ## TODO: Following block expects interface name(s) to be lowercase only - interfaces_list = exec_cmd('ip -o -4 a | grep -e "e[nt][hopsx].*"') - for interface in re.split('\n', interfaces_list): - # Sample output line from above cmd: - # 3: eth1 inet 10.0.2.10/24 scope global eth1 valid_lft forever ... - ifcfg = re.split(r'\s+', interface) - ifcfg_name = ifcfg[1] - ifcfg_ipaddr = ifcfg[3] - - # Filter out admin interface (device name is not known, match IP) - current_network = netaddr.IPNetwork(ifcfg_ipaddr) - if str(current_network.ip) == fuel['ADMIN_NETWORK']['ipaddress']: - continue - - # Read ifcfg-* network interface config file, write IFCFG_<IFNAME> - ifcfg_sec = 'IFCFG_%s' % ifcfg_name.upper() - fuel[ifcfg_sec] = {} - ifcfg_data = {} - ifcfg_f = ('/etc/sysconfig/network-scripts/ifcfg-%s' % ifcfg_name) - with open(ifcfg_f) as f: - for line in f: - if line.startswith('#'): - continue - (key, val) = line.split('=') - ifcfg_data[key.lower()] = val.rstrip() - - # Keep only needed info (e.g. filter-out type=Ethernet). - fuel[ifcfg_sec]['ipaddress'] = ifcfg_data['ipaddr'] - fuel[ifcfg_sec]['device'] = ifcfg_data['device'] - fuel[ifcfg_sec]['netmask'] = str(current_network.netmask) - fuel[ifcfg_sec]['gateway'] = ifcfg_data['gateway'] - - self.write_yaml(self.dea_file, {'fuel': fuel}) - - def reap_network_settings(self): - network_file = ('%s/network_%s.yaml' - % (self.temp_dir, self.env_id)) - data = self.read_yaml(network_file) - network = {} - network['networking_parameters'] = data['networking_parameters'] - network['networks'] = data['networks'] - for net in network['networks']: - del net['id'] - del net['group_id'] - self.write_yaml(self.dea_file, {'network': network}) - - def reap_settings(self): - settings_file = '%s/settings_%s.yaml' % (self.temp_dir, self.env_id) - settings = self.read_yaml(settings_file) - self.write_yaml(self.dea_file, {'settings': settings}) - - def get_interface(self, real_node_id): - exec_cmd('fuel node --node-id %s --network --download --dir %s' - % (real_node_id, self.temp_dir)) - interface_file = ('%s/node_%s/interfaces.yaml' - % (self.temp_dir, real_node_id)) - interfaces = self.read_yaml(interface_file) - interface_config = {} - pxe_mac = None - for interface in interfaces: - networks = [] - for network in interface['assigned_networks']: - networks.append(network['name']) - if network['name'] == 'fuelweb_admin': - pxe_mac = interface['mac'] - if networks: - interface_config[interface['name']] = networks - return interface_config, pxe_mac - - def read_yaml(self, yaml_file): - with open(yaml_file) as f: - data = yaml.load(f) - return data - - def intro(self): - delete(self.dea_file) - delete(self.dha_file) - - self.temp_dir = tempfile.mkdtemp() - date = time.strftime('%c') - self.write(self.dea_file, - DEA_1.format(date=date, comment=self.comment), False) - self.write(self.dha_file, - DHA_1.format(date=date, comment=self.comment)) - self.get_env() - - # Need to download deployment with explicit node ids - node_list = parse(exec_cmd('fuel node')) - real_node_ids = [node[N['id']] for node in node_list] - real_node_ids.sort() - self.download_node_config(','.join(real_node_ids)) - - self.download_config('settings') - self.download_config('network') - - def create_base_dea(self): - templater = templater.Templater(self.dea_file, - self.template, - self.base_dea) - templater.run() - - def finale(self): - log('DEA file is available at %s' % self.dea_file) - log('DHA file is available at %s (this is just a template)' - % self.dha_file) - if self.base_dea: - log('DEA base file is available at %s' % self.base_dea) - shutil.rmtree(self.temp_dir) - - def reap(self): - self.intro() - self.reap_environment_info() - self.reap_nodes_interfaces_transformations() - self.reap_fuel_settings() - self.reap_network_settings() - self.reap_settings() - if self.base_dea: - self.create_base_dea() - self.finale() - - -def parse_arguments(): - parser = ArgParser(prog='python %s' % __file__) - parser.add_argument('dea_file', nargs='?', action='store', - default='dea.yaml', - help='Deployment Environment Adapter: dea.yaml') - parser.add_argument('dha_file', nargs='?', action='store', - default='dha.yaml', - help='Deployment Hardware Adapter: dha.yaml') - parser.add_argument('comment', nargs='?', action='store', help='Comment') - parser.add_argument('-base_dea', - dest='base_dea', - help='Create specified base DEA file from "dea_file"') - parser.add_argument('-template', - dest='template', - nargs='?', - default='base_dea_template.yaml', - help='Base DEA is generated from this template') - args = parser.parse_args() - return (args.dea_file, - args.dha_file, - args.comment, - args.base_dea, - args.template) - - -def main(): - dea_file, dha_file, comment, base_dea, template = parse_arguments() - - r = Reap(dea_file, dha_file, comment, base_dea, template) - r.reap() - - -if __name__ == '__main__': - main() diff --git a/deploy/scenario/README b/deploy/scenario/README deleted file mode 100644 index e32262d0d..000000000 --- a/deploy/scenario/README +++ /dev/null @@ -1,159 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -Abstract: ---------- -The directory contains configuration files for different OPNFV deployment -feature scenarios used by Fuel@OPNFV, eg.: -- High availability configuration -- Type of SDN controller to be deployed -- OPNFV collaboration project features to be deployed. -- Provisioning of any other sevices - -Creating a new plugin ---------------------- -Creating a new plugin involves creating a plugin config yaml file in -/deploy/config/plugins. The filename should comply to following structure: -fuel-<plugin_name>.yaml. -The plugin configuration must include plugin configuration metadata as below: - -plugin-config-metadata: - title: - version: - created: - comment: - -Moreover, naturaly the plugin configuration must include the plugin yaml -fragment, eg: - -opendaylight: - metadata: - enabled: true - label: OpenDaylight Lithium plugin -....... - -Creating a new deployment scenario ----------------------------------- -Creating a new deployment scenario involve creating a deployment scenario -yaml file under deploy/scenario/. The filename should comply to following -format: <ha | no-ha>_<SDN Controller>_<feature-1>_..._<feature-n>.yaml - -The deployment configuration file must contain configuration metadata as stated -below: - -deployment-scenario-metadata: - title: - version: - created: - comment: - -To include fuel plugins, use the stack-extentions key: -stack-extensions, eg: - -stack-extensions: - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 0.0.1 - module-config-override: - # Module config overrides - rest_api_port: - value: '8282' - enable_gbp: - value: false - enable_l3_odl: - value: true - enable_sfc: - value: false - -"module-config-name" and "module-config-version" must correspond to how -the plugin configuration yaml was named. -Everything under the "module-config-override" overrides the corresponding -keys in the plugin config yaml file, this can for instance be used to configure -the plugin. - -Everything under the "dea-override-config" overrides corresponding keys in the dea_base.yaml and dea_pod_override.yaml. -You must at least provide {environment:{mode:'value},{net_segment_type:'value'} -and {nodes:....} in order to configure the HA mode, network segmentation types -and role to node assignments. -Other ovverides may also be used to enable stack features such as ceph, heat, -etc. -Example: - -dea-override-config: - environment: - mode: ha - net_segment_type: tun - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller,opendaylight - - id: 2 - interfaces: interfaces_1 - role: mongo,controller - - id: 3 - interfaces: interfaces_1 - role: mongo,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - - settings: - editable: - additional_components: - ceilometer: - description: If selected, Ceilometer component will be installed - label: Install Ceilometer - type: checkbox - value: true - weight: 40 - heat: - description: '' - label: '' - type: hidden - value: true - weight: 30 - metadata: - label: Additional Components - weight: 20 - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -Optionally you may override the pod dha defenition under the -"dha-override-config" key. - -Short names ------------ -scenario.yaml provides a mapping between a deployment scenario short-name -and one or several deployment scenario configuration yaml files. - -Other ------ -These configuration files are used by deploy.sh provided by Fuel@OPNFV, e.g. -deploy.sh will clone this repo when deploying. diff --git a/deploy/scenario/ha_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_heat_ceilometer_scenario.yaml deleted file mode 100644 index 6b032bfdd..000000000 --- a/deploy/scenario/ha_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,89 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: OpenStack-only, HA deployment - version: 0.0.3 - created: Jan 26 2016 - comment: Rebased to Fuel8 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: congress - module-config-name: fuel-congress - module-config-version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller, congress - - id: 2 - interfaces: interfaces_1 - role: mongo, controller - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario.yaml deleted file mode 100644 index 8ced66dfc..000000000 --- a/deploy/scenario/ha_nfv-kvm_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,173 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV KVM HA deployment - version: 0.0.6 - created: 27.07.2016 - comment: Ceph cannot be assigned to compute, ceph is collocated with one of the controllers - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-kvm - module-config-name: fuel-nfvkvm - module-config-version: 1.0.0 - module-config-override: - # Module config overrides - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller,mongo - - id: 2 - interfaces: interfaces_1 - role: controller - - id: 3 - interfaces: interfaces_1 - role: controller - - id: 4 - interfaces: interfaces_1 - role: compute,ceph-osd - - id: 5 - interfaces: interfaces_1 - role: compute,ceph-osd - - settings: - editable: - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works best if Ceph is enabled for volumes and images, too. Enables live migration of all types of Ceph backed VMs (without this option, live migration will only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: false - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could be selected. - type: checkbox - value: false - weight: 30 - images_vcenter: - description: Configures Glance to use the vCenter/ESXi backend to store images. If enabled, this option will prevent Swift from installing. - label: VMware vCenter/ESXi datastore for images (Glance) - restrictions: - - action: hide - condition: settings:common.use_vcenter.value != true - - condition: settings:storage.images_ceph.value == true - message: Only one Glance backend could be selected. - type: checkbox - value: false - weight: 35 - iser: - description: 'High performance block storage: Cinder volumes over iSER protocol (iSCSI over RDMA). This feature requires SR-IOV capabilities in the NIC, and will use a dedicated virtual function for the storage network.' - label: iSER protocol for volumes (Cinder) - restrictions: - - settings:storage.volumes_lvm.value != true or settings:common.libvirt_type.value != 'kvm' - - action: hide - condition: not ('experimental' in version:feature_groups) - type: checkbox - value: false - weight: 11 - metadata: - group: storage - label: Storage Backends - weight: 60 - objects_ceph: - description: Configures RadosGW front end for Ceph RBD. This exposes S3 and Swift API Interfaces. If enabled, this option will prevent Swift from installing. - label: Ceph RadosGW for objects (Swift API) - type: checkbox - value: false - weight: 80 - osd_pool_size: - description: Configures the default number of object replicas in Ceph. This number must be equal to or lower than the number of deployed 'Storage - Ceph OSD' nodes. - label: Ceph object replication factor - regex: - error: Invalid number - source: ^[1-9]\d*$ - type: text - value: '2' - weight: 85 - volumes_block_device: - description: High performance block device storage. It is recommended to have at least one Storage - Cinder Block Device - label: Cinder Block device driver - restrictions: - - settings:storage.volumes_ceph.value == true - type: checkbox - value: false - weight: 15 - volumes_ceph: - description: Configures Cinder to store volumes in Ceph RBD images. - label: Ceph RBD for volumes (Cinder) - restrictions: - - settings:storage.volumes_lvm.value == true or settings:storage.volumes_block_device.value == true - type: checkbox - value: true - weight: 20 - volumes_lvm: - description: It is recommended to have at least one Storage - Cinder LVM node. - label: Cinder LVM over iSCSI for volumes - restrictions: - - settings:storage.volumes_ceph.value == true - type: checkbox - value: false - weight: 10 - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml deleted file mode 100644 index 645f48d21..000000000 --- a/deploy/scenario/ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,155 +0,0 @@ -############################################################################## -# Copyright (c) 2017 Intel Corp. and others. -# navyax.bathula@intel.com,mpolenchuk@mirantis.com -# 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 -############################################################################## - -############################################################################### -# Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV KVM OVS-DPDK and Barometer HA deployment - version: 0.0.1 - created: Feb 6 2017 - comment: NFV KVM OVS-DPDK and Barometer - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-kvm - module-config-name: fuel-nfvkvm - module-config-version: 1.0.0 - module-config-override: - # Module config overrides - - module: fuel-plugin-collectd-ceilometer - module-config-name: fuel-barometer - module-config-version: 1.0.0 - module-config-override: - # Module config overrides - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - fuel: - FEATURE_GROUPS: - - experimental - environment: - net_segment_type: vlan - nodes: - - id: 1 - interfaces: interfaces_vlan - role: controller - - id: 2 - interfaces: interfaces_vlan - role: mongo,controller - - id: 3 - interfaces: interfaces_vlan - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 5 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - attributes_1: - hugepages: - dpdk: - value: 1024 - nova: - value: - '2048': 1024 - - network: - networking_parameters: - segmentation_type: vlan - networks: - - cidr: null - gateway: null - ip_ranges: [] - meta: - configurable: false - map_priority: 2 - name: private - neutron_vlan_range: true - notation: null - render_addr_mask: null - render_type: null - seg_type: vlan - use_gateway: false - vlan_start: null - name: private - vlan_start: null - - settings: - editable: - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml deleted file mode 100644 index 784883513..000000000 --- a/deploy/scenario/ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,150 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Intel Corp. and others. -# navyax.bathula@intel.com,mpolenchuk@mirantis.com -# 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 -############################################################################## - -############################################################################### -# Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV KVM and OVS-DPDK HA deployment - version: 0.0.1 - created: Dec 20 2016 - comment: NFV KVM and OVS-DPDK - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-kvm - module-config-name: fuel-nfvkvm - module-config-version: 1.0.0 - module-config-override: - # Module config overrides - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - fuel: - FEATURE_GROUPS: - - experimental - environment: - net_segment_type: vlan - nodes: - - id: 1 - interfaces: interfaces_vlan - role: controller - - id: 2 - interfaces: interfaces_vlan - role: mongo,controller - - id: 3 - interfaces: interfaces_vlan - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 5 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - attributes_1: - hugepages: - dpdk: - value: 1024 - nova: - value: - '2048': 1024 - - network: - networking_parameters: - segmentation_type: vlan - networks: - - cidr: null - gateway: null - ip_ranges: [] - meta: - configurable: false - map_priority: 2 - name: private - neutron_vlan_range: true - notation: null - render_addr_mask: null - render_type: null - seg_type: vlan - use_gateway: false - vlan_start: null - name: private - vlan_start: null - - settings: - editable: - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario.yaml deleted file mode 100644 index 017919d96..000000000 --- a/deploy/scenario/ha_nfv-ovs_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,135 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV OVS HA deployment - version: 1.0.0 - created: Jul 12 2016 - comment: Rebased to Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - # - # Disable this plugin since Fuel already has newer - # version of openvswitch out of the box - # - # - module: fuel-plugin-ovs - # module-config-name: fuel-nshovs - # module-config-version: 1.0.0 - # module-config-override: - # metadata: - # versions: - # - install_dpdk: - # value: true - # metadata: - # plugin_version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - fuel: - FEATURE_GROUPS: - - experimental - environment: - net_segment_type: vlan - nodes: - - id: 1 - interfaces: interfaces_vlan - role: controller - - id: 2 - interfaces: interfaces_vlan - role: mongo,controller - - id: 3 - interfaces: interfaces_vlan - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 5 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - attributes_1: - hugepages: - dpdk: - value: 1024 - nova: - value: - '2048': 1024 - - network: - networking_parameters: - segmentation_type: vlan - networks: - - cidr: null - gateway: null - ip_ranges: [] - meta: - configurable: false - map_priority: 2 - name: private - neutron_vlan_range: true - notation: null - render_addr_mask: null - render_type: null - seg_type: vlan - use_gateway: false - vlan_start: null - name: private - vlan_start: null - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_odl-bgpvpn_scenario.yaml b/deploy/scenario/ha_odl-bgpvpn_scenario.yaml deleted file mode 100644 index fd30cf2ec..000000000 --- a/deploy/scenario/ha_odl-bgpvpn_scenario.yaml +++ /dev/null @@ -1,109 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL HA BGPVPN deployment - version: 1.0.0 - created: 29.06.2016 - comment: Fuel ODL HA with BGPVPN, Ceph, Ceilometer and Heat Rebased for Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - enable_l3_odl: - value: true - deb_version: - value: '5.2.0-1' - enable_bgpvpn: - value: true - metadata: - plugin_version: 1.0.0 - - - module: bgpvpn - module-config-name: fuel-bgpvpn - module-config-version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller,opendaylight - - id: 2 - interfaces: interfaces_1 - role: mongo,controller - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true - - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario.yaml deleted file mode 100644 index 356abb07e..000000000 --- a/deploy/scenario/ha_odl-l2_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,104 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL-L2 HA deployment - version: 0.0.5 - created: Dec 07 2016 - comment: Rebased to Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: -# Note that the module substitionion does not support arrays -# This is a quick fix -# - module: opendaylight -# module-config-name: fuel-odl -# module-config-version: 0.0.2 -# module-config-override: - # Module config overrides -# rest_api_port: -# value: '8282' -# enable_gbp: -# value: false -# enable_l3_odl: -# value: false -# enable_sfc: -# value: false - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller,opendaylight - - id: 2 - interfaces: interfaces_1 - role: mongo,controller - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_odl-l2_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_odl-l2_sfc_heat_ceilometer_scenario.yaml deleted file mode 100644 index e675f2df2..000000000 --- a/deploy/scenario/ha_odl-l2_sfc_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,124 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL-L2 SFC HA deployment - version: 0.0.3 - created: Feb 10 2016 - comment: Rebased to Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-ovs - module-config-name: fuel-nshovs - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - install_nsh: - value: true - metadata: - plugin_version: 1.0.0 - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - enable_sfc: - value: true - deb_version: - value: '5.2.0-1' - metadata: - plugin_version: 1.0.0 - - module: tacker - module-config-name: fuel-tacker - module-config-version: 1.0.0 -# Note that the module substitionion does not support arrays -# This is a quick fix -# - module: opendaylight -# module-config-name: fuel-odl -# module-config-version: 0.0.2 -# module-config-override: - # Module config overrides -# rest_api_port: -# value: '8282' -# enable_gbp: -# value: false -# enable_l3_odl: -# value: false -# enable_sfc: -# value: false - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller,opendaylight - - id: 2 - interfaces: interfaces_1 - role: mongo,controller,tacker - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario.yaml deleted file mode 100644 index 43eb9029b..000000000 --- a/deploy/scenario/ha_odl-l3_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,102 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL-L3 HA deployment - version: 0.0.6 - created: Dec 07 2016 - comment: Rebased to Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -# Note that the module substitionion does not support arrays -# This is a quick fix -stack-extensions: - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - enable_l3_odl: - value: true - metadata: - plugin_version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller,opendaylight - - id: 2 - interfaces: interfaces_1 - role: mongo,controller - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true - -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_onos_nofeature_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_onos_nofeature_heat_ceilometer_scenario.yaml deleted file mode 100644 index 7fd3fc640..000000000 --- a/deploy/scenario/ha_onos_nofeature_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,115 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ONOS HA deployment - version: 0.0.6 - created: Jun 08 2016 - comment: Rebased to Fuel9 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: onos - module-config-name: fuel-onos - module-config-version: 0.0.3 - module-config-override: - metadata: - class: plugin - default: false - enabled: true - label: onos plugin - toggleable: true - versions: - - enable_sfc: - label: SFC features - type: checkbox - value: false - weight: 13 - metadata: - hot_pluggable: false - plugin_version: 0.10.2 - restrictions: - - cluster:net_provider != 'neutron': Neutron only - - settings:public_network_assignment.assign_to_all_nodes.value == false: Assign - public network to all nodes - weight: 70 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - net_segment_type: tun - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller,onos - - id: 2 - interfaces: interfaces_1 - role: mongo,controller - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_onos_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_onos_sfc_heat_ceilometer_scenario.yaml deleted file mode 100644 index 32fbfcf6c..000000000 --- a/deploy/scenario/ha_onos_sfc_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,95 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ONOS HA deployment - version: 0.0.6 - created: Jun 08 2016 - comment: Rebased to Fuel9 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: onos - module-config-name: fuel-onos - module-config-version: 0.0.3 - module-config-override: - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - net_segment_type: tun - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller,onos - - id: 2 - interfaces: interfaces_1 - role: mongo,controller - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true -dha-override-config: - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/ha_vlan_heat_ceilometer_scenario.yaml b/deploy/scenario/ha_vlan_heat_ceilometer_scenario.yaml deleted file mode 100644 index d1d5191f0..000000000 --- a/deploy/scenario/ha_vlan_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,129 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: OpenStack-only, HA deployment with VLAN segmentation - version: 0.0.2 - created: Jan 19 2016 - comment: Rebased to Fuel8 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - mode: ha - net_segment_type: vlan - name: opnfv-vlan-noha - nodes: - - id: 1 - interfaces: interfaces_1 - role: controller - - id: 2 - interfaces: interfaces_1 - role: mongo,controller - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,controller - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 5 - interfaces: interfaces_1 - role: ceph-osd,compute - - settings: - editable: - additional_components: - ceilometer: - description: If selected, Ceilometer component will be installed - label: Install Ceilometer - type: checkbox - value: true - weight: 40 - heat: - description: '' - label: '' - type: hidden - value: true - weight: 30 - metadata: - label: Additional Components - weight: 20 - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -dha-override-config: -# These overrides only take effect for virtual deployment scenarios - nodes: - - id: 1 - libvirtName: controller1 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 2 - libvirtName: controller2 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 3 - libvirtName: controller3 - libvirtTemplate: templates/virtual_environment/vms/controller.xml - - id: 4 - libvirtName: compute1 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 5 - libvirtName: compute2 - libvirtTemplate: templates/virtual_environment/vms/compute.xml - - id: 6 - libvirtName: fuel-master - libvirtTemplate: templates/virtual_environment/vms/fuel.xml - isFuel: yes - username: root - password: r00tme - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_heat_ceilometer_scenario.yaml deleted file mode 100644 index 801b9fca7..000000000 --- a/deploy/scenario/no-ha_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,65 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: OpenStack-only, No-HA deployment - version: 0.0.2 - created: Jan 26 2016 - comment: Fuel OpenStack-only with Ceph, Ceilometer and Heat, No-HA deployment rebased with Fuel8 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: congress - module-config-name: fuel-congress - module-config-version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller,congress - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario.yaml deleted file mode 100644 index 4661a263d..000000000 --- a/deploy/scenario/no-ha_nfv-kvm_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,151 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV KVM NO-HA deployment - version: 0.0.5 - created: Aug 03 2016 - comment: Ceph cannot be assigned to compute, using a seperate node for it - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-kvm - module-config-name: fuel-nfvkvm - module-config-version: 0.9.0 - module-config-override: - # Module config overrides - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - net_segment_type: tun - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller - - id: 2 - interfaces: interfaces_1 - role: ceph-osd - - id: 3 - interfaces: interfaces_1 - role: compute - - id: 4 - interfaces: interfaces_1 - role: compute - - settings: - editable: - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works best if Ceph is enabled for volumes and images, too. Enables live migration of all types of Ceph backed VMs (without this option, live migration will only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: false - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could be selected. - type: checkbox - value: false - weight: 30 - images_vcenter: - description: Configures Glance to use the vCenter/ESXi backend to store images. If enabled, this option will prevent Swift from installing. - label: VMware vCenter/ESXi datastore for images (Glance) - restrictions: - - action: hide - condition: settings:common.use_vcenter.value != true - - condition: settings:storage.images_ceph.value == true - message: Only one Glance backend could be selected. - type: checkbox - value: false - weight: 35 - iser: - description: 'High performance block storage: Cinder volumes over iSER protocol (iSCSI over RDMA). This feature requires SR-IOV capabilities in the NIC, and will use a dedicated virtual function for the storage network.' - label: iSER protocol for volumes (Cinder) - restrictions: - - settings:storage.volumes_lvm.value != true or settings:common.libvirt_type.value != 'kvm' - - action: hide - condition: not ('experimental' in version:feature_groups) - type: checkbox - value: false - weight: 11 - metadata: - group: storage - label: Storage Backends - weight: 60 - objects_ceph: - description: Configures RadosGW front end for Ceph RBD. This exposes S3 and Swift API Interfaces. If enabled, this option will prevent Swift from installing. - label: Ceph RadosGW for objects (Swift API) - type: checkbox - value: false - weight: 80 - osd_pool_size: - description: Configures the default number of object replicas in Ceph. This number must be equal to or lower than the number of deployed 'Storage - Ceph OSD' nodes. - label: Ceph object replication factor - regex: - error: Invalid number - source: ^[1-9]\d*$ - type: text - value: '1' - weight: 85 - volumes_block_device: - description: High performance block device storage. It is recommended to have at least one Storage - Cinder Block Device - label: Cinder Block device driver - restrictions: - - settings:storage.volumes_ceph.value == true - type: checkbox - value: false - weight: 15 - volumes_ceph: - description: Configures Cinder to store volumes in Ceph RBD images. - label: Ceph RBD for volumes (Cinder) - restrictions: - - settings:storage.volumes_lvm.value == true or settings:storage.volumes_block_device.value == true - type: checkbox - value: true - weight: 20 - volumes_lvm: - description: It is recommended to have at least one Storage - Cinder LVM node. - label: Cinder LVM over iSCSI for volumes - restrictions: - - settings:storage.volumes_ceph.value == true - type: checkbox - value: false - weight: 10 - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml deleted file mode 100644 index f7e1eb46a..000000000 --- a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,133 +0,0 @@ -############################################################################## -# Copyright (c) 2017 Intel Corp. and others. -# navyax.bathula@intel.com,mpolenchuk@mirantis.com -# 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 -############################################################################## - -############################################################################### -# Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV KVM OVS-DPDK and Barometer No-HA deployment - version: 0.0.1 - created: Feb 16 2017 - comment: NFV KVM OVS-DPDK and Barometer - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-kvm - module-config-name: fuel-nfvkvm - module-config-version: 1.0.0 - module-config-override: - # Module config overrides - - module: fuel-plugin-collectd-ceilometer - module-config-name: fuel-barometer - module-config-version: 1.0.0 - module-config-override: - # Module config overrides - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - fuel: - FEATURE_GROUPS: - - experimental - environment: - net_segment_type: vlan - nodes: - - id: 1 - interfaces: interfaces_vlan - role: mongo,controller - - id: 2 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 3 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 4 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - attributes_1: - hugepages: - dpdk: - value: 1024 - nova: - value: - '2048': 1024 - - network: - networking_parameters: - segmentation_type: vlan - networks: - - cidr: null - gateway: null - ip_ranges: [] - meta: - configurable: false - map_priority: 2 - name: private - neutron_vlan_range: true - notation: null - render_addr_mask: null - render_type: null - seg_type: vlan - use_gateway: false - vlan_start: null - name: private - vlan_start: null - - settings: - editable: - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml deleted file mode 100644 index f7144f058..000000000 --- a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,128 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Intel Corp. and others. -# navyax.bathula@intel.com,mpolenchuk@mirantis.com -# 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 -############################################################################## - -############################################################################### -# Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV KVM and OVS-DPDK No-HA deployment - version: 0.0.1 - created: Dec 20 2016 - comment: NFV KVM and OVS-DPDK - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-kvm - module-config-name: fuel-nfvkvm - module-config-version: 1.0.0 - module-config-override: - # Module config overrides - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - fuel: - FEATURE_GROUPS: - - experimental - environment: - net_segment_type: vlan - nodes: - - id: 1 - interfaces: interfaces_vlan - role: mongo,controller - - id: 2 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 3 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 4 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - attributes_1: - hugepages: - dpdk: - value: 1024 - nova: - value: - '2048': 1024 - - network: - networking_parameters: - segmentation_type: vlan - networks: - - cidr: null - gateway: null - ip_ranges: [] - meta: - configurable: false - map_priority: 2 - name: private - neutron_vlan_range: true - notation: null - render_addr_mask: null - render_type: null - seg_type: vlan - use_gateway: false - vlan_start: null - name: private - vlan_start: null - - settings: - editable: - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml deleted file mode 100644 index 87364e83a..000000000 --- a/deploy/scenario/no-ha_nfv-kvm_nfv-ovs_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,114 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV KVM and OVS No-HA deployment - version: 0.0.1 - created: Jan 6 2016 - comment: NFV KVM and OVS - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-qemu - module-config-name: fuel-nfvkvm - module-config-version: 0.0.1 - module-config-override: - # Module config overrides - - - module: fuel-plugin-ovsnfv - module-config-name: fuel-nfvovs - module-config-version: 0.0.1 - module-config-override: - # Module config overrides - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - mode: ha - net_segment_type: tun - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - additional_components: - ceilometer: - description: If selected, Ceilometer component will be installed - label: Install Ceilometer - type: checkbox - value: true - weight: 40 - heat: - description: '' - label: '' - type: hidden - value: true - weight: 30 - metadata: - label: Additional Components - weight: 20 - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario.yaml deleted file mode 100644 index 526052779..000000000 --- a/deploy/scenario/no-ha_nfv-ovs_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,113 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: NFV OVS NO-HA deployment - version: 1.0.0 - created: Jul 12 2016 - comment: NFV OVS NO-HA Rebased for Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - # - # Disable this plugin since Fuel already has newer - # version of openvswitch out of the box - # - # - module: fuel-plugin-ovs - # module-config-name: fuel-nshovs - # module-config-version: 1.0.0 - # module-config-override: - # metadata: - # versions: - # - install_dpdk: - # value: true - # metadata: - # plugin_version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - fuel: - FEATURE_GROUPS: - - experimental - environment: - net_segment_type: vlan - nodes: - - id: 1 - interfaces: interfaces_vlan - role: mongo,controller - - id: 2 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 3 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - id: 4 - interfaces: interfaces_dpdk - role: ceph-osd,compute - attributes: attributes_1 - - attributes_1: - hugepages: - dpdk: - value: 1024 - nova: - value: - '2048': 1024 - - network: - networking_parameters: - segmentation_type: vlan - networks: - - cidr: null - gateway: null - ip_ranges: [] - meta: - configurable: false - map_priority: 2 - name: private - neutron_vlan_range: true - notation: null - render_addr_mask: null - render_type: null - seg_type: vlan - use_gateway: false - vlan_start: null - name: private - vlan_start: null - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml b/deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml deleted file mode 100644 index bc2dab5b9..000000000 --- a/deploy/scenario/no-ha_odl-bgpvpn_scenario.yaml +++ /dev/null @@ -1,86 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL HA BGPVPN deployment - version: 1.0.0 - created: 29.06.2016 - comment: Fuel ODL No HA with BGPVPN, Ceph, Ceilometer and Heat Rebased for Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - enable_l3_odl: - value: true - deb_version: - value: '5.2.0-1' - enable_bgpvpn: - value: true - metadata: - plugin_version: 1.0.0 - - - module: bgpvpn - module-config-name: fuel-bgpvpn - module-config-version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,opendaylight - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario.yaml deleted file mode 100644 index 903aa57fb..000000000 --- a/deploy/scenario/no-ha_odl-l2_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,82 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL-L2 No-HA deployment - version: 0.0.4 - created: Dec 07 2016 - comment: Rebased to Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: -# Note that the module substitionion does not support arrays -# This is a quick fix -# - module: opendaylight -# module-config-name: fuel-odl -# module-config-version: 0.0.2 -# module-config-override: -# # Module config overrides -# rest_api_port: -# value: '8282' -# enable_gbp: -# value: false -# enable_l3_odl: -# value: false -# enable_sfc: -# value: false - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,opendaylight - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml deleted file mode 100644 index 29d9383e5..000000000 --- a/deploy/scenario/no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################## -# Copyright (c) 2015,2016 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL-L2-SFC No-HA deployment - version: 0.0.4 - created: Feb 10 2016 - comment: Fuel ODL-L2 SFC No HA with Ceph, Ceilometer and Heat Rebased for Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: fuel-plugin-ovs - module-config-name: fuel-nshovs - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - install_nsh: - value: true - metadata: - plugin_version: 1.0.0 - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - enable_sfc: - value: true - deb_version: - value: '5.2.0-1' - metadata: - plugin_version: 1.0.0 - - module: tacker - module-config-name: fuel-tacker - module-config-version: 1.0.0 - -# Note that the module substitionion does not support arrays -# This is a quick fix -# - module: opendaylight -# module-config-name: fuel-odl -# module-config-version: 0.0.2 -# module-config-override: -# # Module config overrides -# rest_api_port: -# value: '8282' -# enable_gbp: -# value: false -# enable_l3_odl: -# value: false -# enable_sfc: -# value: false - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller,tacker - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,opendaylight - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario.yaml deleted file mode 100644 index 3353d6744..000000000 --- a/deploy/scenario/no-ha_odl-l3_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,79 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ODL-L3 No-HA deployment - version: 0.0.5 - created: Dec 07 2016 - comment: Rebased to Fuel10 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -# Note that the module substitionion does not support arrays -# This is a quick fix -stack-extensions: - - module: opendaylight - module-config-name: fuel-odl - module-config-version: 1.0.0 - module-config-override: - metadata: - versions: - - enable_l3_odl: - value: true - metadata: - plugin_version: 1.0.0 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,opendaylight - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true - -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_onos_nofeature_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_onos_nofeature_heat_ceilometer_scenario.yaml deleted file mode 100644 index 962b59701..000000000 --- a/deploy/scenario/no-ha_onos_nofeature_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,93 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ONOS No-HA deployment - version: 0.0.5 - created: Jun 08 2016 - comment: ONOS No HA with Ceph, Ceilometer and Heat - Rebased for Fuel9 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: onos - module-config-name: fuel-onos - module-config-version: 0.0.3 - module-config-override: - metadata: - class: plugin - default: false - enabled: true - label: onos plugin - toggleable: true - versions: - - enable_sfc: - label: SFC features - type: checkbox - value: false - weight: 13 - metadata: - hot_pluggable: false - plugin_version: 0.10.2 - restrictions: - - cluster:net_provider != 'neutron': Neutron only - - settings:public_network_assignment.assign_to_all_nodes.value == false: Assign - public network to all nodes - weight: 70 - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - net_segment_type: tun - name: onos_no-ha - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller,onos - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_onos_sfc_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_onos_sfc_heat_ceilometer_scenario.yaml deleted file mode 100644 index 587346ef4..000000000 --- a/deploy/scenario/no-ha_onos_sfc_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,73 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: ONOS No-HA deployment - version: 0.0.5 - created: Jun 08 2016 - comment: ONOS No HA with Ceph, Ceilometer and Heat - Rebased for Fuel9 - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - - module: onos - module-config-name: fuel-onos - module-config-version: 0.0.3 - module-config-override: - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - net_segment_type: tun - name: onos_no-ha - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller,onos - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - public_network_assignment: - assign_to_all_nodes: - value: true -dha-override-config: -# disks: -# contrail: 500G - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/no-ha_vlan_heat_ceilometer_scenario.yaml b/deploy/scenario/no-ha_vlan_heat_ceilometer_scenario.yaml deleted file mode 100644 index 567ea9867..000000000 --- a/deploy/scenario/no-ha_vlan_heat_ceilometer_scenario.yaml +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################### # Description: -# This .yaml configuration file defines the configuration of the fuel -# deployment and is passed as an argument to deploy.sh -# eg. deploy.sh -c https://artifact.opnfv.org/fuel/config -# This will make build.sh fetch this configuration file and configure the -# deployment accordingly. -# After the deployment, a copy of this file gets uploaded to fuel: -# /root/deploy-config.yaml, as well as the sha-1 sum of this file: -# /root/deploy-config.sha1 -############################################################################## - -############################################################################## -# deployment configuration meta-data -deployment-scenario-metadata: - title: OpenStack-only, No-HA deployment with VLAN segmentation - version: 0.0.1 - created: Jan 12 2016 - comment: Fuel OpenStack-only with VLAN segmentation, Ceph, Ceilometer and Heat, No-HA deployment - -############################################################################## -# Stack extentions are opnfv added value features in form of a fuel-plugin -# plug-ins listed below will be enabled and configured according to the -# <module-config-base-uri>/<module-config-name>_<module-config-version>.yaml -# It does so by copying the config file to the local plugin config directory -stack-extensions: - -############################################################################## -# By editing the override-config sections below, you can override arbitrary -# configuration name-space settings -dea-override-config: - environment: - mode: ha - net_segment_type: vlan - name: opnfv-vlan-noha - nodes: - - id: 1 - interfaces: interfaces_1 - role: mongo,controller - - id: 2 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 3 - interfaces: interfaces_1 - role: ceph-osd,compute - - id: 4 - interfaces: interfaces_1 - role: ceph-osd,compute - settings: - editable: - additional_components: - ceilometer: - description: If selected, Ceilometer component will be installed - label: Install Ceilometer - type: checkbox - value: true - weight: 40 - heat: - description: '' - label: '' - type: hidden - value: true - weight: 30 - metadata: - label: Additional Components - weight: 20 - storage: - ephemeral_ceph: - description: Configures Nova to store ephemeral volumes in RBD. This works - best if Ceph is enabled for volumes and images, too. Enables live migration - of all types of Ceph backed VMs (without this option, live migration will - only work with VMs launched from Cinder volumes). - label: Ceph RBD for ephemeral volumes (Nova) - type: checkbox - value: true - weight: 75 - images_ceph: - description: Configures Glance to use the Ceph RBD backend to store images. - If enabled, this option will prevent Swift from installing. - label: Ceph RBD for images (Glance) - restrictions: - - settings:storage.images_vcenter.value == true: Only one Glance backend could - be selected. - type: checkbox - value: true - weight: 30 - -dha-override-config: -# These overrides only take effect for virtual deployment scenarios - -############################################################################## -# The verification pipeline may populate the section below with arbitrary -# testing information, which post deploy can be retreived from the fuel master: -# /root/deploy-config.yaml -test: diff --git a/deploy/scenario/scenario.yaml b/deploy/scenario/scenario.yaml deleted file mode 100644 index 66d32da68..000000000 --- a/deploy/scenario/scenario.yaml +++ /dev/null @@ -1,95 +0,0 @@ -############################################################################## -# Copyright (c) 2015 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# 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 -############################################################################## - -############################################################################## -# Description: -# This configuration file defines translation between a short deployment -# scenario name and an actual deployment scenario configuration file -# -# Short deployment scenario names are aligned between installer, test, and -# releng projects according to below pattern. -# os-[controller]-[feature]-[mode](-[optionalparameter]) -# -# Please note that the mechanism to get the details regarding the scenarios -# is different currently which needs to be aligned as well. -############################################################################## - -############################################################################## -# Short scenario name convention to be followed: -# os-<controller>-<feature>-<mode>[-<optional-parameter>] -# controler: nosdn|odl|onos|ocl|... -# feaure: nofeature | [vlan]_[kvm]_[ovs]_[vlan]_.... -# mode: ha|noha -############################################################################## - -os-nosdn-nofeature-ha: - configfile: ha_heat_ceilometer_scenario.yaml - -os-nosdn-nofeature-noha: - configfile: no-ha_heat_ceilometer_scenario.yaml - -os-odl_l3-nofeature-ha: - configfile: ha_odl-l3_heat_ceilometer_scenario.yaml - -os-odl_l3-nofeature-noha: - configfile: no-ha_odl-l3_heat_ceilometer_scenario.yaml - -os-odl_l2-nofeature-ha: - configfile: ha_odl-l2_heat_ceilometer_scenario.yaml - -os-odl_l2-nofeature-noha: - configfile: no-ha_odl-l2_heat_ceilometer_scenario.yaml - -os-onos-nofeature-ha: - configfile: ha_onos_nofeature_heat_ceilometer_scenario.yaml - -os-onos-nofeature-noha: - configfile: no-ha_onos_nofeature_heat_ceilometer_scenario.yaml - -os-onos-sfc-ha: - configfile: ha_onos_sfc_heat_ceilometer_scenario.yaml - -os-onos-sfc-noha: - configfile: no-ha_onos_sfc_heat_ceilometer_scenario.yaml - -os-nosdn-kvm-ha: - configfile: ha_nfv-kvm_heat_ceilometer_scenario.yaml - -os-nosdn-kvm-noha: - configfile: no-ha_nfv-kvm_heat_ceilometer_scenario.yaml - -os-nosdn-ovs-ha: - configfile: ha_nfv-ovs_heat_ceilometer_scenario.yaml - -os-nosdn-ovs-noha: - configfile: no-ha_nfv-ovs_heat_ceilometer_scenario.yaml - -os-odl_l2-bgpvpn-ha: - configfile: ha_odl-bgpvpn_scenario.yaml - -os-odl_l2-bgpvpn-noha: - configfile: no-ha_odl-bgpvpn_scenario.yaml - -os-odl_l2-sfc-ha: - configfile: ha_odl-l2_sfc_heat_ceilometer_scenario.yaml - -os-odl_l2-sfc-noha: - configfile: no-ha_odl-l2_sfc_heat_ceilometer_scenario.yaml - -os-nosdn-kvm_ovs_dpdk-ha: - configfile: ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml - -os-nosdn-kvm_ovs_dpdk-noha: - configfile: no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml - -os-nosdn-kvm_ovs_dpdk_bar-ha: - configfile: ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml - -os-nosdn-kvm_ovs_dpdk_bar-noha: - configfile: no-ha_nfv-kvm_nfv-ovs-dpdk-bar_heat_ceilometer_scenario.yaml diff --git a/deploy/ssh_client.py b/deploy/ssh_client.py deleted file mode 100644 index 24119dbfa..000000000 --- a/deploy/ssh_client.py +++ /dev/null @@ -1,103 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# peter.barabas@ericsson.com -# 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 -############################################################################### - - -import paramiko -import scp - -from common import ( - log, - err, -) - -TIMEOUT = 600 - -class SSHClient(object): - - def __init__(self, host, username, password): - self.host = host - self.username = username - self.password = password - self.client = None - - def open(self, timeout=TIMEOUT): - self.client = paramiko.SSHClient() - self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - self.client.connect(self.host, username=self.username, - password=self.password, look_for_keys=False, - timeout=timeout) - - def close(self): - if self.client is not None: - self.client.close() - self.client = None - - def __enter__(self): - self.open() - return self - - def __exit__(self, type, value, traceback): - self.close() - - def exec_cmd(self, command, check=True, sudo=False, timeout=TIMEOUT): - if sudo and self.username != 'root': - command = "sudo -S -p '' %s" % command - stdin, stdout, stderr = self.client.exec_command(command, - timeout=timeout) - if sudo: - stdin.write(self.password + '\n') - stdin.flush() - response = stdout.read().strip() - error = stderr.read().strip() - - if check: - if error: - self.close() - raise Exception(error) - else: - return response - return response, error - - def run(self, command): - transport = self.client.get_transport() - transport.set_keepalive(1) - chan = transport.open_session() - chan.exec_command(command) - while not chan.exit_status_ready(): - if chan.recv_ready(): - data = chan.recv(1024) - while data: - log(data.strip()) - data = chan.recv(1024) - - if chan.recv_stderr_ready(): - error_buff = chan.recv_stderr(1024) - while error_buff: - log(error_buff.strip()) - error_buff = chan.recv_stderr(1024) - return chan.recv_exit_status() - - def scp_get(self, remote, local='.', dir=False): - try: - with scp.SCPClient(self.client.get_transport(), - sanitize=lambda x: x, - socket_timeout=TIMEOUT) as _scp: - _scp.get(remote, local, dir) - except Exception as e: - err(e) - - def scp_put(self, local, remote='.', dir=False): - try: - with scp.SCPClient(self.client.get_transport(), - sanitize=lambda x: x, - socket_timeout=TIMEOUT) as _scp: - _scp.put(local, remote, dir) - except Exception as e: - err(e) diff --git a/deploy/templater.py b/deploy/templater.py deleted file mode 100755 index bda60c7fe..000000000 --- a/deploy/templater.py +++ /dev/null @@ -1,204 +0,0 @@ -#!/usr/bin/env python -############################################################################### -# Copyright (c) 2016 Ericsson AB and others. -# peter.barabas@ericsson.com -# 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 -############################################################################### - - -import io -import re -import yaml -import urllib2 -from common import( - err, - ArgParser, -) - - -TAG_START = '%{' -TAG_END = '}' -DELIMITER = '/' - - -class Templater(object): - def __init__(self, base_file, template_file, output_file): - self.template_file = template_file - self.output_file = output_file - self.base = self.load_yaml(base_file) - - def is_url(self, filespec): - regex = re.compile('^([^/:]+)://') - return re.search(regex, filespec) - - def load_template(self, filespec): - try: - if(self.is_url(filespec)): - response = urllib2.urlopen(filespec) - return response.read() - else: - with io.open(filespec) as f: - return f.readlines() - except Exception as error: - err('Error opening template file: %s' % error) - - def load_yaml(self, filespec): - try: - if(self.is_url(filespec)): - response = urllib2.urlopen(filespec) - return yaml.load(response) - else: - with io.open(filespec) as f: - return yaml.load(f) - except Exception as error: - err('Error opening YAML file: %s' % error) - - def save_yaml(self, filename, content): - try: - with io.open(filename, 'w') as yaml_file: - yaml_file.write(content) - except Exception as error: - err('Error writing YAML file: %s' % error) - - def get_indent(self, line): - return len(line) - len(line.lstrip(' ')) - - def format_fragment(self, fragment, indent): - result = '' - is_first_line = True - - for line in fragment.splitlines(): - # Skip indenting the first line as it is already indented - if is_first_line: - line += '\n' - is_first_line = False - else: - line = ' ' * indent + line + '\n' - - result += line - - return result.rstrip('\n') - - def format_substitution(self, string): - if isinstance(string, basestring): - return string - else: - return yaml.dump(string, default_flow_style=False) - - def parse_interface_tag(self, tag): - # Remove 'interface(' prefix, trailing ')' and split arguments - args = tag[len('interface('):].rstrip(')').split(',') - - if len(args) == 1 and not args[0]: - err('No arguments for interface().') - elif len(args) == 2 and (not args[0] or not args[1]): - err('Empty argument for interface().') - elif len(args) > 2: - err('Too many arguments for interface().') - else: - return args - - def get_interface_from_network(self, interfaces, network): - nics = self.base[interfaces] - for nic in nics: - if network in nics[nic]: - return nic - - err('Network not found: %s' % network) - - def get_role_interfaces(self, role): - nodes = self.base['nodes'] - for node in nodes: - if role in node['role']: - return node['interfaces'] - - err('Role not found: %s' % role) - - def lookup_interface(self, args): - nodes = self.base['nodes'] - - if len(args) == 1: - interfaces = nodes[0]['interfaces'] - if len(args) == 2: - interfaces = self.get_role_interfaces(args[1]) - - return self.get_interface_from_network(interfaces, args[0]) - - def parse_include_tag(self, tag): - # Remove 'include(' prefix and trailing ')' - filename = tag[len('include('):].rstrip(')') - - if not filename: - err('No argument for include().') - - return filename - - def include_file(self, filename): - fragment = self.load_yaml(filename) - return yaml.dump(fragment, default_flow_style=False) - - def parse_tag(self, tag, indent): - fragment = '' - - if 'interface(' in tag: - args = self.parse_interface_tag(tag) - fragment = self.lookup_interface(args) - elif 'include(' in tag: - filename = self.parse_include_tag(tag) - fragment = self.include_file(filename) - else: - path = tag.split(DELIMITER) - fragment = self.base - for i in path: - if i in fragment: - fragment = fragment.get(i) - else: - err('Error: key "%s" does not exist in base YAML file' % i) - - fragment = self.format_substitution(fragment) - - return self.format_fragment(fragment, indent) - - def run(self): - result = '' - - regex = re.compile(re.escape(TAG_START) + r'([a-z].+)' + re.escape(TAG_END), - flags=re.IGNORECASE) - for line in self.load_template(self.template_file): - indent = self.get_indent(line) - result += re.sub(regex, - lambda match: self.parse_tag(match.group(1), indent), - line) - - self.save_yaml(self.output_file, result) - - -def parse_arguments(): - description = '''Process 'template_file' using 'base_file' as source for -template variable substitution and write the results to 'output_file'.''' - - parser = ArgParser(prog='python %s' % __file__, - description=description) - parser.add_argument('base_file', - help='Base YAML file or URL') - parser.add_argument('template_file', - help='Template file or URL') - parser.add_argument('output_file', - help='Output filename') - - args = parser.parse_args() - return(args.base_file, args.template_file, args.output_file) - - -def main(): - base_file, template_file, output_file = parse_arguments() - - templater = Templater(base_file, template_file, output_file) - templater.run() - - -if __name__ == '__main__': - main() diff --git a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel1.xml b/deploy/templates/ericsson/virtual_environment/noha/networks/fuel1.xml deleted file mode 100644 index 7b2b15423..000000000 --- a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel1.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel1</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel1' stp='on' delay='0'/> - <ip address='10.20.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel2.xml b/deploy/templates/ericsson/virtual_environment/noha/networks/fuel2.xml deleted file mode 100644 index 615c92094..000000000 --- a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel2.xml +++ /dev/null @@ -1,5 +0,0 @@ -<network> - <name>fuel2</name> - <bridge name='fuel2' stp='on' delay='0'/> -</network> - diff --git a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel3.xml b/deploy/templates/ericsson/virtual_environment/noha/networks/fuel3.xml deleted file mode 100644 index 2383e6c1f..000000000 --- a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel3.xml +++ /dev/null @@ -1,5 +0,0 @@ -<network> - <name>fuel3</name> - <bridge name='fuel3' stp='on' delay='0'/> -</network> - diff --git a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel4.xml b/deploy/templates/ericsson/virtual_environment/noha/networks/fuel4.xml deleted file mode 100644 index 5b69f912d..000000000 --- a/deploy/templates/ericsson/virtual_environment/noha/networks/fuel4.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel4</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel4' stp='on' delay='0'/> - <ip address='172.16.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/ericsson/virtual_environment/noha/vms/compute.xml b/deploy/templates/ericsson/virtual_environment/noha/vms/compute.xml deleted file mode 100644 index 310ce292a..000000000 --- a/deploy/templates/ericsson/virtual_environment/noha/vms/compute.xml +++ /dev/null @@ -1,91 +0,0 @@ -<domain type='kvm'> - <name>compute</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - <vendor>Intel</vendor> - <feature policy='require' name='vme'/> - <feature policy='require' name='dtes64'/> - <feature policy='require' name='vmx'/> - <feature policy='require' name='erms'/> - <feature policy='require' name='xtpr'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='pcid'/> - <feature policy='require' name='est'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='smx'/> - <feature policy='require' name='tm'/> - <feature policy='require' name='acpi'/> - <feature policy='require' name='osxsave'/> - <feature policy='require' name='ht'/> - <feature policy='require' name='pdcm'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='f16c'/> - <feature policy='require' name='ds'/> - <feature policy='require' name='tm2'/> - <feature policy='require' name='ss'/> - <feature policy='require' name='pbe'/> - <feature policy='require' name='ds_cpl'/> - <feature policy='require' name='rdrand'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/ericsson/virtual_environment/noha/vms/controller.xml b/deploy/templates/ericsson/virtual_environment/noha/vms/controller.xml deleted file mode 100644 index d0d0ef14c..000000000 --- a/deploy/templates/ericsson/virtual_environment/noha/vms/controller.xml +++ /dev/null @@ -1,91 +0,0 @@ -<domain type='kvm'> - <name>controller</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - <vendor>Intel</vendor> - <feature policy='require' name='vme'/> - <feature policy='require' name='dtes64'/> - <feature policy='require' name='vmx'/> - <feature policy='require' name='erms'/> - <feature policy='require' name='xtpr'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='pcid'/> - <feature policy='require' name='est'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='smx'/> - <feature policy='require' name='tm'/> - <feature policy='require' name='acpi'/> - <feature policy='require' name='osxsave'/> - <feature policy='require' name='ht'/> - <feature policy='require' name='pdcm'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='f16c'/> - <feature policy='require' name='ds'/> - <feature policy='require' name='tm2'/> - <feature policy='require' name='ss'/> - <feature policy='require' name='pbe'/> - <feature policy='require' name='ds_cpl'/> - <feature policy='require' name='rdrand'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/ericsson/virtual_environment/noha/vms/fuel.xml b/deploy/templates/ericsson/virtual_environment/noha/vms/fuel.xml deleted file mode 100644 index 223a65805..000000000 --- a/deploy/templates/ericsson/virtual_environment/noha/vms/fuel.xml +++ /dev/null @@ -1,93 +0,0 @@ -<domain type='kvm'> - <name>fuel</name> - <memory unit='KiB'>2097152</memory> - <currentMemory unit='KiB'>2097152</currentMemory> - <vcpu placement='static'>2</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='hd'/> - <boot dev='cdrom'/> - <bootmenu enable='no'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - <vendor>Intel</vendor> - <feature policy='require' name='vme'/> - <feature policy='require' name='dtes64'/> - <feature policy='require' name='vmx'/> - <feature policy='require' name='erms'/> - <feature policy='require' name='xtpr'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='pcid'/> - <feature policy='require' name='est'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='smx'/> - <feature policy='require' name='tm'/> - <feature policy='require' name='acpi'/> - <feature policy='require' name='osxsave'/> - <feature policy='require' name='ht'/> - <feature policy='require' name='pdcm'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='f16c'/> - <feature policy='require' name='ds'/> - <feature policy='require' name='tm2'/> - <feature policy='require' name='ss'/> - <feature policy='require' name='pbe'/> - <feature policy='require' name='ds_cpl'/> - <feature policy='require' name='rdrand'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='block' device='cdrom'> - <driver name='qemu' type='raw'/> - <target dev='hdc' bus='ide'/> - <readonly/> - </disk> - <disk type='file' device='disk'> - <driver name='qemu' type='qcwo2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='ide' index='0'> - </controller> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'> - <listen type='address' address='127.0.0.1'/> - </graphics> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> - <seclabel type='dynamic' model='apparmor' relabel='yes'/> -</domain> - diff --git a/deploy/templates/hardware_environment/vms/enea_lab/fuel.xml b/deploy/templates/hardware_environment/vms/enea_lab/fuel.xml deleted file mode 100644 index 5a59ace86..000000000 --- a/deploy/templates/hardware_environment/vms/enea_lab/fuel.xml +++ /dev/null @@ -1,88 +0,0 @@ -<domain type='kvm' id='1'> - <name>fuel</name> - <memory unit='KiB'>8290304</memory> - <currentMemory unit='KiB'>8290304</currentMemory> - <vcpu placement='static'>4</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> - <boot dev='cdrom'/> - <boot dev='hd'/> - <bootmenu enable='no'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='host-model'> - <model fallback='allow'/> - </cpu> - <clock offset='utc'> - <timer name='rtc' tickpolicy='catchup'/> - <timer name='pit' tickpolicy='delay'/> - <timer name='hpet' present='no'/> - </clock> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <pm> - <suspend-to-mem enabled='no'/> - <suspend-to-disk enabled='no'/> - </pm> - <devices> - <emulator>/usr/libexec/qemu-kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='raw' cache='none' io='native'/> - <target dev='vda' bus='virtio'/> - </disk> - <disk type='block' device='cdrom'> - <driver name='qemu' type='raw'/> - <target dev='hdb' bus='ide'/> - <readonly/> - </disk> - <controller type='usb' index='0' model='ich9-ehci1'> - </controller> - <controller type='usb' index='0' model='ich9-uhci1'> - <master startport='0'/> - </controller> - <controller type='usb' index='0' model='ich9-uhci2'> - <master startport='2'/> - </controller> - <controller type='usb' index='0' model='ich9-uhci3'> - <master startport='4'/> - </controller> - <controller type='pci' index='0' model='pci-root'> - </controller> - <controller type='ide' index='0'> - </controller> - <controller type='virtio-serial' index='0'> - </controller> - <interface type='bridge'> - <model type='virtio'/> - </interface> - <interface type='bridge'> - <model type='virtio'/> - </interface> - <serial type='pty'> - <source path='/dev/pts/0'/> - <target port='0'/> - </serial> - <console type='pty' tty='/dev/pts/0'> - <source path='/dev/pts/0'/> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='5906' autoport='yes' listen='127.0.0.1'> - <listen type='address' address='127.0.0.1'/> - </graphics> - <video> - <model type='vga' vram='16384' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/hardware_environment/vms/ericsson_montreal_lab/fuel.xml b/deploy/templates/hardware_environment/vms/ericsson_montreal_lab/fuel.xml deleted file mode 100644 index 055923037..000000000 --- a/deploy/templates/hardware_environment/vms/ericsson_montreal_lab/fuel.xml +++ /dev/null @@ -1,91 +0,0 @@ -<domain type='kvm' id='62'> - <name>fuel</name> - <memory unit='KiB'>8290304</memory> - <currentMemory unit='KiB'>8290304</currentMemory> - <vcpu placement='static'>4</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc-i440fx-trusty'>hvm</type> - <boot dev='cdrom'/> - <boot dev='hd'/> - <bootmenu enable='no'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - </cpu> - <clock offset='utc'> - <timer name='rtc' tickpolicy='catchup'/> - <timer name='pit' tickpolicy='delay'/> - <timer name='hpet' present='no'/> - </clock> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <pm> - <suspend-to-mem enabled='no'/> - <suspend-to-disk enabled='no'/> - </pm> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='raw' cache='none' io='native'/> - <target dev='vda' bus='virtio'/> - </disk> - <disk type='block' device='cdrom'> - <driver name='qemu' type='raw'/> - <target dev='hdb' bus='ide'/> - <readonly/> - </disk> - <controller type='usb' index='0' model='ich9-ehci1'> - </controller> - <controller type='usb' index='0' model='ich9-uhci1'> - <master startport='0'/> - </controller> - <controller type='usb' index='0' model='ich9-uhci2'> - <master startport='2'/> - </controller> - <controller type='usb' index='0' model='ich9-uhci3'> - <master startport='4'/> - </controller> - <controller type='pci' index='0' model='pci-root'> - </controller> - <controller type='ide' index='0'> - </controller> - <controller type='virtio-serial' index='0'> - </controller> - <interface type='bridge'> - <model type='virtio'/> - </interface> - <serial type='pty'> - <source path='/dev/pts/0'/> - <target port='0'/> - </serial> - <console type='pty' tty='/dev/pts/0'> - <source path='/dev/pts/0'/> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'> - <listen type='address' address='127.0.0.1'/> - </graphics> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> - <seclabel type='dynamic' relabel='yes'> - <label>system_u:system_r:svirt_t:s0:c52,c932</label> - <imagelabel>system_u:object_r:svirt_image_t:s0:c52,c932</imagelabel> - </seclabel> -</domain> diff --git a/deploy/templates/hardware_environment/vms/fuel.xml b/deploy/templates/hardware_environment/vms/fuel.xml deleted file mode 100644 index ada7688c2..000000000 --- a/deploy/templates/hardware_environment/vms/fuel.xml +++ /dev/null @@ -1,91 +0,0 @@ -<domain type='kvm' id='62'> - <name>fuel</name> - <memory unit='KiB'>8290304</memory> - <currentMemory unit='KiB'>8290304</currentMemory> - <vcpu placement='static'>4</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type> - <boot dev='cdrom'/> - <boot dev='hd'/> - <bootmenu enable='no'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - </cpu> - <clock offset='utc'> - <timer name='rtc' tickpolicy='catchup'/> - <timer name='pit' tickpolicy='delay'/> - <timer name='hpet' present='no'/> - </clock> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <pm> - <suspend-to-mem enabled='no'/> - <suspend-to-disk enabled='no'/> - </pm> - <devices> - <emulator>/usr/libexec/qemu-kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='raw' cache='none' io='native'/> - <target dev='vda' bus='virtio'/> - </disk> - <disk type='block' device='cdrom'> - <driver name='qemu' type='raw'/> - <target dev='hdb' bus='ide'/> - <readonly/> - </disk> - <controller type='usb' index='0' model='ich9-ehci1'> - </controller> - <controller type='usb' index='0' model='ich9-uhci1'> - <master startport='0'/> - </controller> - <controller type='usb' index='0' model='ich9-uhci2'> - <master startport='2'/> - </controller> - <controller type='usb' index='0' model='ich9-uhci3'> - <master startport='4'/> - </controller> - <controller type='pci' index='0' model='pci-root'> - </controller> - <controller type='ide' index='0'> - </controller> - <controller type='virtio-serial' index='0'> - </controller> - <interface type='bridge'> - <model type='virtio'/> - </interface> - <serial type='pty'> - <source path='/dev/pts/0'/> - <target port='0'/> - </serial> - <console type='pty' tty='/dev/pts/0'> - <source path='/dev/pts/0'/> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'> - <listen type='address' address='127.0.0.1'/> - </graphics> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> - <seclabel type='dynamic' model='selinux' relabel='yes'> - <label>system_u:system_r:svirt_t:s0:c52,c932</label> - <imagelabel>system_u:object_r:svirt_image_t:s0:c52,c932</imagelabel> - </seclabel> -</domain> diff --git a/deploy/templates/intel/virtual_environment/noha/networks/fuel1.xml b/deploy/templates/intel/virtual_environment/noha/networks/fuel1.xml deleted file mode 100644 index 7b2b15423..000000000 --- a/deploy/templates/intel/virtual_environment/noha/networks/fuel1.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel1</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel1' stp='on' delay='0'/> - <ip address='10.20.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/intel/virtual_environment/noha/networks/fuel2.xml b/deploy/templates/intel/virtual_environment/noha/networks/fuel2.xml deleted file mode 100644 index 615c92094..000000000 --- a/deploy/templates/intel/virtual_environment/noha/networks/fuel2.xml +++ /dev/null @@ -1,5 +0,0 @@ -<network> - <name>fuel2</name> - <bridge name='fuel2' stp='on' delay='0'/> -</network> - diff --git a/deploy/templates/intel/virtual_environment/noha/networks/fuel3.xml b/deploy/templates/intel/virtual_environment/noha/networks/fuel3.xml deleted file mode 100644 index 2383e6c1f..000000000 --- a/deploy/templates/intel/virtual_environment/noha/networks/fuel3.xml +++ /dev/null @@ -1,5 +0,0 @@ -<network> - <name>fuel3</name> - <bridge name='fuel3' stp='on' delay='0'/> -</network> - diff --git a/deploy/templates/intel/virtual_environment/noha/networks/fuel4.xml b/deploy/templates/intel/virtual_environment/noha/networks/fuel4.xml deleted file mode 100644 index 5b69f912d..000000000 --- a/deploy/templates/intel/virtual_environment/noha/networks/fuel4.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel4</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel4' stp='on' delay='0'/> - <ip address='172.16.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/intel/virtual_environment/noha/vms/compute.xml b/deploy/templates/intel/virtual_environment/noha/vms/compute.xml deleted file mode 100644 index 310ce292a..000000000 --- a/deploy/templates/intel/virtual_environment/noha/vms/compute.xml +++ /dev/null @@ -1,91 +0,0 @@ -<domain type='kvm'> - <name>compute</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - <vendor>Intel</vendor> - <feature policy='require' name='vme'/> - <feature policy='require' name='dtes64'/> - <feature policy='require' name='vmx'/> - <feature policy='require' name='erms'/> - <feature policy='require' name='xtpr'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='pcid'/> - <feature policy='require' name='est'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='smx'/> - <feature policy='require' name='tm'/> - <feature policy='require' name='acpi'/> - <feature policy='require' name='osxsave'/> - <feature policy='require' name='ht'/> - <feature policy='require' name='pdcm'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='f16c'/> - <feature policy='require' name='ds'/> - <feature policy='require' name='tm2'/> - <feature policy='require' name='ss'/> - <feature policy='require' name='pbe'/> - <feature policy='require' name='ds_cpl'/> - <feature policy='require' name='rdrand'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/intel/virtual_environment/noha/vms/controller.xml b/deploy/templates/intel/virtual_environment/noha/vms/controller.xml deleted file mode 100644 index d0d0ef14c..000000000 --- a/deploy/templates/intel/virtual_environment/noha/vms/controller.xml +++ /dev/null @@ -1,91 +0,0 @@ -<domain type='kvm'> - <name>controller</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - <vendor>Intel</vendor> - <feature policy='require' name='vme'/> - <feature policy='require' name='dtes64'/> - <feature policy='require' name='vmx'/> - <feature policy='require' name='erms'/> - <feature policy='require' name='xtpr'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='pcid'/> - <feature policy='require' name='est'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='smx'/> - <feature policy='require' name='tm'/> - <feature policy='require' name='acpi'/> - <feature policy='require' name='osxsave'/> - <feature policy='require' name='ht'/> - <feature policy='require' name='pdcm'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='f16c'/> - <feature policy='require' name='ds'/> - <feature policy='require' name='tm2'/> - <feature policy='require' name='ss'/> - <feature policy='require' name='pbe'/> - <feature policy='require' name='ds_cpl'/> - <feature policy='require' name='rdrand'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/intel/virtual_environment/noha/vms/fuel.xml b/deploy/templates/intel/virtual_environment/noha/vms/fuel.xml deleted file mode 100644 index b8af5a633..000000000 --- a/deploy/templates/intel/virtual_environment/noha/vms/fuel.xml +++ /dev/null @@ -1,93 +0,0 @@ -<domain type='kvm'> - <name>fuel</name> - <memory unit='KiB'>2097152</memory> - <currentMemory unit='KiB'>2097152</currentMemory> - <vcpu placement='static'>2</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='hd'/> - <boot dev='cdrom'/> - <bootmenu enable='no'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='custom' match='exact'> - <model fallback='allow'>SandyBridge</model> - <vendor>Intel</vendor> - <feature policy='require' name='vme'/> - <feature policy='require' name='dtes64'/> - <feature policy='require' name='vmx'/> - <feature policy='require' name='erms'/> - <feature policy='require' name='xtpr'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='pcid'/> - <feature policy='require' name='est'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='smx'/> - <feature policy='require' name='tm'/> - <feature policy='require' name='acpi'/> - <feature policy='require' name='osxsave'/> - <feature policy='require' name='ht'/> - <feature policy='require' name='pdcm'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='f16c'/> - <feature policy='require' name='ds'/> - <feature policy='require' name='tm2'/> - <feature policy='require' name='ss'/> - <feature policy='require' name='pbe'/> - <feature policy='require' name='ds_cpl'/> - <feature policy='require' name='rdrand'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='block' device='cdrom'> - <driver name='qemu' type='raw'/> - <target dev='hdc' bus='ide'/> - <readonly/> - </disk> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='ide' index='0'> - </controller> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'> - <listen type='address' address='127.0.0.1'/> - </graphics> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> - <seclabel type='dynamic' model='apparmor' relabel='yes'/> -</domain> - diff --git a/deploy/templates/plugins/.gitkeep b/deploy/templates/plugins/.gitkeep deleted file mode 100644 index e69de29bb..000000000 --- a/deploy/templates/plugins/.gitkeep +++ /dev/null diff --git a/deploy/templates/templater/base_dea_template.yaml b/deploy/templates/templater/base_dea_template.yaml deleted file mode 100644 index bdc1b2684..000000000 --- a/deploy/templates/templater/base_dea_template.yaml +++ /dev/null @@ -1,24 +0,0 @@ -############################################################################## -# Copyright (c) 2015, 2016 Ericsson AB and others. -# jonas.bjurel@ericsson.com -# peter.barabas@ericsson.com -# 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 -############################################################################## - -dea-base-config-metadata: - title: 'Deployment Environment Adapter Base configuration' - # DEA API version supported - version: '0.4' - created: 'Fri Jun 10 2016' - comment: 'Rebased for Fuel 9' -environment: - net_segment_type: %{network/networking_parameters/segmentation_type} -fuel: - FUEL_ACCESS: - %{fuel/FUEL_ACCESS} -wanted_release: %{wanted_release} -settings: - %{settings} diff --git a/deploy/templates/virtual_environment/networks/fuel1.xml b/deploy/templates/virtual_environment/networks/fuel1.xml deleted file mode 100644 index 7b2b15423..000000000 --- a/deploy/templates/virtual_environment/networks/fuel1.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel1</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel1' stp='on' delay='0'/> - <ip address='10.20.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/virtual_environment/networks/fuel2.xml b/deploy/templates/virtual_environment/networks/fuel2.xml deleted file mode 100644 index 558788664..000000000 --- a/deploy/templates/virtual_environment/networks/fuel2.xml +++ /dev/null @@ -1,6 +0,0 @@ -<network> - <name>fuel2</name> - <bridge name='fuel2' stp='on' delay='0'/> - <ip address='192.168.0.254' netmask='255.255.255.0'/> -</network> - diff --git a/deploy/templates/virtual_environment/networks/fuel3.xml b/deploy/templates/virtual_environment/networks/fuel3.xml deleted file mode 100644 index 2383e6c1f..000000000 --- a/deploy/templates/virtual_environment/networks/fuel3.xml +++ /dev/null @@ -1,5 +0,0 @@ -<network> - <name>fuel3</name> - <bridge name='fuel3' stp='on' delay='0'/> -</network> - diff --git a/deploy/templates/virtual_environment/networks/fuel4.xml b/deploy/templates/virtual_environment/networks/fuel4.xml deleted file mode 100644 index 5b69f912d..000000000 --- a/deploy/templates/virtual_environment/networks/fuel4.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel4</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel4' stp='on' delay='0'/> - <ip address='172.16.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/virtual_environment/vms/compute.xml b/deploy/templates/virtual_environment/vms/compute.xml deleted file mode 100644 index 0f8a0379b..000000000 --- a/deploy/templates/virtual_environment/vms/compute.xml +++ /dev/null @@ -1,67 +0,0 @@ -<domain type='kvm'> - <name>compute</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <cpu mode='host-model'> - <model fallback='allow'/> - </cpu> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='raw' cache='none' io='native'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/virtual_environment/vms/controller.xml b/deploy/templates/virtual_environment/vms/controller.xml deleted file mode 100644 index 8e239cb70..000000000 --- a/deploy/templates/virtual_environment/vms/controller.xml +++ /dev/null @@ -1,64 +0,0 @@ -<domain type='kvm'> - <name>controller</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='raw' cache='none' io='native'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/virtual_environment/vms/fuel.xml b/deploy/templates/virtual_environment/vms/fuel.xml deleted file mode 100644 index 87f0cd4d8..000000000 --- a/deploy/templates/virtual_environment/vms/fuel.xml +++ /dev/null @@ -1,64 +0,0 @@ -<domain type='kvm'> - <name>fuel</name> - <memory unit='KiB'>4194304</memory> - <currentMemory unit='KiB'>4194304</currentMemory> - <vcpu placement='static'>2</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='hd'/> - <boot dev='cdrom'/> - <bootmenu enable='no'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='block' device='cdrom'> - <driver name='qemu' type='raw'/> - <target dev='hdc' bus='ide'/> - <readonly/> - </disk> - <disk type='file' device='disk'> - <driver name='qemu' type='raw' cache='none' io='native'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='ide' index='0'> - </controller> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='virtio'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'> - <listen type='address' address='127.0.0.1'/> - </graphics> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/virtual_environment_noha/networks/fuel1.xml b/deploy/templates/virtual_environment_noha/networks/fuel1.xml deleted file mode 100644 index 7b2b15423..000000000 --- a/deploy/templates/virtual_environment_noha/networks/fuel1.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel1</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel1' stp='on' delay='0'/> - <ip address='10.20.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/virtual_environment_noha/networks/fuel2.xml b/deploy/templates/virtual_environment_noha/networks/fuel2.xml deleted file mode 100644 index 615c92094..000000000 --- a/deploy/templates/virtual_environment_noha/networks/fuel2.xml +++ /dev/null @@ -1,5 +0,0 @@ -<network> - <name>fuel2</name> - <bridge name='fuel2' stp='on' delay='0'/> -</network> - diff --git a/deploy/templates/virtual_environment_noha/networks/fuel3.xml b/deploy/templates/virtual_environment_noha/networks/fuel3.xml deleted file mode 100644 index 2383e6c1f..000000000 --- a/deploy/templates/virtual_environment_noha/networks/fuel3.xml +++ /dev/null @@ -1,5 +0,0 @@ -<network> - <name>fuel3</name> - <bridge name='fuel3' stp='on' delay='0'/> -</network> - diff --git a/deploy/templates/virtual_environment_noha/networks/fuel4.xml b/deploy/templates/virtual_environment_noha/networks/fuel4.xml deleted file mode 100644 index 5b69f912d..000000000 --- a/deploy/templates/virtual_environment_noha/networks/fuel4.xml +++ /dev/null @@ -1,12 +0,0 @@ -<network> - <name>fuel4</name> - <forward mode='nat'> - <nat> - <port start='1024' end='65535'/> - </nat> - </forward> - <bridge name='fuel4' stp='on' delay='0'/> - <ip address='172.16.0.1' netmask='255.255.255.0'> - </ip> -</network> - diff --git a/deploy/templates/virtual_environment_noha/vms/compute.xml b/deploy/templates/virtual_environment_noha/vms/compute.xml deleted file mode 100644 index 95db87984..000000000 --- a/deploy/templates/virtual_environment_noha/vms/compute.xml +++ /dev/null @@ -1,64 +0,0 @@ -<domain type='kvm'> - <name>compute</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/virtual_environment_noha/vms/controller.xml b/deploy/templates/virtual_environment_noha/vms/controller.xml deleted file mode 100644 index 422aa39e2..000000000 --- a/deploy/templates/virtual_environment_noha/vms/controller.xml +++ /dev/null @@ -1,64 +0,0 @@ -<domain type='kvm'> - <name>controller</name> - <memory unit='KiB'>8388608</memory> - <currentMemory unit='KiB'>8388608</currentMemory> - <vcpu placement='static'>2</vcpu> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='network'/> - <boot dev='hd'/> - <bios rebootTimeout='30000'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='file' device='disk'> - <driver name='qemu' type='qcow2'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel2'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel3'/> - <model type='e1000'/> - </interface> - <interface type='network'> - <source network='fuel4'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> diff --git a/deploy/templates/virtual_environment_noha/vms/fuel.xml b/deploy/templates/virtual_environment_noha/vms/fuel.xml deleted file mode 100644 index e9d454530..000000000 --- a/deploy/templates/virtual_environment_noha/vms/fuel.xml +++ /dev/null @@ -1,65 +0,0 @@ -<domain type='kvm'> - <name>fuel</name> - <memory unit='KiB'>2097152</memory> - <currentMemory unit='KiB'>2097152</currentMemory> - <vcpu placement='static'>2</vcpu> - <resource> - <partition>/machine</partition> - </resource> - <os> - <type arch='x86_64' machine='pc'>hvm</type> - <boot dev='hd'/> - <boot dev='cdrom'/> - <bootmenu enable='no'/> - </os> - <features> - <acpi/> - <apic/> - <pae/> - </features> - <clock offset='utc'/> - <on_poweroff>destroy</on_poweroff> - <on_reboot>restart</on_reboot> - <on_crash>restart</on_crash> - <devices> - <emulator>/usr/bin/kvm</emulator> - <disk type='block' device='cdrom'> - <driver name='qemu' type='qcow2'/> - <target dev='hdc' bus='ide'/> - <readonly/> - </disk> - <disk type='file' device='disk'> - <driver name='qemu' type='raw'/> - <source file='disk.raw'/> - <target dev='vda' bus='virtio'/> - </disk> - <controller type='ide' index='0'> - </controller> - <controller type='usb' index='0'> - </controller> - <controller type='pci' index='0' model='pci-root'/> - <interface type='network'> - <source network='fuel1'/> - <model type='e1000'/> - </interface> - <serial type='pty'> - <target port='0'/> - </serial> - <console type='pty'> - <target type='serial' port='0'/> - </console> - <input type='mouse' bus='ps2'/> - <input type='keyboard' bus='ps2'/> - <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'> - <listen type='address' address='127.0.0.1'/> - </graphics> - <sound model='ich6'> - </sound> - <video> - <model type='cirrus' vram='9216' heads='1'/> - </video> - <memballoon model='virtio'> - </memballoon> - </devices> -</domain> - diff --git a/deploy/transplant_fuel_settings.py b/deploy/transplant_fuel_settings.py deleted file mode 100644 index ee915fdbe..000000000 --- a/deploy/transplant_fuel_settings.py +++ /dev/null @@ -1,118 +0,0 @@ -############################################################################### -# Copyright (c) 2015 Ericsson AB and others. -# szilard.cserey@ericsson.com -# 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 -############################################################################### - - -import sys -import io -import yaml -import re -import os -from dea import DeploymentEnvironmentAdapter - -from common import ( - check_file_exists, - exec_cmd, - log, -) - -ASTUTE_YAML = '/etc/fuel/astute.yaml' -FUEL_BOOTSTRAP_CLI_YAML = '/opt/opnfv/fuel_bootstrap_cli.yaml' - - -def usage(): - print ''' - Usage: - python transplant_fuel_settings.py <deafile> - ''' - - -def parse_arguments(): - if len(sys.argv) != 2: - usage() - sys.exit(1) - dea_file = sys.argv[-1] - check_file_exists(dea_file) - return dea_file - -def write_ifcfg_file(key, fuel_conf): - config = ('BOOTPROTO=none\n' - 'ONBOOT=yes\n' - 'TYPE=Ethernet\n' - 'NM_CONTROLLED=yes\n') - for skey in ('ipaddress', 'device', 'netmask', 'gateway'): - if not fuel_conf[key].get(skey): - log('Warning: missing key %s for %s' % (skey, key)) - config += '%s=\n' % skey.upper() - elif skey == 'ipaddress': - config += 'IPADDR=%s\n' % fuel_conf[key][skey] - else: - config += '%s=%s\n' % (skey.upper(), fuel_conf[key][skey]) - - fname = os.path.join('/etc/sysconfig/network-scripts/', - key.lower().replace('_','-')) - with open(fname, 'wc') as f: - f.write(config) - -def transplant(dea, astute): - fuel_conf = dea.get_fuel_config() - require_network_restart = False - for key in fuel_conf.iterkeys(): - if key == 'ADMIN_NETWORK': - for skey in fuel_conf[key].iterkeys(): - astute[key][skey] = fuel_conf[key][skey] - elif re.match('^IFCFG', key): - log('Adding interface configuration for: %s' % key.lower()) - require_network_restart = True - write_ifcfg_file(key, fuel_conf) - if astute.has_key(key): - astute.pop(key, None) - else: - astute[key] = fuel_conf[key] - if require_network_restart: - admin_ifcfg = '/etc/sysconfig/network-scripts/ifcfg-eth0' - exec_cmd('echo "DEFROUTE=no" >> %s' % admin_ifcfg) - log('At least one interface was reconfigured, restart network manager') - exec_cmd('systemctl restart network') - return astute - - -def transplant_bootstrap(astute, fuel_bootstrap_cli): - if 'BOOTSTRAP' in astute: - for skey in astute['BOOTSTRAP'].iterkeys(): - # FIXME: astute.yaml repos point to public ones instead of - # local mirrors, this filter should be removed when in sync - if skey != 'repos': - fuel_bootstrap_cli[skey] = astute['BOOTSTRAP'][skey] - return fuel_bootstrap_cli - -def main(): - dea_file = parse_arguments() - check_file_exists(ASTUTE_YAML) - # Temporarily disabled for Fuel 10. - # check_file_exists(FUEL_BOOTSTRAP_CLI_YAML) - dea = DeploymentEnvironmentAdapter(dea_file) - log('Reading astute file %s' % ASTUTE_YAML) - with io.open(ASTUTE_YAML) as stream: - astute = yaml.load(stream) - log('Initiating transplant') - transplant(dea, astute) - with io.open(ASTUTE_YAML, 'w') as stream: - yaml.dump(astute, stream, default_flow_style=False) - log('Transplant done') - # Update bootstrap config yaml with info from DEA/astute.yaml - # Temporarily disabled for Fuel 10. - # with io.open(FUEL_BOOTSTRAP_CLI_YAML) as stream: - # fuel_bootstrap_cli = yaml.load(stream) - # transplant_bootstrap(astute, fuel_bootstrap_cli) - # with io.open(FUEL_BOOTSTRAP_CLI_YAML, 'w') as stream: - # yaml.dump(fuel_bootstrap_cli, stream, default_flow_style=False) - - -if __name__ == '__main__': - main() |