##############################################################################
# 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.3
  created: 04.03.2016
  comment: Added bgpvpn feature
opendaylight:
  metadata:
    # chosen_id: Assigned during installation
    class: plugin
    default: false
    enabled: true
    label: OpenDaylight plugin
    toggleable: true
    versions:
    - enable_gbp:
        label: GBP features
        type: checkbox
        value: false
        weight: 14
      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: 12
      enable_sfc:
        label: SFC features
        type: checkbox
        value: false
        weight: 13
      enable_bgpvpn:
        weight: 13
        type: "checkbox"
        value: false
        label: "BGPVPN extensions"
        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.
        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:fuel-plugin-ovs == null or settings:fuel-plugin-ovs.metadata.enabled == false"
            strict: false
            message: "Openvswitch with NSH support (fuel-plugin-ovs) must be installed and enabled."
      bgpvpn_gateway:
        weight: 13
        type: "text"
        value: "0.0.0.0"
        description: "Define the default gateway for BGPVPN"
        label: "Default Gateway"
        restrictions:
            - settings:opendaylight.enable_bgpvpn.value == false: Only needed if BGPVPN is enabled.
        regex:
          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]?)$
          error: 'Invalid ip number'
      metadata:
        always_editable: false
        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
          gbp:
            - odl-groupbasedpolicy-neutronmapper
            - odl-groupbasedpolicy-ofoverlay
          ovs:
            - odl-ovsdb-openstack
          sfc:
            - odl-sfc-model
            - odl-sfc-provider
            - odl-sfc-provider-rest
            - odl-sfc-sb-rest
            - odl-sfc-ui
            - odl-sfc-netconf
            - odl-sfc-ovs
            - odl-sfcofl2
          vpn:
            - odl-vpnservice-openstack
        # plugin_id: Assigned during installation
        plugin_version: 0.8.1
      rest_api_port:
        value: '8282'
        label: 'Port number'
        description: 'Port on which ODL REST API will be available.'
        weight: 40
        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'
    weight: 70