Integrate os-nosdn-osm scenario 45/58945/22
authorFatih Degirmenci <fdegir@gmail.com>
Sat, 23 Jun 2018 23:04:10 +0000 (01:04 +0200)
committerFatih Degirmenci <fdegir@gmail.com>
Thu, 9 Aug 2018 10:31:08 +0000 (12:31 +0200)
This change integrates os-nosdn-osm scenario.

The installation of OSM is done as post-deployment. This is achieved by
the addition of the new playbook named post-deployment.yml in scenario
role folder.

This mechanism is available for all OpenStack scenarios. If anything
needs to be done for a specific scenario as part of the post-deployment,
it can be achieved by creating playbook post-deployment.yml.

If post-deployment.yml exists in scenario role, the framework will run
it once the regular deployment playbooks are run successfully. If the
file does not exist, it will be skipped.

The location of the post-deployment.yml is
    releng-xci-scenarios/<scenario>/role/<scenario>/tasks/post-deployment.yml

This is only implemented for OpenStack scenarios currently and similar
mechanism is needed for K8S scenarios as well which will be implemented
in a separate change.

installer-type:osa
deploy-scenario:os-nosdn-osm

Change-Id: I16780abffca39699eb2f38f662479f0e4d551504
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
xci/config/env-vars
xci/config/pinned-versions
xci/installer/osa/deploy.sh
xci/installer/osa/playbooks/post-deployment.yml [new file with mode: 0644]
xci/opnfv-scenario-requirements.yml
xci/var/opnfv.yml

