##############################################################################
# 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