Merge "Remove OpenDaylight role"

This commit is contained in:
Zuul 2019-11-18 15:30:39 +00:00 committed by Gerrit Code Review
commit c4818ffd16
53 changed files with 23 additions and 1242 deletions

View File

@ -212,7 +212,7 @@ migration_interface_address: "{{ 'migration' | kolla_address }}"
tunnel_interface_address: "{{ 'tunnel' | kolla_address }}"
octavia_network_interface_address: "{{ 'octavia_network' | kolla_address }}"
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_dvs, opendaylight ]
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_dvs ]
neutron_plugin_agent: "openvswitch"
# Valid options are [ internal, infoblox ]
@ -470,20 +470,6 @@ zookeeper_quorum_port: "3888"
zun_api_port: "9517"
zun_wsproxy_port: "6784"
opendaylight_clustering_port: "2550"
opendaylight_restconf_port: "8087"
opendaylight_restconf_port_backup: "8182"
opendaylight_haproxy_restconf_port: "8088"
opendaylight_haproxy_restconf_port_backup: "8183"
opendaylight_jetty_conf_port: "8543"
opendaylight_jetty_conf2_port: "8443"
opendaylight_tomcat_port: "8282"
opendaylight_tomcat_redirect_port: "8663"
opendaylight_karaf_ssh_port: "8101"
opendaylight_openflow_port: "6653"
opendaylight_ovsdb_port: "6641"
opendaylight_websocket_port: "8185"
vitrage_api_port: "8999"
public_protocol: "{{ 'https' if kolla_enable_tls_external | bool else 'http' }}"
@ -649,7 +635,6 @@ enable_nova_serialconsole_proxy: "no"
enable_nova_ssh: "yes"
enable_octavia: "no"
enable_onos: "no"
enable_opendaylight: "no"
enable_openvswitch: "{{ enable_neutron | bool and neutron_plugin_agent != 'linuxbridge' }}"
enable_ovs_dpdk: "no"
enable_osprofiler: "no"
@ -906,7 +891,7 @@ neutron_tenant_network_types: "vxlan"
# valid values: ["dvr", "dvr_no_external"]
neutron_compute_dvr_mode: "dvr"
computes_need_external_bridge: "{{ enable_neutron_dvr | bool and neutron_compute_dvr_mode == 'dvr' or enable_neutron_provider_networks | bool or enable_opendaylight | bool and neutron_plugin_agent != 'vmware_dvs' and not enable_onos | bool }}"
computes_need_external_bridge: "{{ (enable_neutron_dvr | bool and neutron_compute_dvr_mode == 'dvr') or enable_neutron_provider_networks | bool }}"
# Default DNS resolvers for virtual networks
neutron_dnsmasq_dns_servers: "1.1.1.1,8.8.8.8,8.8.4.4"
@ -1044,19 +1029,6 @@ vmware_vcenter_host_username: "username"
vmware_vcenter_cluster_name: "cluster-1"
vmware_vcenter_insecure: "True"
######################
# OpenDaylight
######################
opendaylight_mechanism_driver: "opendaylight_v2"
opendaylight_l3_service_plugin: "odl-router_v2"
opendaylight_acl_impl: "learn"
enable_opendaylight_qos: "no"
enable_opendaylight_l3: "{{ enable_opendaylight }}"
enable_opendaylight_legacy_netvirt_conntrack: "no"
opendaylight_port_binding_type: "pseudo-agentdb-binding"
opendaylight_features: "odl-mdsal-apidocs,odl-netvirt-openstack"
opendaylight_allowed_network_types: '"flat", "vlan", "vxlan"'
#######################################
# XenAPI - Support XenAPI for XenServer
#######################################

View File

@ -118,9 +118,6 @@ network
compute
manila-share
[opendaylight:children]
network
[cinder:children]
control

View File

@ -143,9 +143,6 @@ network
compute
manila-share
[opendaylight:children]
network
[cinder:children]
control

View File

@ -93,7 +93,6 @@
- "05-libvirt"
- "06-zookeeper"
- "07-kafka"
- "08-opendaylight"
- "09-monasca"
notify:
- Restart fluentd container
@ -317,7 +316,6 @@
- { name: "neutron", enabled: "{{ enable_neutron }}" }
- { name: "nova", enabled: "{{ enable_nova }}" }
- { name: "octavia", enabled: "{{ enable_octavia }}" }
- { name: "opendaylight", enabled: "{{ enable_opendaylight }}" }
- { name: "outward-rabbitmq", enabled: "{{ enable_outward_rabbitmq }}" }
- { name: "panko", enabled: "{{ enable_panko }}" }
- { name: "qinling", enabled: "{{ enable_qinling }}" }

View File

@ -1,10 +0,0 @@
<source>
@type tail
path /var/log/kolla/opendaylight/karaf.log
pos_file /var/run/{{ fluentd_binary }}/opendaylight.pos
tag infra.opendaylight
format multiline
format_firstline /\d{4}-\d{2}-\d{2}/
format1 /^(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\,\d{3})\s+\|\s+(?<level>[^|\s]+)\s+\|\s+(?<thread>[^|]+)\s+\|\s+(?<class>[\d -}]+)\s+\|\s+(?<bundle>[^|]+)\s+\|\s+(?<msg>.*)/
time_format %Y-%m-%d %H:%M:%S,%L
</source>

View File

@ -1,3 +0,0 @@
"/var/log/kolla/opendaylight/*.log"
{
}

View File

@ -43,7 +43,6 @@
( 'neutron', enable_neutron ),
( 'nova', enable_nova ),
( 'octavia', enable_octavia ),
( 'opendaylight', enable_opendaylight ),
( 'outward-rabbitmq', enable_outward_rabbitmq ),
( 'panko', enable_panko ),
( 'qinling', enable_qinling ),

