fuel 9.0 prioritizes mos packages over plugin provided packages

Bug #1625693 reported by Brian Hunter
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Confirmed
High
Fuel Sustaining

Bug Description

Our plugin repository contains packages that also exist in the core MOS repositories.
Some of these are commonly used packages, for example, python-troveclient.

In 9.0, we can no longer install such packages using the default mechanisms.

We find that 9.0 introduces changes whereby no /etc/apt/preferences.d/<plugin>.pref file is created, so plugin repositories get the default priority.
All packages that come from plugin's repo will have the priority "500".
All packages from mos are assigned 1050, so they will always 'win' - be picked as candidate to be installed.

8.0 created a preferences file that pinned plugin repositories to 1100. 9.0 no longer does this.

8.0 assumed that if a plugin provided a package, it was to overwrite the core packages.
9.0 assumes the opposite - that no plugin will overwrite packages provided by core mos repos.

Tools to reproduce;
- create a plugin that provides one package, say 'python-troveclient'. Create this intentionally with a higher version than the core mos one, perhaps 1.99.0
- write some plugin tasks/puppet to install this one package [without specifying a version #]
- observe that it doesn't work. [EDIT: Observe that the mos version of
the package is installed, despite the plugin version being higher]
  Further observe when you run 'apt-cache policy python-troveclient' - on I beleive any provisioned host in the environment- you see different results in 8.0 and 9.0.

Changed in fuel:
milestone: none → 9.2
assignee: nobody → Fuel Sustaining (fuel-sustaining-team)
status: New → Confirmed
importance: Undecided → High
tags: added: area-library
tags: added: customer-found
Revision history for this message
Brian Hunter (bhunter) wrote :

I'm able to work around this issue with puppet roughly like so;

apt::pin { 'fuel-plugin-tesora-dbaas-1.9.0':
    priority => 1100,
    label => 'fuel-plugin-tesora-dbaas',
    release_version => '1.9',
}

which yields a apt preferences file:
root@node-2:~# cat /etc/apt/preferences.d/fuel-plugin-tesora-dbaas-1.9.0.pref
# This file is managed by Puppet. DO NOT EDIT.
Explanation: : fuel-plugin-tesora-dbaas-1.9.0
Package: *
Pin: release v=1.9, l=fuel-plugin-tesora-dbaas
Pin-Priority: 1100

I create a fuel task to run just this 1 puppet resource.
I'm able to run this task early enough to prevent flip-flopping between versions.
For example, Heat installation will cause python-troveclient package to be installed, and it will be Tesora version of this package from the get-go. As it was in 8.0.

Brian Hunter (bhunter)
description: updated
Revision history for this message
Brian Hunter (bhunter) wrote :

We're curious about this bug.
What will be the state of master- 10.0 and future releases- with respect to plugin's repository versus mos repos?

Revision history for this message
Sam Stoelinga (sammiestoel) wrote :

This seems to be a duplicate of https://bugs.launchpad.net/fuel/+bug/1602719 or the other way around.

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.