tripleo-heat-templates/puppet/services/ovn-controller.yaml
Numan Siddique 71d59bb0a3 ovn: Provide the option to configure OVNCMSOptions ('ovn-cms-options') as a role parameter
This option was recently supported in ovn-controller [1]. If this value is configured
in the external_ids column of OpenvSwitch table of OVS database, ovn-controller copies
it to the chassis table, which will be read by Neutron OVN mechanism driver. OVN mech driver can
take certain decisions based on the value. One such use case is setting the value
'enable-chassis-as-gw' in this option. Only those chassis which has this option set,
will be considered as a candidate to schedule a neutron router. So, the administrator
can decide to use only controller nodes (or networker nodes) for scheduling the
router.

[1] - 4705963f2c

Change-Id: Iabe5aec30c740447b9714e1b1ace366768488bdb
Signed-off-by: Numan Siddique <nusiddiq@redhat.com>
2018-01-25 19:46:22 +05:30

121 lines
4.3 KiB
YAML

heat_template_version: queens
description: >
OpenStack OVN Controller agent
parameters:
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type: json
OVNSouthboundServerPort:
description: Port of the Southbound DB Server
type: number
default: 6642
OVNTunnelEncapType:
description: Tunnel encapsulation type
type: string
default: geneve
NeutronBridgeMappings:
description: >
The OVS logical->physical bridge mappings to use. See the Neutron
documentation for details. Defaults to mapping br-ex - the external
bridge on hosts - to a physical name 'datacentre' which can be used
to create provider networks (and we use this for the default floating
network) - if changing this either use different post-install network
scripts or be sure to keep 'datacentre' as a mapping network name.
type: comma_delimited_list
default: "datacentre:br-ex"
OVNIntegrationBridge:
description: >
Name of the OVS bridge to use as integration bridge by OVN Controller.
type: string
default: "br-int"
OVNMetadataEnabled:
description: Whether Metadata Service has to be enabled
type: boolean
default: true
OVNCMSOptions:
description: The CMS options to configure in ovs db
type: string
default: ""
resources:
# Merging role-specific parameters (RoleParameters) with the default parameters.
# RoleParameters will have the precedence over the default parameters.
RoleParametersValue:
type: OS::Heat::Value
properties:
type: json
value:
map_replace:
- map_replace:
- ovn::controller::ovn_bridge_mappings: NeutronBridgeMappings
ovn::controller::ovn_cms_options: OVNCMSOptions
- values: {get_param: [RoleParameters]}
- values:
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
OVNCMSOptions: {get_param: OVNCMSOptions}
conditions:
force_config_drive: {equals: [{get_param: OVNMetadataEnabled}, false]}
outputs:
role_data:
description: Role data for the OVN Controller agent
value:
service_name: ovn_controller
config_settings:
map_merge:
- get_attr: [RoleParametersValue, value]
- ovn::southbound::port: {get_param: OVNSouthboundServerPort}
ovn::controller::ovn_encap_type: {get_param: OVNTunnelEncapType}
ovn::controller::ovn_encap_ip: {get_param: [ServiceNetMap, NeutronTenantNetwork]}
ovn::controller::ovn_bridge: {get_param: OVNIntegrationBridge}
nova::compute::force_config_drive: {if: [force_config_drive, true, false]}
tripleo.ovn_controller.firewall_rules:
'118 neutron vxlan networks':
proto: 'udp'
dport: 4789
'119 neutron geneve networks':
proto: 'udp'
dport: 6081
step_config: |
include ::tripleo::profile::base::neutron::agents::ovn
upgrade_tasks:
- name: Check if ovn_controller is deployed
command: systemctl is-enabled ovn-controller
tags: common
ignore_errors: True
register: ovn_controller_enabled
- name: "PreUpgrade step0,validation: Check service ovn-controller is running"
shell: /usr/bin/systemctl show 'ovn-controller' --property ActiveState | grep '\bactive\b'
when: (ovn_controller_enabled.rc == 0) and (step|int == 0)
tags: validation
- name: Stop ovn-controller service
when: (ovn_controller_enabled.rc == 0) and (step|int == 1)
service: name=ovn-controller state=stopped