View File

@ -93,7 +93,7 @@ neutron_services:
container_name: "neutron_l3_agent"
image: "{{ neutron_l3_agent_image_full }}"
privileged: True
enabled: "{{ neutron_plugin_agent not in ['vmware_nsxv', 'vmware_nsxv3', 'vmware_dvs'] and not enable_opendaylight_l3 | bool and not enable_onos | bool }}"
enabled: "{{ neutron_plugin_agent not in ['vmware_nsxv', 'vmware_nsxv3', 'vmware_dvs'] and not enable_onos | bool }}"
environment:
KOLLA_LEGACY_IPTABLES: "{{ neutron_legacy_iptables | bool | lower }}"
host_in_groups: >-
@ -198,7 +198,7 @@ neutron_openvswitch_agent_image: "{{ docker_registry ~ '/' if docker_registry el
neutron_openvswitch_agent_tag: "{{ neutron_tag }}"
neutron_openvswitch_agent_image_full: "{{ neutron_openvswitch_agent_image }}:{{ neutron_openvswitch_agent_tag }}"
neutron_server_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ neutron_install_type }}-neutron-server{{ '-opendaylight' if enable_opendaylight | bool else '' }}"
neutron_server_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ neutron_install_type }}-neutron-server"
neutron_server_tag: "{{ neutron_tag }}"
neutron_server_image_full: "{{ neutron_server_image }}:{{ neutron_server_tag }}"
@ -354,7 +354,7 @@ neutron_l3_agent_host_rp_filter_mode: 0
####################
extension_drivers:
- name: "qos"
enabled: "{{ enable_neutron_qos | bool or enable_opendaylight_qos | bool }}"
enabled: "{{ enable_neutron_qos | bool }}"
- name: "port_security"
enabled: true
- name: "dns"
@ -383,17 +383,15 @@ service_plugins:
- name: "neutron_dynamic_routing.services.bgp.bgp_plugin.BgpPlugin"
enabled: "{{ enable_neutron_bgp_dragent | bool }}"
- name: "qos"
enabled: "{{ enable_neutron_qos | bool or enable_opendaylight_qos | bool}}"
enabled: "{{ enable_neutron_qos | bool }}"
- name: "router"
enabled: "{{ not enable_opendaylight_l3 | bool }}"
enabled: true
- name: "segments"
enabled: "{{ enable_neutron_segments | bool }}"
- name: "sfc"
enabled: "{{ enable_neutron_sfc | bool }}"
- name: "vpnaas"
enabled: "{{ enable_neutron_vpnaas | bool }}"
- name: "{{ opendaylight_l3_service_plugin }}"
enabled: "{{ enable_opendaylight_l3 | bool and enable_opendaylight | bool }}"
- name: "port_forwarding"
enabled: "{{ enable_neutron_port_forwarding | bool }}"
@ -486,9 +484,7 @@ infoblox_wapi_max_results: "-50000"
######################
# Notification Drivers
######################
notification_drivers:
- name: "odl-qos-v2"
enabled: "{{ enable_opendaylight_qos | bool }}"
notification_drivers: []
neutron_notification_drivers: "{{ notification_drivers|selectattr('enabled', 'equalto', true)|list }}"

View File

@ -17,9 +17,5 @@ dhcp_override_mac = {{ vmware_dvs_dhcp_override_mac }}
{% endif %}
{% endif %}
{% if enable_opendaylight | bool %}
interface_driver = openvswitch
{% endif %}
[ovs]
ovsdb_connection = tcp:127.0.0.1:{{ ovsdb_port }}

View File