index fe75cb8..2338882 100755 (executable)
@@ -11,6 +11,7 @@ export OPENSTACK_OSA_OPENRC_GIT_URL=${OPENSTACK_OSA_OPENRC_GIT_URL:-https://git.
 export KUBESPRAY_GIT_URL=${KUBESPRAY_GIT_URL:-https://github.com/kubernetes-incubator/kubespray.git}
 export OPENSTACK_OSA_HAPROXY_GIT_URL=${OPENSTACK_OSA_HAPROXY_GIT_URL:-https://git.openstack.org/openstack/openstack-ansible-haproxy_server}
 export KEEPALIVED_GIT_URL=${KEEPALIVED_GIT_URL:-https://github.com/evrardjp/ansible-keepalived}
+export OSM_DEVOPS_GIT_URL=${OSM_DEVOPS_GIT_URL:-https://osm.etsi.org/gerrit/osm/devops.git}
 
 # Configuration
 export OPENSTACK_OSA_ETC_PATH=/etc/openstack_deploy
index 5ef0c7c..15c3c8b 100755 (executable)
@@ -47,3 +47,7 @@ export HAPROXY_VERSION=$(grep -E '.*name: haproxy_server' -A 3 \
        | tail -n1 | sed -n 's/\(^.*: \)\([0-9a-z].*$\)/\2/p')
 # HEAD of kubspray "master" as of 16.05.2018
 export KUBESPRAY_VERSION=${KUBESPRAY_VERSION:-"38e727dbe1bdf5316fae8d645718cc8279fbda20"}
+# use tagged version of OSM devops repo until the integration is done
+# also, this version is not OSM version. This needs to be looked into for
+# specifying exact version for OSM itself.
+export OSM_DEVOPS_VERSION=${OSM_DEVOPS_VERSION:-"v4.0.1"}
index 4542a4e..fd794d0 100755 (executable)
@@ -68,7 +68,6 @@ echo "Info: Configured opnfv deployment host for openstack-ansible"
 #-------------------------------------------------------------------------------
 # This playbook is only run for the all flavors except aio since aio is configured
 # by an upstream script.
-
 # This playbook
 # - adds public keys to target hosts
 # - configures network
@@ -181,4 +180,19 @@ echo "Info: Admin username -  ${USERNAME##*=}"
 echo "Info: Admin password - ${PASSWORD##*=}"
 echo "Info: It is recommended to change the default password."
 
+#-------------------------------------------------------------------------------
+# Execute post-installation tasks
+#-------------------------------------------------------------------------------
+# Playbook post.yml is used in order to execute any post-deployment tasks that
+# are required for the scenario under test.
+#-------------------------------------------------------------------------------
+echo "-----------------------------------------------------------------------"
+echo "Info: Running post-deployment scenario role"
+echo "-----------------------------------------------------------------------"
+cd $OSA_XCI_PLAYBOOKS
+ansible-playbook ${XCI_ANSIBLE_PARAMS} -i ${XCI_PLAYBOOKS}/dynamic_inventory.py \
+    post-deployment.yml
+echo "-----------------------------------------------------------------------"
+echo
+echo "Info: Post-deployment scenario role execution done"
 # vim: set ts=4 sw=4 expandtab:
diff --git a/xci/installer/osa/playbooks/post-deployment.yml b/xci/installer/osa/playbooks/post-deployment.yml
new file mode 100644 (file)
index 0000000..c0cd017
--- /dev/null
@@ -0,0 +1,65 @@
+---
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2018 Ericsson AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+- hosts: opnfv
+  remote_user: root
+  vars_files:
+    - "{{ xci_path }}/xci/var/opnfv.yml"
+    - "{{ xci_path }}/xci/installer/osa/files/openstack_services.yml"
+
+  environment:
+    http_proxy: "{{ lookup('env','http_proxy') }}"
+    https_proxy: "{{ lookup('env','https_proxy') }}"
+    no_proxy: "{{ lookup('env','no_proxy') }}"
+    HTTP_PROXY: "{{ lookup('env','http_proxy') }}"
+    HTTPS_PROXY: "{{ lookup('env','https_proxy') }}"
+    NO_PROXY: "{{ lookup('env','no_proxy') }}"
+  pre_tasks:
+    - name: Load distribution variables
+      include_vars:
+        file: "{{ item }}"
+      with_items:
+        - "{{ xci_path }}/xci/var/{{ ansible_os_family }}.yml"
+    - name: Set facts for remote deployment
+      set_fact:
+        remote_xci_scenario_path: "{{ ansible_env.HOME }}/releng-xci/.cache/repos/scenarios/{{ deploy_scenario }}/scenarios/{{ deploy_scenario }}"
+
+  roles:
+    - role: peru.proxy_settings
+      proxy_settings_http_proxy: "{{ lookup('env','http_proxy') }}"
+      proxy_settings_https_proxy: "{{ lookup('env','https_proxy') }}"
+      proxy_settings_ftp_proxy: "{{ lookup('env','ftp_proxy') }}"
+      proxy_settings_no_proxy: "{{ lookup('env','no_proxy') }}"
+
+  tasks:
+    - name: "Configure http_proxy_env_url"
+      lineinfile:
+        path: "{{openstack_osa_etc_path}}/user_variables_proxy.yml"
+        regexp: "^http_proxy_env_url:.*"
+        line: "{{ 'http_proxy_env_url: ' + lookup('env','http_proxy') }}"
+      when:
+        - lookup('env','http_proxy') != ""
+
+    - name: Reload XCI deployment host facts
+      setup:
+        filter: ansible_local
+        gather_subset: "!all"
+      delegate_to: 127.0.0.1
+
+    - name: Check if any post-deployment task defined for {{ deploy_scenario }} role
+      stat:
+        path: "{{ remote_xci_scenario_path }}/role/{{ deploy_scenario }}/tasks/post-deployment.yml"
+      register: post_deployment_yml
+
+    - name: Execute post-deployment tasks of {{ deploy_scenario }} role
+      include_role:
+        name: "{{ hostvars['opnfv'].ansible_local.xci.scenarios.role }}"
+        tasks_from: post-deployment
+      when:
+        - post_deployment_yml.stat.exists
index a43127b..1c7c8d5 100644 (file)
         - ubuntu
         - centos
 
+- scenario: os-nosdn-osm
+  scm: git
+  src: https://gerrit.opnfv.org/gerrit/releng-xci-scenarios
+  version: master
+  role: scenarios/os-nosdn-osm/role/os-nosdn-osm
+  installers:
+    - installer: osa
+      flavors:
+        - mini
+      distros:
+        - ubuntu
+
 - scenario: os-odl-nofeature
   scm: git
   src: https://gerrit.opnfv.org/gerrit/releng-xci-scenarios
index e7e3b76..269fc10 100644 (file)
@@ -30,6 +30,10 @@ kubespray_git_url: "{{ lookup('env','KUBESPRAY_GIT_URL') }}"
 kubespray_version: "{{ lookup('env','KUBESPRAY_VERSION') }}"
 xci_kube_ansible_pip_version: "{{ lookup('env','XCI_KUBE_ANSIBLE_PIP_VERSION') }}"
 
+# osm variables
+osm_devops_git_url: "{{ lookup('env','OSM_DEVOPS_GIT_URL') }}"
+osm_devops_version: "{{ lookup('env','OSM_DEVOPS_VERSION') }}"
+
 # variables for other components
 keepalived_git_url: "{{ lookup('env','KEEPALIVED_GIT_URL') }}"
 haproxy_version: "{{ lookup('env','HAPROXY_VERSION') }}"