aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.yamllint4
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/README61
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/files/ansible-role-requirements.yml193
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/files/ha/user_variables.yml51
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/files/mini/user_variables.yml50
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/files/noha/user_variables.yml50
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/defaults/repo_packages/opendaylight.yml22
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/neutron.yml97
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/nova.yml115
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/tasks/add-sfc-repos-and-inventory.yml16
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/tasks/copy-OSA-files.yml12
-rw-r--r--scenarios/os-odl-sfc/role/os-odl-sfc/tasks/main.yml15
12 files changed, 686 insertions, 0 deletions
diff --git a/.yamllint b/.yamllint
new file mode 100644
index 00000000..a10bfe92
--- /dev/null
+++ b/.yamllint
@@ -0,0 +1,4 @@
+extends: default
+
+ignore:
+ scenarios/
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/README b/scenarios/os-odl-sfc/role/os-odl-sfc/README
new file mode 100644
index 00000000..1104b339
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/README
@@ -0,0 +1,61 @@
+This is the role which deploys the os-odl-sfc scenarios in xci.
+
+This role currently works with:
+
+- OpenStack stable/ocata
+- ODL Nitrogen RC1
+- OVS+NSH patch
+
+# SCENARIOS #
+
+## os-odl-sfc-noha ##
+
+To run os-odl-sfc-noha you should export the following variables before
+running xci-deploy.sh:
+
+export XCI_FLAVOR=noha
+export OPNFV_SCENARIO=os-odl-sfc
+export OPENSTACK_OSA_VERSION=stable/ocata
+export VM_MEMORY_SIZE=16384
+
+## os-odl-sfc-ha ##
+
+To run os-odl-sfc-ha you should export the following variables before
+running xci-deploy.sh:
+
+export XCI_FLAVOR=ha
+export OPNFV_SCENARIO=os-odl-sfc
+export OPENSTACK_OSA_VERSION=stable/ocata
+export VM_MEMORY_SIZE=20480
+
+
+# LIMITATIONS #
+
+1 - It is using a private branch for the os-neutron role. This is because
+there are several patches pending to be upstreamed. This is the branch we
+are using:
+
+https://github.com/mardim91/openstack-ansible-os_neutron/tree/ocata-backport-automated-twentyfourth-august
+
+We will stop doing this as soon as the patches are merged upstream. For example:
+
+https://review.openstack.org/#/c/496231/
+https://review.openstack.org/#/c/497458/
+
+2 - Tacker is missing in this integration. Hopefully, it will be added in the
+following days
+
+
+# IN PROGRESS/FUTURE #
+
+1 - Adding tacker to the scenarios
+
+https://gerrit.opnfv.org/gerrit/#/c/39511/
+
+2 - Supporting stable/Pike
+
+Waiting for the release to be ready
+
+3 - Supporting ODL Nitrogen SR1
+
+Waiting for the release to be ready (7th of September)
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/files/ansible-role-requirements.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/files/ansible-role-requirements.yml
new file mode 100644
index 00000000..61848f82
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/files/ansible-role-requirements.yml
@@ -0,0 +1,193 @@
+---
+- name: ansible-hardening
+ scm: git
+ src: https://git.openstack.org/openstack/ansible-hardening
+ version: f9299c59730b0c5332e80ec88c0296ccc5c207f4
+- name: apt_package_pinning
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-apt_package_pinning
+ version: d5c0d7e8d21fc1539cc043097e23851296e2dd95
+- name: pip_install
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-pip_install
+ version: 2bc7e27c2b36e8cd0265053b446ee5f5cc4f4f1d
+- name: galera_client
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-galera_client
+ version: 1d3cdcd33c75a668ac3be046ac53fe1842780058
+- name: galera_server
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-galera_server
+ version: c6d36689655586971fbd4be8a6cba2f54b5f44b3
+- name: ceph_client
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-ceph_client
+ version: 029abd28ded1e52300cfd3093060e1fc5e9574fd
+- name: haproxy_server
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-haproxy_server
+ version: 4874ef7e218e0bc29f5ccca3c16f704a85f0c0b0
+- name: keepalived
+ scm: git
+ src: https://github.com/evrardjp/ansible-keepalived
+ version: 3.0.1
+- name: lxc_container_create
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-lxc_container_create
+ version: 05ed7dfa57b7ead13f63edb72918241e8ef1916e
+- name: lxc_hosts
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-lxc_hosts
+ version: d22208afede2fdf1b070f3236016ea3f1e3fa49c
+- name: memcached_server
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-memcached_server
+ version: 5363432f58334823f7e6c6c88617bb908ca48359
+- name: openstack_hosts
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-openstack_hosts
+ version: 8a9dd8cf281f5d1199fc3cbaa635dde91b1037a0
+- name: os_keystone
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_keystone
+ version: 4ed06e106a83160d76b56edda09c7ced1caf104a
+- name: openstack_openrc
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-openstack_openrc
+ version: dfdf65b3db7c6240fa173a3a62af4e5028023626
+- name: os_aodh
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_aodh
+ version: aebf86ae0dafae3876a6faab7a0c55010c055f53
+- name: os_barbican
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_barbican
+ version: 91c62d5d2815bc53940e0048f7c9b65bd31e1a7d
+- name: os_ceilometer
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_ceilometer
+ version: 1d709bd6eace68bfd7fb7d1e52df8d5b6f28810b
+- name: os_cinder
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_cinder
+ version: 3e8a5bb467fbef16cc2ea3ac5217b4dd0a0e0a8c
+- name: os_glance
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_glance
+ version: 802c3dcad5b9f578fdac969e327bfece75509ef2
+- name: os_gnocchi
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_gnocchi
+ version: 6c3ffedc0e523163042cf167b1077ddc11136b4c
+- name: os_heat
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_heat
+ version: 300f15ee65d2e157a0304caa10fcac279fbd5f18
+- name: os_horizon
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_horizon
+ version: e2e28afd60f92238be9d42abaa08260ade5c60eb
+- name: os_ironic
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_ironic
+ version: b217195f8ae7a5a39eba7d633e625b0c3b0c63b1
+- name: os_magnum
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_magnum
+ version: dfb38385242c9e7f8c04b4485d793055f892ee17
+- name: os_trove
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_trove
+ version: 93913b6af52bbf55d224b1b0b8ce53e3a8c84398
+- name: os_neutron
+ scm: git
+ src: https://github.com/mardim91/openstack-ansible-os_neutron
+ version: ocata-backport-automated-twentyfourth-august
+- name: os_nova
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_nova
+ version: 991d3295fc2f8ecb3cfd46f680ceb1816c763291
+- name: os_rally
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_rally
+ version: 190522159369ddfec4c8df72bb2a3da351cb841d
+- name: os_sahara
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_sahara
+ version: 4a224f899fbbb68be31824a265fabcb92aa873a4
+- name: os_swift
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_swift
+ version: 5233a587f242ae5ccab7d7563a33a9f96556a9d6
+- name: os_tempest
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_tempest
+ version: de52855d1215a96fde4c060725502fd172c3d949
+- name: plugins
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-plugins
+ version: 9c26a443a977e73524d9e4c30e018596ce5e48bd
+- name: rabbitmq_server
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-rabbitmq_server
+ version: b7247285e563e24ca31be1decb6f5b3bf88de69d
+- name: repo_build
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-repo_build
+ version: ad719d992b366be8fad11493edcb92e644d92ecc
+- name: repo_server
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-repo_server
+ version: 96739ea44eeb8153676433311fc1824e2a763c72
+- name: rsyslog_client
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-rsyslog_client
+ version: 5f5275720d13bd22945348751131c39877b731ab
+- name: rsyslog_server
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-rsyslog_server
+ version: a7d4b0df2e9ed3c2a1414613e96c7c9db0f2db60
+- name: sshd
+ scm: git
+ src: https://github.com/willshersystems/ansible-sshd
+ version: 0.4.5
+- name: bird
+ scm: git
+ src: https://github.com/logan2211/ansible-bird
+ version: '1.2'
+- name: etcd
+ scm: git
+ src: https://github.com/logan2211/ansible-etcd
+ version: '1.2'
+- name: unbound
+ scm: git
+ src: https://github.com/logan2211/ansible-unbound
+ version: '1.3'
+- name: resolvconf
+ scm: git
+ src: https://github.com/logan2211/ansible-resolvconf
+ version: '1.2'
+- name: os_designate
+ scm: git
+ src: https://git.openstack.org/openstack/openstack-ansible-os_designate
+ version: 2d1d0a75fb30b95588b943cfa3e7c830004999f4
+- name: ceph.ceph-common
+ scm: git
+ src: https://github.com/ceph/ansible-ceph-common
+ version: v2.2.4
+- name: ceph.ceph-docker-common
+ scm: git
+ src: https://github.com/ceph/ansible-ceph-docker-common
+ version: ca86fd0ef6d24aa2c750a625acdcb8012c374aa0
+- name: ceph-mon
+ scm: git
+ src: https://github.com/ceph/ansible-ceph-mon
+ version: v2.2.4
+- name: ceph-osd
+ scm: git
+ src: https://github.com/ceph/ansible-ceph-osd
+ version: v2.2.4
+- name: opendaylight
+ scm: git
+ src: https://git.opendaylight.org/gerrit/p/integration/packaging/ansible-opendaylight.git
+ version: cf095a4f71ff054f305f14ffdef7cdd7233e3d71
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/files/ha/user_variables.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/files/ha/user_variables.yml
new file mode 100644
index 00000000..1f2370eb
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/files/ha/user_variables.yml
@@ -0,0 +1,51 @@
+---
+# Copyright 2014, Rackspace US, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# ##
+# ## This file contains commonly used overrides for convenience. Please inspect
+# ## the defaults for each role to find additional override options.
+# ##
+
+# # Debug and Verbose options.
+debug: false
+
+haproxy_keepalived_external_vip_cidr: "192.168.122.220/32"
+haproxy_keepalived_internal_vip_cidr: "172.29.236.222/32"
+haproxy_keepalived_external_interface: br-vlan
+haproxy_keepalived_internal_interface: br-mgmt
+gnocchi_db_sync_options: ""
+
+ovs_nsh_support: true
+cluster: true
+
+# Ensure the openvswitch kernel module is loaded
+# openstack_host_specific_kernel_modules:
+# - name: "openvswitch"
+# pattern: "CONFIG_OPENVSWITCH"
+# group: "network_hosts"
+
+# Use OpenDaylight SDN Controller
+neutron_plugin_type: "ml2.opendaylight"
+neutron_opendaylight_conf_ini_overrides:
+ ml2_odl:
+ username: "admin"
+ password: "admin"
+ port_binding_controller: "pseudo-agentdb-binding"
+ url: "http://{{ internal_lb_vip_address }}:8080/controller/nb/v2/neutron"
+neutron_plugin_base:
+ - odl-router_v2
+ - metering
+ - networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin
+ - networking_sfc.services.sfc.plugin.SfcPlugin
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/files/mini/user_variables.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/files/mini/user_variables.yml
new file mode 100644
index 00000000..3111a0f0
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/files/mini/user_variables.yml
@@ -0,0 +1,50 @@
+---
+# Copyright 2014, Rackspace US, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# ##
+# ## This file contains commonly used overrides for convenience. Please inspect
+# ## the defaults for each role to find additional override options.
+# ##
+
+# # Debug and Verbose options.
+debug: false
+
+haproxy_keepalived_external_vip_cidr: "192.168.122.3/32"
+haproxy_keepalived_internal_vip_cidr: "172.29.236.11/32"
+haproxy_keepalived_external_interface: br-vlan
+haproxy_keepalived_internal_interface: br-mgmt
+gnocchi_db_sync_options: ""
+
+ovs_nsh_support: true
+
+# Ensure the openvswitch kernel module is loaded
+# openstack_host_specific_kernel_modules:
+# - name: "openvswitch"
+# pattern: "CONFIG_OPENVSWITCH"
+# group: "network_hosts"
+
+# Use OpenDaylight SDN Controller
+neutron_plugin_type: "ml2.opendaylight"
+neutron_opendaylight_conf_ini_overrides:
+ ml2_odl:
+ username: "admin"
+ password: "admin"
+ port_binding_controller: "pseudo-agentdb-binding"
+ url: "http://{{ hostvars[groups['neutron_server'][0]]['ansible_eth1']['ipv4']['address'] }}:8080/controller/nb/v2/neutron"
+neutron_plugin_base:
+ - odl-router_v2
+ - metering
+ - networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin
+ - networking_sfc.services.sfc.plugin.SfcPlugin
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/files/noha/user_variables.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/files/noha/user_variables.yml
new file mode 100644
index 00000000..e37d6906
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/files/noha/user_variables.yml
@@ -0,0 +1,50 @@
+---
+# Copyright 2014, Rackspace US, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# ##
+# ## This file contains commonly used overrides for convenience. Please inspect
+# ## the defaults for each role to find additional override options.
+# ##
+
+# # Debug and Verbose options.
+debug: false
+
+haproxy_keepalived_external_vip_cidr: "192.168.122.3/32"
+haproxy_keepalived_internal_vip_cidr: "172.29.236.11/32"
+haproxy_keepalived_external_interface: br-vlan
+haproxy_keepalived_internal_interface: br-mgmt
+gnocchi_db_sync_options: ""
+
+ovs_nsh_support: true
+
+# Ensure the openvswitch kernel module is loaded
+#openstack_host_specific_kernel_modules:
+# - name: "openvswitch"
+# pattern: "CONFIG_OPENVSWITCH"
+# group: "network_hosts"
+
+# Use OpenDaylight SDN Controller
+neutron_plugin_type: "ml2.opendaylight"
+neutron_opendaylight_conf_ini_overrides:
+ ml2_odl:
+ username: "admin"
+ password: "admin"
+ port_binding_controller: "pseudo-agentdb-binding"
+ url: "http://{{ hostvars[groups['neutron_server'][0]]['ansible_eth1']['ipv4']['address'] }}:8080/controller/nb/v2/neutron"
+neutron_plugin_base:
+ - odl-router_v2
+ - metering
+ - networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin
+ - networking_sfc.services.sfc.plugin.SfcPlugin
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/defaults/repo_packages/opendaylight.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/defaults/repo_packages/opendaylight.yml
new file mode 100644
index 00000000..2e1a542f
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/defaults/repo_packages/opendaylight.yml
@@ -0,0 +1,22 @@
+---
+# Copyright 2017, Ericsson AB
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+networking_odl_git_repo: https://git.openstack.org/openstack/networking-odl
+networking_odl_git_install_branch: stable/ocata
+networking_odl_project_group: neutron_all
+
+networking_sfc_git_repo: https://git.openstack.org/openstack/networking-sfc
+networking_sfc_git_install_branch: stable/ocata
+networking_sfc_project_group: neutron_all
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/neutron.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/neutron.yml
new file mode 100644
index 00000000..fd74d8ac
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/neutron.yml
@@ -0,0 +1,97 @@
+---
+# Copyright 2014, Rackspace US, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+component_skel:
+ neutron_agent:
+ belongs_to:
+ - neutron_all
+ neutron_dhcp_agent:
+ belongs_to:
+ - neutron_all
+ neutron_linuxbridge_agent:
+ belongs_to:
+ - neutron_all
+ neutron_openvswitch_agent:
+ belongs_to:
+ - neutron_all
+ neutron_metering_agent:
+ belongs_to:
+ - neutron_all
+ neutron_l3_agent:
+ belongs_to:
+ - neutron_all
+ neutron_lbaas_agent:
+ belongs_to:
+ - neutron_all
+ neutron_bgp_dragent:
+ belongs_to:
+ - neutron_all
+ neutron_metadata_agent:
+ belongs_to:
+ - neutron_all
+ neutron_sriov_nic_agent:
+ belongs_to:
+ - neutron_all
+ neutron_server:
+ belongs_to:
+ - neutron_all
+ opendaylight:
+ belongs_to:
+ - neutron_all
+ openvswitch_nsh:
+ belongs_to:
+ - neutron_all
+
+container_skel:
+ neutron_agents_container:
+ belongs_to:
+ - network_containers
+ contains:
+ - neutron_agent
+ - neutron_metadata_agent
+ - neutron_metering_agent
+ - neutron_linuxbridge_agent
+ - neutron_openvswitch_agent
+ - openvswitch_nsh
+ - neutron_l3_agent
+ - neutron_dhcp_agent
+ - neutron_lbaas_agent
+ - neutron_bgp_dragent
+ properties:
+ service_name: neutron
+ neutron_server_container:
+ belongs_to:
+ - network_containers
+ contains:
+ - neutron_server
+ - opendaylight
+ properties:
+ service_name: neutron
+ neutron_networking_container:
+ belongs_to:
+ - network_containers
+ contains:
+ - openvswitch_nsh
+ properties:
+ is_metal: true
+
+
+physical_skel:
+ network_containers:
+ belongs_to:
+ - all_containers
+ network_hosts:
+ belongs_to:
+ - hosts
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/nova.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/nova.yml
new file mode 100644
index 00000000..1aee092e
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/files/openstack-ansible/playbooks/inventory_odl/env.d/nova.yml
@@ -0,0 +1,115 @@
+---
+# Copyright 2014, Rackspace US, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+component_skel:
+ nova_api_metadata:
+ belongs_to:
+ - nova_all
+ nova_api_os_compute:
+ belongs_to:
+ - nova_all
+ nova_api_placement:
+ belongs_to:
+ - nova_all
+ nova_compute:
+ belongs_to:
+ - nova_all
+ nova_conductor:
+ belongs_to:
+ - nova_all
+ nova_scheduler:
+ belongs_to:
+ - nova_all
+ nova_console:
+ belongs_to:
+ - nova_all
+
+
+container_skel:
+ nova_api_metadata_container:
+ belongs_to:
+ - compute-infra_containers
+ - os-infra_containers
+ contains:
+ - nova_api_metadata
+ properties:
+ service_name: nova
+ nova_api_os_compute_container:
+ belongs_to:
+ - compute-infra_containers
+ - os-infra_containers
+ contains:
+ - nova_api_os_compute
+ properties:
+ service_name: nova
+ nova_api_placement_container:
+ belongs_to:
+ - compute-infra_containers
+ - os-infra_containers
+ contains:
+ - nova_api_placement
+ properties:
+ service_name: nova
+ nova_compute_container:
+ belongs_to:
+ - compute_containers
+ contains:
+ - neutron_linuxbridge_agent
+ - neutron_openvswitch_agent
+ - openvswitch_nsh
+ - neutron_sriov_nic_agent
+ - nova_compute
+ properties:
+ is_metal: true
+ service_name: nova
+ nova_conductor_container:
+ belongs_to:
+ - compute-infra_containers
+ - os-infra_containers
+ contains:
+ - nova_conductor
+ properties:
+ service_name: nova
+ nova_scheduler_container:
+ belongs_to:
+ - compute-infra_containers
+ - os-infra_containers
+ contains:
+ - nova_scheduler
+ properties:
+ service_name: nova
+ nova_console_container:
+ belongs_to:
+ - compute-infra_containers
+ - os-infra_containers
+ contains:
+ - nova_console
+ properties:
+ service_name: nova
+
+
+physical_skel:
+ compute-infra_containers:
+ belongs_to:
+ - all_containers
+ compute-infra_hosts:
+ belongs_to:
+ - hosts
+ compute_containers:
+ belongs_to:
+ - all_containers
+ compute_hosts:
+ belongs_to:
+ - hosts
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/add-sfc-repos-and-inventory.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/add-sfc-repos-and-inventory.yml
new file mode 100644
index 00000000..1a70c388
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/add-sfc-repos-and-inventory.yml
@@ -0,0 +1,16 @@
+---
+
+- name: Add networking-odl and networking-sfc repos
+ copy:
+ src: openstack-ansible/playbooks/defaults/repo_packages/opendaylight.yml
+ dest: "{{OPENSTACK_OSA_PATH}}/playbooks/defaults/repo_packages/opendaylight.yml"
+
+- name: Provide nova inventory which adds OVS-NSH hosts
+ copy:
+ src: openstack-ansible/playbooks/inventory_odl/env.d/nova.yml
+ dest: "{{OPENSTACK_OSA_PATH}}/playbooks/inventory/env.d/nova.yml"
+
+- name: Provide neutron inventory which adds ODL hosts
+ copy:
+ src: openstack-ansible/playbooks/inventory_odl/env.d/neutron.yml
+ dest: "{{OPENSTACK_OSA_PATH}}/playbooks/inventory/env.d/neutron.yml"
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/copy-OSA-files.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/copy-OSA-files.yml
new file mode 100644
index 00000000..3821d9d6
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/copy-OSA-files.yml
@@ -0,0 +1,12 @@
+---
+#
+
+- name: copy user_variables.yml
+ copy:
+ src: "{{XCI_FLAVOR}}/user_variables.yml"
+ dest: "{{OPENSTACK_OSA_ETC_PATH}}/user_variables.yml"
+
+- name: copy OPNFV role requirements
+ copy:
+ src: "ansible-role-requirements.yml"
+ dest: "{{OPENSTACK_OSA_PATH}}/ansible-role-requirements.yml"
diff --git a/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/main.yml b/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/main.yml
new file mode 100644
index 00000000..f1fdcf2a
--- /dev/null
+++ b/scenarios/os-odl-sfc/role/os-odl-sfc/tasks/main.yml
@@ -0,0 +1,15 @@
+---
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2017 SUSE Linux GmbH
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+- name: Add SFC repos and inventory
+ include: add-sfc-repos-and-inventory.yml
+
+- name: Copy the OSA not-yet-upstreamed files
+ include: copy-OSA-files.yml