package update dependency cycles in puppet-tripleo

Bug #1536349 reported by James Slagle
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Critical
Emilien Macchi

Bug Description

The way that packages.pp from puppet-tripleo is expressing dependency chains for the yum upgrade is not working.

What if your Puppet manifests/modules have something like:
  Service['my-service'] -> Package['my-package']

By this code, we're exposed to dependency cycles and we don't want that.
See this test with TripleO:
  Exec[package-upgrade] => Service[openvswitch] => Class[Vswitch::Ovs] => Class[Neutron::Agents::Ml2::Ovs] => Package[neutron-ovs-agent] => Exec[package-upgrade]

The problem here is that puppet-neutron says: "OVS service needs to run before installing+configuring Neutron OVS agent [1]. In short, we have:
  Service['ovs'] -> Package['neutron-ovs-agent']
because of the require "vswitch::ovs" in puppet-neutron.

We have two options I think:

    patch puppet-neutron to improve orchestration and be more cool with the requirements. There is a risk we have this situation in other modules!
    change this chain (L66) to make it more flexible with less risk of cycle dependency issue.

I'm about to provide a patch in master for solution #2, and I'll WIP it. Feel free to look.

[1] https://github.com/openstack/puppet-neutron/blob/master/manifests/agents/ml2/ovs.pp#L151

Changed in tripleo:
assignee: nobody → James Slagle (james-slagle)
status: New → Confirmed
importance: Undecided → High
Revision history for this message
James Slagle (james-slagle) wrote :

proposed fix in puppet-tripleo: https://review.openstack.org/#/c/268388

Changed in tripleo:
status: Confirmed → Fix Released
Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/puppet-tripleo 0.4.0

This issue was fixed in the openstack/puppet-tripleo 0.4.0 release.

Revision history for this message
Brad P. Crochet (brad-9) wrote :

Reopening. Upon enabling puppet runs during minor update, a new dependency cycle was found.

Error: Failed to apply catalog: Found 1 dependency cycle:
(Exec[/usr/bin/systemctl daemon-reload] => Service[iptables] => Class[Firewall::Linux::Redhat] => Stage[setup] => Stage[main] => Class[Tripleo::Packages] => Exec[package-upgrade] => Service[iptables])

Changed in tripleo:
milestone: none → ocata-1
status: Fix Released → Triaged
assignee: James Slagle (james-slagle) → nobody
assignee: nobody → Emilien Macchi (emilienm)
importance: High → Critical
tags: added: newton-backport-potential
Revision history for this message
Emilien Macchi (emilienm) wrote :
Changed in tripleo:
milestone: ocata-1 → newton-rc3
Changed in tripleo:
status: Triaged → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

This issue was fixed in the openstack/puppet-tripleo 0.4.0 release.

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.