[RFE] OVN split northd and plugin composable services

Bug #1634171 reported by Joe Talerico
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Medium
Numan Siddique

Bug Description

To deploy OVN we need to allocate the a IP address for the OVNDBhost before we deploy. it would be nice if we could have OVNDBHost default to a OpenStack ControllerIP or some sort of a neutron networker host(s)

So, I am suggesting we change

  OVNDbHost: '0.0.0.0'
to
  OVNDbHost: 'Default

Where Default == ControllerIP.

Tags: rfe
Joe Talerico (jtaleric)
tags: added: rfe
Revision history for this message
Steven Hardy (shardy) wrote :

Which service exactly should OVNDbHost point at?

In the composable services model we already have hieradata set for every service, so I'd much rather we defaulted this to the vip for a service and not to anything tied to a specific role (e.g Controller).

Revision history for this message
Steven Hardy (shardy) wrote :

So it looks like this parameter is a poor fit for composable services as it's effectively used as a conditional, not a way to connect to another service:

https://github.com/openstack/puppet-tripleo/blob/master/manifests/profile/base/neutron/plugins/ml2/ovn.pp#L32

As commented in the manifest, we should probably split the northd stuff into a separate composable manifest, then you just include it on whichever role you wish, and the connection details will be automatically made available via hiera, e.g ovn_northd_node_ips (assuming the new composable service template has a service_name of ovn_northd)

Revision history for this message
Steven Hardy (shardy) wrote :

Joe if you agree, I'd suggest changing the bug title to something like "OVN split northd and plugin composable services", which I think will have the side-effect of deprecating the OVNDbHost parameter and doing what you want.

Revision history for this message
Joe Talerico (jtaleric) wrote :

Here is a patch I suggested to fix this... Steve initial thoughts? https://review.openstack.org/#/c/387594/

summary: - [RFE] OVN change ovn_db_host to default to controller(s)
+ [RFE] OVN split northd and plugin composable services
Revision history for this message
Steven Hardy (shardy) wrote :

Joe, I see where you're going with the patch, but ideally I'd like to see something decoupled from the controller (all composable services should be easy to deploy on any role, and not coupled to the controller if at all possible).

I was thinking something more like we do for ceph mon here:

https://github.com/openstack/puppet-tripleo/blob/master/manifests/profile/base/ceph.pp#L40

We automatically generate hiera for $service_name_node_ips which works regardless of where the service is deployed (e.g which role), so that approach will be much more flexible from a composability perspective (e.g the ovn northd piece could be deployed on any role with no extra parameters at all if we decouple it from the ovn plugin).

I can push some WIP examples if you're in a position to help test them?

Revision history for this message
Joe Talerico (jtaleric) wrote :

Hey Steve, sure a bit more context on how this is layered would be great. I pushed another patchset, which I think represents what you are referencing.

I figure with the latest patchset, I could also update the overcloud.yaml to set ovsdb_host_ip and the ovs_northd_ip to the controller(s) with ovsdb_host_ip: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}

However, I am not sure that decouples things enough, so maybe more context would help?

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to puppet-tripleo (master)

Fix proposed to branch: master
Review: https://review.openstack.org/387939

Changed in tripleo:
assignee: nobody → Steven Hardy (shardy)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-heat-templates (master)

Fix proposed to branch: master
Review: https://review.openstack.org/387940

Steven Hardy (shardy)
Changed in tripleo:
milestone: none → ocata-1
importance: Undecided → Medium
Steven Hardy (shardy)
Changed in tripleo:
milestone: ocata-1 → ocata-2
Changed in tripleo:
assignee: Steven Hardy (shardy) → Babu Shanmugam (anbu-p)
Changed in tripleo:
assignee: Babu Shanmugam (anbu-p) → Dan Radez (dradez)
Changed in tripleo:
assignee: Dan Radez (dradez) → Babu Shanmugam (anbu-p)
Changed in tripleo:
assignee: Babu Shanmugam (anbu-p) → Numan Siddique (numansiddique)
Changed in tripleo:
milestone: ocata-2 → ocata-3
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to puppet-tripleo (master)

Reviewed: https://review.openstack.org/387939
Committed: https://git.openstack.org/cgit/openstack/puppet-tripleo/commit/?id=4458ce0d9af2bb0a96506b7403ff60d4898b20cc
Submitter: Jenkins
Branch: master

commit 4458ce0d9af2bb0a96506b7403ff60d4898b20cc
Author: Steven Hardy <email address hidden>
Date: Tue Oct 18 11:50:51 2016 +0100

    Split ovn plugin and northd configuration

    This allows us to use the composable services interfaces to handle
    providing the IP address for northd, and will be more flexible in
    the event folks want to deploy northd/ovndb on a different node to
    the neutron plugin.

    This also adds ovn_northd to the haproxy configuration so we can access
    it via the ovn_northd_vip in other service profiles. Note we need
    to ensure the haproxy config only hits the bootstrap node as northd
    won't be running on the other nodes.

    Change-Id: I9af7bd837c340c3df016fc7ad4238b2941ba7a95
    Partial-Bug: #1634171

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (master)

Reviewed: https://review.openstack.org/387940
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=d169989598bd0db13b5944821d7ee3599267211d
Submitter: Jenkins
Branch: master

commit d169989598bd0db13b5944821d7ee3599267211d
Author: Steven Hardy <email address hidden>
Date: Tue Oct 18 12:15:56 2016 +0100

    Split OVN northd and ml2 plugin

    This allows us to take advantage of the composable roles hiera
    settings to connect the plugin to the northd/ovndb API without
    needing to hard-code the IP of the node running the service.

    Change-Id: I2508d48f81c1819ae3521fff271c0bdc50724604
    Depends-On: I9af7bd837c340c3df016fc7ad4238b2941ba7a95
    Closes-Bug: #1634171

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-heat-templates 6.0.0.0rc1

This issue was fixed in the openstack/tripleo-heat-templates 6.0.0.0rc1 release candidate.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.