Bug 1284978

Summary: packstack --allione fails on applying prescript.pp due to new hiera package
Product: [Community] RDO Reporter: Alvaro Aleman <alv2412>
Component: openstack-packstackAssignee: Alan Pevec <apevec>
Status: CLOSED CURRENTRELEASE QA Contact: yeylon <yeylon>
Severity: high Docs Contact:
Priority: high    
Version: LibertyCC: alv2412, aortega, apevec, apevec, derekh, dmsimard, jpena, mfuruta, srevivo, tdecacqu, yeylon
Target Milestone: ---   
Target Release: Juno   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-packstack-7.0.0-0.7.dev1661.gaf13b7e.el7 openstack-packstack-2015.1-0.14.dev1616.g5526c38.el7 openstack-packstack-2014.2-0.27.dev1480.g752c46d.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-27 20:04:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Full output none

Description Alvaro Aleman 2015-11-24 15:25:20 UTC
Description of problem:


Version-Release number of selected component (if applicable):
openstack-packstack.noarch      2015.2-0.1.dev1654.gcbbf46e.el7 @openstack-liberty

How reproducible:
1ßß%

Steps to Reproduce:

sudo yum update -y
sudo yum install -y https://www.rdoproject.org/repos/rdo-release.rpm
sudo yum install -y openstack-packstack
packstack --allinone

Actual results:

ERROR : Error appeared during Puppet run: 192.168.121.187_prescript.pp
Error: Evaluation Error: Error while evaluating a Function Call, Could not find data item CONFIG_USE_SUBNETS in any Hiera data file and no default supplied at /var/tmp/packstack/7c0f1f44cd854c0c965dd30fe2659094/manifests/192.168.121.187_prescript.pp:2:22 on node controller.localhost


Expected results:

A working openstack

Comment 1 David Moreau Simard 2015-11-24 15:27:54 UTC
Created attachment 1098249 [details]
Full output

Also reproduced with --provision-demo=y

Comment 2 Javier Peña 2015-11-24 16:12:24 UTC
Thanks for reporting this. After some tests, it looks like this issue is caused by a newer version of hiera available in EPEL (3.0.1 vs 1.3.4 that was commonly used with Packstack).

The hiera.yaml provided by this new version includes the following hierachy:

:hierarchy:
  - "nodes/%{::trusted.certname}"
  - common

That means hiera will look for a file called common.yaml, as opposed to defaults.yaml that was used with 1.3.4. Since hiera cannot find the file, the first reference to a variable fails.

As a workaround until the proper fix is merged, we can blacklist the EPEL hiera package by adding the following to /etc/yum.repos.d/epel.repo:


[epel]
...
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
exclude=hiera*

Comment 3 Javier Peña 2015-11-24 17:24:37 UTC
Commit https://review.openstack.org/249300 with a fix is now merged. Also backported to Kilo (https://review.openstack.org/249301) and Juno (https://review.openstack.org/249303).

Comment 4 Alan Pevec (Fedora) 2015-11-24 20:53:26 UTC
BTW EPEL is not required (and not tested in CI jobs) with RDO >= Kilo

Comment 5 David Moreau Simard 2015-11-24 23:39:06 UTC
Confirmed that the version in delorean fixes this bug.
Note that yum-plugin-priorities was required because the openstack-packstack package is both in delorean and delorean-deps. The semver from delorean-deps was older but was considered more up-to-date due to a higher semver ?

Haikel explained this as:
For RPM, release "0.4.dev1661.gaf13b7e.el7" (in liberty testing) >
"dev1673.gdc3e416.el7" (in delorean) hence RPM thinking the one in
liberty testing is newer than the one in delorean.

Comment 6 David Moreau Simard 2015-11-25 02:30:40 UTC
CI is green on current, running a full batch of tests before promoting to current-passed-ci.

Comment 7 Alvaro Aleman 2015-11-25 10:20:55 UTC
@Alan Pevec:

If you execute the "Summary for impatient" on the RDO page (https://www.rdoproject.org/install/quickstart/), EPEL gets pulled in on CentOS 7 (tested with vagrant centos/7 box).

Idk exactly at what step and currently I don't got the time to test that out, but if your CI jobs don't test EPEL, you should definitely not have RDO do that by default.

Comment 8 Alan Pevec 2015-11-25 11:11:12 UTC
Quickstart instructuons do not enable EPEL repo explicitly, I'll have a look at where EPEL gets enabled. What was exactly your base vagrant centos/7 image?

Re. comment 5 - delorean repo requires yum priorities instead of relying on upstream generated Version-Release. Fix could be to make Delorean and/or PBR generate Fedora compliant pre-release NVR but that's fragile.

I'll rebuild packstack RPM for RDO Juno/Kilo/Liberty repos to include patches from comment 3.

Comment 9 Javier Peña 2015-11-25 11:15:59 UTC
Packstack enables EPEL automatically when a package called rdo-release is installed. This was needed before (maybe < or <= Kilo?) and it has never been removed since.

Since EPEL is not a requirement anymore (even for RHEL?), we can remove that code now.

Comment 10 Alan Pevec 2015-11-25 11:40:50 UTC
(In reply to Javier Peña from comment #9)
> Packstack enables EPEL automatically when a package called rdo-release is
> installed. This was needed before (maybe < or <= Kilo?) and it has never
> been removed since.

That should be removed for >= Kilo but OTOH users could have EPEL enabled for other reasons, so we need to make it work with EPEL either enable or disabled.

Comment 11 Alan Pevec 2015-11-25 12:17:23 UTC
openstack-packstack-7.0.0-0.5.dev1661.gaf13b7e.el7 is now in RDO Liberty testing repo buildlogs.centos.org/centos/7/cloud/x86_64/openstack-liberty/

Comment 12 Alan Pevec 2015-11-25 12:20:16 UTC
openstack-packstack-2015.1-0.13.dev1616.g5526c38.el7 is now in RDO Kilo testing repo http://buildlogs.centos.org/centos/7/cloud/x86_64/openstack-kilo/

Comment 13 Alan Pevec 2015-11-27 16:12:09 UTC
Follow up fix:
* Wed Nov 25 2015 Javier Peña <jpena> - 2015.1-0.14.dev.dev1616.g5526c38
- Do not enable EPEL when installing RDO

Comment 15 Javier Peña 2015-11-27 16:55:30 UTC
I have tested openstack-packstack-7.0.0-0.7 from the liberty-testing repo, and I can confirm it works fine in an allinone install.

Comment 16 Alvaro Aleman 2015-11-27 16:56:43 UTC
(In reply to Tristan Cacqueray from comment #14)
> I confirm the error and but the workaround to exclude=hiera* from epel
> doesn't worked well for me. [...]

It does work, but has to be done on all nodes not just the one you execute packstack from.

Comment 18 Tristan Cacqueray 2015-11-27 20:18:20 UTC
Alvaro, it used to failed on allinone single node when epel was already installed and hiera was downgraded to hiera-1.3.4-1.el7.noarch (CentOS 7). It's like the exclude was not enough to prevent this bug. Anyways, I can't reproduce this anymore since the fixing packages is now in the main repository.

All good now, thanks!