ceph / ceph-cookbook

Chef cookbooks for Ceph
Apache License 2.0
100 stars 108 forks source link

recipe[ceph::apt] breaks with apt cookbook >= 2.7.0 #193

Closed jperville closed 9 years ago

jperville commented 9 years ago

I just found out that the recipe[ceph::apt] is broken with recent (>= 2.7.0) version of the apt cookbook.

==> backends: Chef::Exceptions::ValidationFailed
==> backends: ----------------------------------
==> backends: Option package_name's value * does not match regular expression [/^([a-z]|[A-Z]|[0-9]|_|-|\.)+$/]
==> backends: 
==> backends: 
==> backends: Cookbook Trace:
==> backends: ---------------
==> backends:   /tmp/vagrant-chef/a18f1b1b56cdb4f3151fc70d8ad2a838/cookbooks/ceph/recipes/apt.rb:13:in `block in from_file'
==> backends:   /tmp/vagrant-chef/a18f1b1b56cdb4f3151fc70d8ad2a838/cookbooks/ceph/recipes/apt.rb:12:in `from_file'
==> backends: 
==> backends:   /tmp/vagrant-chef/a18f1b1b56cdb4f3151fc70d8ad2a838/cookbooks/ceph/recipes/repo.rb:3:in `from_file'
==> backends: 
==> backends:   /tmp/vagrant-chef/a18f1b1b56cdb4f3151fc70d8ad2a838/cookbooks/pm-ceph/recipes/default.rb:29:in `from_file'
==> backends:   /tmp/vagrant-chef/a18f1b1b56cdb4f3151fc70d8ad2a838/cookbooks/pm-ceph/recipes/mon.rb:10:in `from_file'
==> backends: 

As shown by the above trace, the culprit is https://github.com/ceph/ceph-cookbook/blob/master/recipes/apt.rb#L13

apt_preference 'ceph_repo' do
  package_name '*' # <--- here
  pin 'origin "ceph.com"'
  pin_priority '1001'
end

Which triggers https://github.com/opscode-cookbooks/apt/commit/d9da7847c58d156ad1e24021d49511efdce0394d#diff-e34be685fe9b4a095faaba48630cb896

According to the comments of the above commit, it seems that '*' is not a legal for the apt_preference package_name, and that it will remain illegal in the future.

For now, my workaround is to lock apt version to the last pre-2.7.0 version, 2.6.1.

guilhem commented 9 years ago

fixed by #192 ;)

jperville commented 9 years ago

Thanks @guilhem :) Waiting for the next official release of the cookbook then.