package update dependency cycles in puppet-tripleo

Bug #1536349 reported by James Slagle on 2016-01-20
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
tripleo
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
James Slagle (james-slagle) wrote :

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

Changed in tripleo:
status: Confirmed → Fix Released

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

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
Emilien Macchi (emilienm) wrote :
Changed in tripleo:
milestone: ocata-1 → newton-rc3
Changed in tripleo:
status: Triaged → Fix Released

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  Edit
Everyone can see this information.

Other bug subscribers