@ -18,8 +18,6 @@ mechanism_drivers = openvswitch,{% if enable_ironic_neutron_agent | bool %}barem
{% endif %}
{% elif neutron_plugin_agent == "linuxbridge" %}
mechanism_drivers = linuxbridge,l2population
{% elif neutron_plugin_agent == "opendaylight" %}
mechanism_drivers = {{ opendaylight_mechanism_driver }}
{% endif %}
{% if neutron_extension_drivers %}
@ -28,18 +26,6 @@ extension_drivers = {{ neutron_extension_drivers|map(attribute='name')|join(',')
extension_drivers = port_security
{% endif %}
{% if enable_opendaylight | bool %}
[ml2_odl]
{% if enable_haproxy | bool %}
url = {{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ opendaylight_haproxy_restconf_port }}/controller/nb/v2/neutron
{% else %}
url = {{ internal_protocol }}://{{ kolla_internal_vip_address | put_address_in_context('url') }}:{{ opendaylight_restconf_port }}/controller/nb/v2/neutron
{% endif %}
username = admin
password = {{ opendaylight_password }}
port_binding_controller = {{ opendaylight_port_binding_type }}
{% endif %}
{% if enable_onos | bool %}
[onos]
url_path = {{ onos_url }}
@ -65,13 +51,13 @@ flat_networks = {% for bridge in neutron_bridge_name.split(',') %}physnet{{ loop
vni_ranges = 1:1000
[securitygroup]
{% if neutron_plugin_agent == "openvswitch" or neutron_plugin_agent == "opendaylight" %}
{% if neutron_plugin_agent == "openvswitch" %}
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
{% elif neutron_plugin_agent == "linuxbridge" %}
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
{% endif %}
{% if neutron_plugin_agent == "openvswitch" or neutron_plugin_agent == "opendaylight" %}
{% if neutron_plugin_agent == "openvswitch" %}
[agent]
tunnel_types = vxlan
{% if nova_compute_virt_type != 'xenapi' %}

View File

@ -1,5 +1,5 @@
{
"command": "neutron-server --config-file /etc/neutron/neutron.conf {% if neutron_plugin_agent in ['openvswitch', 'linuxbridge', 'opendaylight'] %} --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/neutron_vpnaas.conf {% elif neutron_plugin_agent in ['vmware_nsxv', 'vmware_nsxv3', 'vmware_dvs'] %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %} --config-file /etc/neutron/fwaas_driver.ini",
"command": "neutron-server --config-file /etc/neutron/neutron.conf {% if neutron_plugin_agent in ['openvswitch', 'linuxbridge'] %} --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/neutron_vpnaas.conf {% elif neutron_plugin_agent in ['vmware_nsxv', 'vmware_nsxv3', 'vmware_dvs'] %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %} --config-file /etc/neutron/fwaas_driver.ini",
"config_files": [
{
"source": "{{ container_config_directory }}/neutron.conf",

View File

@ -24,7 +24,7 @@ rpc_state_report_workers = {{ openstack_service_rpc_workers }}
# in it is because we are sharing this socket in a volume which is it's own dir
metadata_proxy_socket = /var/lib/neutron/kolla/metadata_proxy
{% if neutron_plugin_agent == "openvswitch" or neutron_plugin_agent == "opendaylight" %}
{% if neutron_plugin_agent == "openvswitch" %}
interface_driver = openvswitch
{% elif neutron_plugin_agent == "linuxbridge" %}
interface_driver = linuxbridge
@ -160,11 +160,6 @@ hmac_keys = {{ osprofiler_secret }}
connection_string = {{ osprofiler_backend_connection_string }}
{% endif %}
{% if enable_opendaylight_qos | bool %}
[qos]
notification_drivers = {{ neutron_notification_drivers|map(attribute='name')|join(',') }}
{% endif %}
[placement]
auth_type = password
auth_url = {{ keystone_admin_url }}

View File

@ -1,68 +0,0 @@
---
project_name: "opendaylight"
opendaylight_services:
opendaylight:
container_name: "opendaylight"
image: "{{ opendaylight_image_full }}"
enabled: True
privileged: True
group: "opendaylight"
host_in_groups: "{{ inventory_hostname in groups['opendaylight'] }}"
volumes: "{{ opendaylight_default_volumes + opendaylight_extra_volumes }}"
dimensions: "{{ opendaylight_dimensions }}"
tty: True
haproxy:
opendaylight_api:
enabled: "{{ enable_opendaylight }}"
mode: "http"
port: "{{ opendaylight_haproxy_restconf_port }}"
backend_http_extra:
- "balance source"
custom_member_list: "{{ api_haproxy_members.split(';') }}"
opendaylight_api_backup:
enabled: "{{ enable_opendaylight }}"
mode: "http"
port: "{{ opendaylight_haproxy_restconf_port_backup }}"
backend_http_extra:
- "balance source"
custom_member_list: "{{ backup_api_haproxy_members.split(';') }}"
opendaylight_websocket:
enabled: "{{ enable_opendaylight }}"
mode: "http"
port: "{{ opendaylight_websocket_port }}"
backend_http_extra:
- "balance source"
####################
# HAProxy
####################
api_haproxy_members: "{% for host in groups['opendaylight'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ opendaylight_restconf_port }} check inter 2000 rise 2 fall 5;{% endfor %}"
backup_api_haproxy_members: "{% for host in groups['opendaylight'] %}server {{ hostvars[host]['ansible_hostname'] }} {{ 'api' | kolla_address(host) }}:{{ opendaylight_restconf_port_backup }} check inter 2000 rise 2 fall 5;{% endfor %}"
####################
# Docker
####################
opendaylight_install_type: "{{ kolla_install_type }}"
opendaylight_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ opendaylight_install_type }}-opendaylight"
opendaylight_tag: "{{ openstack_release }}"
opendaylight_image_full: "{{ opendaylight_image }}:{{ opendaylight_tag }}"
opendaylight_dimensions: "{{ default_container_dimensions }}"
opendaylight_default_volumes:
- "{{ node_config_directory }}/opendaylight/:{{ container_config_directory }}/:ro"
- "/etc/localtime:/etc/localtime:ro"
- "kolla_logs:/var/log/kolla/"
opendaylight_extra_volumes: "{{ default_extra_volumes }}"
###################
# Java Opts
###################
# JAVA_MAX_MEM param
opendaylight_java_max_mem: "8g"
# JAVA_MAX_PERM_MEM param
opendaylight_java_max_perm_mem: "512m"

View File

@ -1,17 +0,0 @@
---
- name: Restart opendaylight container
vars:
service_name: "opendaylight"
service: "{{ opendaylight_services[service_name] }}"
become: true
kolla_docker:
action: "recreate_or_restart_container"
common_options: "{{ docker_common_options }}"
name: "{{ service.container_name }}"
image: "{{ service.image }}"
volumes: "{{ service.volumes }}"
privileged: "{{ service.privileged | default(False) }}"
dimensions: "{{ service.dimensions }}"
tty: "{{ service.tty }}"
when:
- kolla_action != "config"

View File

@ -1,3 +0,0 @@
---
dependencies:
- { role: common }

View File

@ -1,18 +0,0 @@
---
- name: Check opendaylight containers
become: true
kolla_docker:
action: "compare_container"
common_options: "{{ docker_common_options }}"
name: "{{ item.value.container_name }}"
image: "{{ item.value.image }}"
privileged: "{{ item.value.privileged | default(False) }}"
volumes: "{{ item.value.volumes }}"
dimensions: "{{ item.value.dimensions }}"
tty: "{{ item.value.tty }}"
when:
- item.value.enabled | bool
- item.value.host_in_groups | bool
with_dict: "{{ opendaylight_services }}"
notify:
- "Restart {{ item.key }} container"

View File

@ -1 +0,0 @@
---

View File

@ -1,197 +0,0 @@
---
- name: Setting sysctl values
become: true
sysctl: name={{ item.name }} value={{ item.value }} sysctl_set=yes
with_items:
- { name: "net.bridge.bridge-nf-call-iptables", value: 1}
- { name: "net.bridge.bridge-nf-call-ip6tables", value: 1}
- { name: "net.ipv4.conf.all.rp_filter", value: 0}
- { name: "net.ipv4.conf.default.rp_filter", value: 0}
when:
- set_sysctl | bool
- inventory_hostname in groups['opendaylight']
- name: Ensuring config directories exist
file:
path: "{{ node_config_directory }}/{{ item }}"
state: "directory"
owner: "{{ config_owner_user }}"
group: "{{ config_owner_group }}"
mode: "0770"
become: true
with_items:
- "opendaylight"
- name: Copying over config.json files for services
template:
src: "{{ item }}.json.j2"
dest: "{{ node_config_directory }}/{{ item }}/config.json"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over custom.properties
template:
src: "{{ role_path }}/templates/custom.properties.j2"
dest: "{{ node_config_directory }}/opendaylight/custom.properties"
mode: "0660"
become: true
notify:
- Restart opendaylight container
- name: Copying over start-odl
template:
src: "{{ role_path }}/templates/start-odl.j2"
dest: "{{ node_config_directory }}/opendaylight/start-odl"
mode: "0660"
become: true
notify:
- Restart opendaylight container
- name: Copying over jetty.xml
template:
src: "{{ role_path }}/templates/jetty.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/jetty.xml"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over org.apache.karaf.features.cfg
template:
src: "{{ role_path }}/templates/org.apache.karaf.features.cfg.j2"
dest: "{{ node_config_directory }}/{{ item }}/org.apache.karaf.features.cfg"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over org.opendaylight.ovsdb.library.cfg
template:
src: "{{ role_path }}/templates/org.opendaylight.ovsdb.library.cfg.j2"
dest: "{{ node_config_directory }}/{{ item }}/org.opendaylight.ovsdb.library.cfg"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over tomcat-server.xml
template:
src: "{{ role_path }}/templates/tomcat-server.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/tomcat-server.xml"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over org.ops4j.pax.logging.cfg.j2
template:
src: "{{ role_path }}/templates/org.ops4j.pax.logging.cfg.j2"
dest: "{{ node_config_directory }}/{{ item }}/org.ops4j.pax.logging.cfg"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over netvirt-impl-config_netvirt-impl-config.xml
template:
src: "{{ role_path }}/templates/netvirt-impl-config_netvirt-impl-config.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/netvirt-impl-config_netvirt-impl-config.xml"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over netvirt-aclservice-config.xml
template:
src: "{{ role_path }}/templates/netvirt-aclservice-config.xml.j2"
dest: "{{ node_config_directory }}/{{ item }}/netvirt-aclservice-config.xml"
mode: "0660"
become: true
with_items:
- "opendaylight"
notify:
- Restart opendaylight container
- name: Copying over setenv
template:
src: "{{ item }}"
dest: "{{ node_config_directory }}/opendaylight/setenv"
mode: "0660"
become: true
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/setenv"
- "{{ node_custom_config }}/opendaylight/setenv"
- "{{ role_path }}/templates/setenv.j2"
notify:
- Restart opendaylight container
- name: Copying over akka.conf
template:
src: "{{ item }}"
dest: "{{ node_config_directory }}/opendaylight/akka.conf"
mode: "0660"
become: true
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/akka.conf"
- "{{ node_custom_config }}/opendaylight/akka.conf"
- "akka.conf.j2"
notify:
- Restart opendaylight container
- name: Copying over modules.conf
template:
src: "{{ item }}"
dest: "{{ node_config_directory }}/opendaylight/modules.conf"
mode: "0660"
become: true
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/modules.conf"
- "{{ node_custom_config }}/opendaylight/modules.conf"
- "modules.conf.j2"
notify:
- Restart opendaylight container
- name: Copying over module-shards.conf
template:
src: "{{ item }}"
dest: "{{ node_config_directory }}/opendaylight/module-shards.conf"
mode: "0660"
become: true
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/module-shards.conf"
- "{{ node_custom_config }}/opendaylight/module-shards.conf"
- "module-shards.conf.j2"
notify:
- Restart opendaylight container
- name: Copying over 10-rest-connector.xml
template:
src: "{{ item }}"
dest: "{{ node_config_directory }}/opendaylight/10-rest-connector.xml"
mode: "0660"
become: true
with_first_found:
- "{{ node_custom_config }}/opendaylight/{{ inventory_hostname }}/10-rest-connector.xml"
- "{{ node_custom_config }}/opendaylight/10-rest-connector.xml"
- "10-rest-connector.xml.j2"
notify:
- Restart opendaylight container
- include_tasks: check-containers.yml
when: kolla_action != "config"

View File

@ -1,2 +0,0 @@
---
- import_tasks: check-containers.yml

View File

@ -1,5 +0,0 @@
---
- include_tasks: config.yml
- name: Flush Handlers
meta: flush_handlers

View File

@ -1,7 +0,0 @@
---
- name: "Configure haproxy for {{ project_name }}"
import_role:
role: haproxy-config
vars:
project_services: "{{ opendaylight_services }}"
tags: always

View File

@ -1,2 +0,0 @@
---
- include_tasks: "{{ kolla_action }}.yml"

View File

@ -1,112 +0,0 @@
---
- name: Get container facts
become: true
kolla_container_facts:
name:
- opendaylight
register: container_facts
- name: Checking free port for opendaylight_clustering
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_clustering_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_restconf
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_restconf_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_restconf_backup
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_restconf_port_backup }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_karaf_ssh
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_karaf_ssh_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_openflow
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_openflow_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_ovsdb
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_ovsdb_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_jetty_conf_port
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_jetty_conf_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_jetty_conf2_port
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_jetty_conf2_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_tomcat_port
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_tomcat_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking free port for opendaylight_tomcat_redirect_port
wait_for:
host: "{{ 'api' | kolla_address }}"
port: "{{ opendaylight_tomcat_redirect_port }}"
connect_timeout: 1
state: stopped
when:
- inventory_hostname in groups['opendaylight']
- container_facts['opendaylight'] is not defined
- name: Checking available opendaylight nodes in inventory
fail:
msg: "Either 1 or 3 nodes required in inventory for OpenDaylight clustering"
when: groups['opendaylight'] | length == 2

View File

@ -1,11 +0,0 @@
---
- name: Pulling opendaylight image
become: true
kolla_docker:
action: "pull_image"
common_options: "{{ docker_common_options }}"
image: "{{ item.value.image }}"
when:
- item.value.enabled | bool
- item.value.host_in_groups | bool
with_dict: "{{ opendaylight_services }}"

View File

@ -1,2 +0,0 @@
---
- include_tasks: deploy.yml

View File

@ -1,6 +0,0 @@
---
- import_role:
role: service-stop
vars:
project_services: "{{ opendaylight_services }}"
service_name: "{{ project_name }}"

View File

@ -1,5 +0,0 @@
---
- include_tasks: config.yml
- name: Flush Handlers
meta: flush_handlers

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Public License v1.0 which accompanies this distribution,
and is available at http://www.eclipse.org/legal/epl-v10.html
-->
<snapshot>
<configuration>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
<!-- default OF-switch-connection-provider (port 6633) -->
<module>
<type xmlns:rest="urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector">rest:rest-connector-impl</type>
<name>rest-connector-default-impl</name>
<websocket-address>{{ 'api' | kolla_address }}</websocket-address>
<websocket-port>{{ opendaylight_websocket_port }}</websocket-port>
<dom-broker>
<type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
<name>dom-broker</name>
</dom-broker>
</module>
</modules>
<services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
<service>
<type xmlns:rest="urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector">rest:rest-connector</type>
<instance>
<name>rest-connector-default</name>
<provider>
/modules/module[type='rest-connector-impl'][name='rest-connector-default-impl']
</provider>
</instance>
</service>
</services>
</data>
</configuration>
<required-capabilities>
<capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector?module=opendaylight-rest-connector&amp;revision=2014-07-24</capability>
</required-capabilities>
</snapshot>

View File

@ -1,33 +0,0 @@
odl-cluster-data {
akka {
remote {
artery {
enabled = off
canonical.hostname = "{{ 'api' | kolla_address }}"
canonical.port = {{ opendaylight_clustering_port }}
}
netty.tcp {
hostname = "{{ 'api' | kolla_address }}"
port = {{ opendaylight_clustering_port }}
}
}
cluster {
seed-nodes = [{% for host in groups['opendaylight'] %}"akka.tcp://opendaylight-cluster-data@{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ opendaylight_clustering_port }}"{% if not loop.last %},{% endif %}{% endfor %}]
roles = [
"{{ hostvars[inventory_hostname]['ansible_hostname'] }}"
]
}
persistence {
journal {
leveldb {
}
}
}
}
}

View File

@ -1,47 +0,0 @@
org.osgi.framework.system.packages.extra=org.apache.karaf.branding,sun.reflect,sun.reflect.misc,sun.misc,sun.nio.ch,com.sun.media.sound
osgi.hook.configurators.include=org.eclipse.virgo.kernel.equinox.extensions.hooks.ExtensionsHookConfigurator
org.eclipse.gemini.web.tomcat.config.path=configuration/tomcat-server.xml
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
karaf.framework=equinox
karaf.delay.console=true
org.apache.karaf.security.providers = org.bouncycastle.jce.provider.BouncyCastleProvider
org.apache.aries.blueprint.preemptiveShutdown=false
netconf.config.persister.active=1
netconf.config.persister.1.storageAdapterClass=org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter
netconf.config.persister.1.properties.fileStorage=etc/opendaylight/current/controller.currentconfig.xml
netconf.config.persister.1.properties.numberOfBackups=1
logback.configurationFile=configuration/logback.xml
container.profile = Container
connection.scheme = ANY_CONTROLLER_ONE_MASTER
ovsdb.l3.arp.responder.disabled=no
secureChannelEnabled=false
controllerKeyStore=
controllerKeyStorePassword=
controllerTrustStore=
controllerTrustStorePassword=
enableStrongPasswordCheck = false
java.util.logging.config.file=configuration/tomcat-logging.properties
hosttracker.keyscheme=IP
lisp.mappingMerge = false
lisp.smr = true
lisp.elpPolicy = default

View File

@ -1,90 +0,0 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you 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.
-->
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//
DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.eclipse.jetty.server.Server">
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host">
<Property name="jetty.host" />
</Set>
<Set name="port">
<Property name="jetty.port" default="{{ opendaylight_restconf_port }}" />
</Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">{{ opendaylight_jetty_conf_port }}</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host">
<Property name="jetty.host" />
</Set>
<Set name="port">
<Property name="jetty.port" default="{{ opendaylight_restconf_port_backup }}" />
</Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">{{ opendaylight_jetty_conf2_port }}</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
<Set name="name">karaf</Set>
<Set name="loginModuleName">karaf</Set>
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
<Set name="name">default</Set>
<Set name="loginModuleName">karaf</Set>
<Set name="roleClassNames">
<Array type="java.lang.String">
<Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
</Item>
</Array>
</Set>
</New>
</Arg>
</Call>
</Configure>

View File

@ -1,59 +0,0 @@
module-shards = [
{
name = "default"
shards = [
{
name="default"
replicas = [
{% for host in groups['opendaylight'] %}
"{{ hostvars[host]['ansible_hostname'] }}"{% if not loop.last %},
{% endif %}
{% endfor %}
]
}
]
},
{
name = "topology"
shards = [
{
name="topology"
replicas = [
{% for host in groups['opendaylight'] %}
"{{ hostvars[host]['ansible_hostname'] }}"{% if not loop.last %},
{% endif %}
{% endfor %}
]
}
]
},
{
name = "inventory"
shards = [
{
name="inventory"
replicas = [
{% for host in groups['opendaylight'] %}
"{{ hostvars[host]['ansible_hostname'] }}"{% if not loop.last %},
{% endif %}
{% endfor %}
]
}
]
},
{
name = "toaster"
shards = [
{
name="toaster"
replicas = [
{% for host in groups['opendaylight'] %}
"{{ hostvars[host]['ansible_hostname'] }}"{% if not loop.last %},
{% endif %}
{% endfor %}
]
}
]
}
]

View File

@ -1,20 +0,0 @@
modules = [
{
name = "inventory"
namespace = "urn:opendaylight:inventory"
shard-strategy = "module"
},
{
name = "topology"
namespace = "urn:TBD:params:xml:ns:yang:network-topology"
shard-strategy = "module"
},
{
name = "toaster"
namespace = "http://netconfcentral.org/ns/toaster"
shard-strategy = "module"
}
]

View File

@ -1,4 +0,0 @@
<aclservice-config xmlns="urn:opendaylight:netvirt:aclservice-config">
<security-group-mode>{{ opendaylight_acl_impl }}</security-group-mode>
<default-behavior>deny</default-behavior>
</aclservice-config>

View File

@ -1,7 +0,0 @@
{% if enable_opendaylight_legacy_netvirt_conntrack | bool %}
<netvirt-impl-config xmlns="urn:opendaylight:params:xml:ns:yang:netvirt:impl:config">
<conntrack-enabled>
true
</conntrack-enabled>
</netvirt-impl-config>
{% endif %}

View File

@ -1,96 +0,0 @@
{
"command": "start-odl",
"config_files": [
{
"source": "{{ container_config_directory }}/start-odl",
"dest": "/usr/local/bin/start-odl",
"owner": "odl",
"perm": "0655"
},
{
"source": "{{ container_config_directory }}/org.apache.karaf.features.cfg",
"dest": "/opt/opendaylight/etc/org.apache.karaf.features.cfg",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/org.opendaylight.ovsdb.library.cfg",
"dest": "/opt/opendaylight/etc/org.opendaylight.ovsdb.library.cfg",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/tomcat-server.xml",
"dest": "/opt/opendaylight/configuration/tomcat-server.xml",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/jetty.xml",
"dest": "/opt/opendaylight/etc/jetty.xml",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/org.ops4j.pax.logging.cfg",
"dest": "/opt/opendaylight/etc/org.ops4j.pax.logging.cfg",
"owner": "odl",
"perm": "0600"
},
{
"source": "/var/lib/kolla/config_files/custom.properties",
"dest": "/opt/opendaylight/etc/custom.properties",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/netvirt-impl-config_netvirt-impl-config.xml",
"dest": "/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-impl-config_netvirt-impl-config.xml",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/netvirt-aclservice-config.xml",
"dest": "/opt/opendaylight/etc/opendaylight/datastore/initial/config/netvirt-aclservice-config.xml",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/setenv",
"dest": "/opt/opendaylight/bin/setenv",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/akka.conf",
"dest": "/opt/opendaylight/configuration/initial/akka.conf",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/modules.conf",
"dest": "/opt/opendaylight/configuration/initial/modules.conf",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/module-shards.conf",
"dest": "/opt/opendaylight/configuration/initial/module-shards.conf",
"owner": "odl",
"perm": "0600"
},
{
"source": "{{ container_config_directory }}/10-rest-connector.xml",
"dest": "/opt/opendaylight/etc/opendaylight/karaf/10-rest-connector.xml",
"owner": "odl",
"perm": "0600"
}
],
"permissions": [
{
"path": "/var/log/kolla/opendaylight",
"owner": "odl:odl",
"recurse": true
}
]
}

View File

@ -1,28 +0,0 @@
################################################################################
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
################################################################################
featuresRepositories = mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features, \
mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features, \
mvn:org.ops4j.pax.web/pax-web-features/3.2.9/xml/features, \
mvn:org.apache.karaf.features/spring/${karaf.version}/xml/features, \
mvn:org.opendaylight.integration/features-integration-index/${project.version}/xml/features
featuresBoot=config,standard,region,package,kar,ssh,management{% if not opendaylight_features == '' %},{% endif %}{{ opendaylight_features }}
featuresBootAsynchronous=false

View File

@ -1,7 +0,0 @@
ovsdb-listener-port = {{ opendaylight_ovsdb_port }}
use-ssl = false
json-rpc-decoder-max-frame-length = 100000
ovsdb-rpc-task-timeout = 1000

View File

@ -1,52 +0,0 @@
################################################################################
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
################################################################################
log4j.rootLogger=INFO, async, osgi:*
log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
log4j.appender.async=org.apache.log4j.AsyncAppender
log4j.appender.async.appenders=out
log4j.appender.out=org.apache.log4j.RollingFileAppender
log4j.appender.out.layout=org.apache.log4j.PatternLayout
log4j.appender.out.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
log4j.appender.out.file=/var/log/kolla/opendaylight/karaf.log
log4j.appender.out.append=true
log4j.appender.out.maxFileSize=1MB
log4j.appender.out.maxBackupIndex=10
log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
log4j.appender.sift.key=bundle.name
log4j.appender.sift.default=karaf
log4j.appender.sift.appender=org.apache.log4j.FileAppender
log4j.appender.sift.appender.layout=org.apache.log4j.PatternLayout
log4j.appender.sift.appender.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %m%n
log4j.appender.sift.appender.file=/var/log/kolla/opendaylight/$\\{bundle.name\\}.log
log4j.appender.sift.appender.append=true
log4j.appender.syslog=org.apache.log4j.net.SyslogAppender
log4j.appender.syslog.layout=org.apache.log4j.PatternLayout
log4j.appender.syslog.layout.ConversionPattern=%d{ISO8601} | %-5.5p | %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %m%n
log4j.appender.syslog.syslogHost=127.0.0.1
log4J.appender.syslog.facility=KARAF
log4j.appender.syslog.facilityPrinting=false

View File

@ -1,34 +0,0 @@
################################################################################
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
################################################################################
org.ops4j.pax.url.mvn.settings=/var/lib/odl/.m2/settings.xml
org.ops4j.pax.url.mvn.localRepository=${karaf.home}/${karaf.default.repository}
org.ops4j.pax.url.mvn.useFallbackRepositories=false
org.ops4j.pax.url.mvn.defaultLocalRepoAsRemote=false
org.ops4j.pax.url.mvn.repositories= \
file:${karaf.home}/${karaf.default.repository}@id=system.repository, \
file:${karaf.data}/kar@id=kar.repository@multi, \
http://repo1.maven.org/maven2@id=central, \
http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release, \
http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external, \
http://zodiac.springsource.com/maven/bundles/release@id=gemini

View File

@ -1,24 +0,0 @@
#!/bin/sh
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
if [ "x$JAVA_MAX_PERM_MEM" = "x" ]; then
export JAVA_MAX_PERM_MEM="{{ opendaylight_java_max_perm_mem }}"
fi
if [ "x$JAVA_MAX_MEM" = "x" ]; then
export JAVA_MAX_MEM="{{ opendaylight_java_max_mem }}"
fi

View File

@ -1,3 +0,0 @@
#!/usr/bin/env bash
java -jar /opt/opendaylight/bin/aaa-cli-jar.jar --dbd /opt/opendaylight/ --nu admin -p {{ opendaylight_password }}
/opt/opendaylight/bin/karaf

View File

@ -1,46 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<Server>
<!--APR library loader. Documentation at /docs/apr.html -->
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
<Listener className="org.apache.catalina.core.JasperListener" />
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<Service name="Catalina">
<Connector port="{{ opendaylight_tomcat_port }}" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="{{ opendaylight_tomcat_redirect_port }}" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase=""
unpackWARs="false" autoDeploy="false"
deployOnStartup="false" createDirs="false">
<Realm className="org.opendaylight.controller.karafsecurity.ControllerCustomRealm" />
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="web_access_log_" suffix=".txt" resolveHosts="false"
rotatable="true" fileDateFormat="yyyy-MM"
pattern="%{yyyy-MM-dd HH:mm:ss.SSS z}t - [%a] - %r"/>
</Host>
</Engine>
</Service>
</Server>

View File

@ -1,11 +1,2 @@
#!/usr/bin/env bash
{% if enable_opendaylight | bool %}
/usr/bin/ovs-vsctl --no-wait -- set-manager {% for host in groups['opendaylight'] %}tcp:{{ 'api' | kolla_address(host) | put_address_in_context('url') }}:{{ opendaylight_ovsdb_port }} {% endfor %}
/usr/bin/ovs-vsctl --no-wait -- set Open_vSwitch . other_config:local_ip={{ 'tunnel' | kolla_address }}
/usr/bin/ovs-vsctl --no-wait -- set Open_vSwitch . other_config:provider_mappings=physnet1:{{ neutron_bridge_name }}
/usr/bin/ovs-vsctl --no-wait -- set Open_vSwitch . external_ids:system-id=`cat /proc/sys/kernel/random/uuid`
/usr/bin/ovs-vsctl --no-wait -- set Open_vSwitch . external_ids:odl_os_hostconfig_config_odl_l2='{"supported_vnic_types": [{"vnic_type": "normal", "vif_type": "ovs", "vif_details": {} }], "allowed_network_types": [{{ opendaylight_allowed_network_types }}], "datapath_types": ["netdev", "system"], "bridge_mappings": {"physnet1":"{{ neutron_bridge_name }}"} }'
/usr/bin/ovs-vsctl --no-wait -- set Open_vSwitch . external_ids:odl_os_hostconfig_hostid="{{ hostvars[inventory_hostname]['ansible_hostname'] }}"
{% endif %}
/usr/sbin/ovs-vswitchd unix:/run/openvswitch/db.sock -vconsole:emer -vsyslog:err -vfile:info --mlockall --log-file=/var/log/kolla/openvswitch/ovs-vswitchd.log --pidfile

View File

@ -7,7 +7,7 @@ ovsdpdk_services:
ovsdpdk-db:
container_name: "ovsdpdk_db"
image: "{{ ovsdpdk_db_image_full }}"
enabled: "{{ neutron_plugin_agent in ['openvswitch', 'opendaylight'] }}"
enabled: "{{ neutron_plugin_agent in ['openvswitch'] }}"
host_in_groups: >-
{{
inventory_hostname in groups['compute']
@ -21,7 +21,7 @@ ovsdpdk_services:
ovsdpdk-vswitchd:
container_name: "ovsdpdk_vswitchd"
image: "{{ ovsdpdk_vswitchd_image_full }}"
enabled: "{{ neutron_plugin_agent in ['openvswitch', 'opendaylight'] }}"
enabled: "{{ neutron_plugin_agent in ['openvswitch'] }}"
privileged: True
host_in_groups: >-
{{

View File

@ -33,7 +33,7 @@ agent:
flow:
probes:
- gopacket
{% if neutron_plugin_agent in ['openvswitch', 'opendaylight'] %}
{% if neutron_plugin_agent in ['openvswitch'] %}
- ovssflow
{% endif %}
topology:
@ -41,7 +41,7 @@ agent:
- netlink
- netns
- neutron
{% if neutron_plugin_agent in ['openvswitch', 'opendaylight'] %}
{% if neutron_plugin_agent in ['openvswitch'] %}
- ovsdb
{% endif %}
@ -61,7 +61,7 @@ flow:
expire: 600
update: 60
{% if neutron_plugin_agent in ['openvswitch', 'opendaylight'] %}
{% if neutron_plugin_agent in ['openvswitch'] %}
ovs:
ovsdb: tcp://127.0.0.1:{{ ovsdb_port }}
oflow:

View File

@ -63,7 +63,6 @@
- enable_neutron_{{ enable_neutron | bool }}
- enable_nova_{{ enable_nova | bool }}
- enable_octavia_{{ enable_octavia | bool }}
- enable_opendaylight_{{ enable_opendaylight | bool }}
- enable_openvswitch_{{ enable_openvswitch | bool }}_enable_ovs_dpdk_{{ enable_ovs_dpdk | bool }}
- enable_outward_rabbitmq_{{ enable_outward_rabbitmq | bool }}
- enable_panko_{{ enable_panko | bool }}
@ -299,11 +298,6 @@
tasks_from: loadbalancer
tags: octavia
when: enable_octavia | bool
- include_role:
role: opendaylight
tasks_from: loadbalancer
tags: opendaylight
when: enable_opendaylight | bool
- include_role:
role: panko
tasks_from: loadbalancer
@ -717,17 +711,6 @@
# own playbook.
- import_playbook: nova.yml
- name: Apply role opendaylight
gather_facts: false
hosts:
- opendaylight
- '&enable_opendaylight_True'
serial: '{{ kolla_serial|default("0") }}'
roles:
- { role: opendaylight,
tags: opendaylight,
when: enable_opendaylight | bool }
- name: Apply role openvswitch
gather_facts: false
hosts:

View File

@ -14,6 +14,5 @@ Networking-SFC, QoS, and so on.
dpdk
neutron
neutron-extensions
opendaylight
provider-networks
sriov

View File

@ -1,57 +0,0 @@
.. _opendaylight:
=============================
Opendaylight - SDN controller
=============================
Preparation and deployment
--------------------------
Modify the ``/etc/kolla/globals.yml`` file as the following example shows:
.. code-block:: yaml
enable_opendaylight: "yes"
neutron_plugin_agent: "opendaylight"
Networking-ODL is an additional Neutron plugin that allows the OpenDaylight
SDN Controller to utilize its networking virtualization features.
For OpenDaylight to work, the Networking-ODL plugin has to be installed in
the ``neutron-server`` container. In this case, one could use the
neutron-server-opendaylight container and the opendaylight container by
pulling from Kolla dockerhub or by building them locally.
OpenDaylight ``globals.yml`` configurable options with their defaults include:
.. code-block:: yaml
opendaylight_mechanism_driver: "opendaylight_v2"
opendaylight_l3_service_plugin: "odl-router_v2"
opendaylight_acl_impl: "learn"
enable_opendaylight_qos: "no"
enable_opendaylight_l3: "yes"
enable_opendaylight_legacy_netvirt_conntrack: "no"
opendaylight_port_binding_type: "pseudo-agentdb-binding"
opendaylight_features: "odl-mdsal-apidocs,odl-netvirt-openstack"
opendaylight_allowed_network_types: '"flat", "vlan", "vxlan"'
Clustered OpenDaylight Deploy
-----------------------------
High availability clustered OpenDaylight requires modifying the inventory file
and placing three or more hosts in the OpenDaylight or Networking groups.
.. note::
The OpenDaylight role will allow deploy of one or three plus hosts for
OpenDaylight/Networking role.
Verification
------------
Verify the build and deploy operation of Networking-ODL containers. Successful
deployment will bring up an Opendaylight container in the list of running
containers on network/opendaylight node.
For the source code, please refer to the following link:
https://github.com/openstack/networking-odl

View File

@ -119,7 +119,7 @@
# addresses for that reason.
#neutron_external_interface: "eth1"
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_dvs, opendaylight ]
# Valid options are [ openvswitch, linuxbridge, vmware_nsxv, vmware_nsxv3, vmware_dvs ]
# if vmware_nsxv3 is selected, enable_openvswitch MUST be set to "no" (default is yes)
#neutron_plugin_agent: "openvswitch"
@ -185,12 +185,6 @@
# in a multi-region deployment, and then only in the *first* region.
#multiple_regions_names: ["{{ openstack_region_name }}"]
##############
# OpenDaylight
##############
#enable_opendaylight_qos: "no"
#enable_opendaylight_l3: "yes"
###################
# OpenStack options
###################
@ -320,7 +314,6 @@
#enable_nova_ssh: "yes"
#enable_octavia: "no"
#enable_onos: "no"
#enable_opendaylight: "no"
#enable_openvswitch: "{{ enable_neutron | bool and neutron_plugin_agent != 'linuxbridge' }}"
#enable_ovs_dpdk: "no"
#enable_osprofiler: "no"

View File

@ -24,11 +24,6 @@ mariadb_backup_database_password:
# This should only be set if you require a password for your Docker registry
docker_registry_password:
######################
# OpenDaylight options
######################
opendaylight_password:
####################
# VMware support
####################

View File

@ -0,0 +1,5 @@
---
upgrade:
- |
Support for deployment of OpenDaylight controller and configuration of Neutron related to
integration with OpenDaylight have been removed.

View File

@ -129,9 +129,6 @@ network
compute
manila-share
[opendaylight:children]
network
[cinder:children]
control