fuel 9.0 prioritizes mos packages over plugin provided packages
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/
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-
- 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 |
description: | updated |
I'm able to work around this issue with puppet roughly like so;
apt::pin { 'fuel-plugin- tesora- dbaas-1. 9.0': tesora- dbaas',
priority => 1100,
label => 'fuel-plugin-
release_version => '1.9',
}
which yields a apt preferences file: preferences. d/fuel- plugin- tesora- dbaas-1. 9.0.pref tesora- dbaas-1. 9.0 plugin- tesora- dbaas
root@node-2:~# cat /etc/apt/
# This file is managed by Puppet. DO NOT EDIT.
Explanation: : fuel-plugin-
Package: *
Pin: release v=1.9, l=fuel-
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.