Modernize omnibus config and reduce omnibus package size (#3543)

* Modernize the kitchen config

This is basically the same one we use in chef/chef

* Modernize the omnibus deps
* Remove cookbook constraints
* Avoid security warnings when bundle installing
* Use the ruby-cleanup project to slim the omnibus package

We're using this in chef and DK to greatly reduce our artifact size. It's just a set of cleanup steps that are the same for all ruby omnibus projects.

Signed-off-by: Tim Smith <tsmith@chef.io>
This commit is contained in:
Tim Smith 2018-10-29 13:01:45 -07:00 committed by Jared Quick
parent 41b19003de
commit 559d6d3178
5 changed files with 36 additions and 35 deletions

View file

@ -1,6 +0,0 @@
driver:
name: vagrant
provider: vmware_fusion
customize:
numvcpus: 4
memsize: 4096

View file

@ -4,10 +4,10 @@ source 'https://supermarket.chef.io'
cookbook 'omnibus'
# Uncomment to use the latest version of the Omnibus cookbook from GitHub
# cookbook 'omnibus', github: 'opscode-cookbooks/omnibus'
# cookbook 'omnibus', github: 'chef-cookbooks/omnibus'
group :integration do
cookbook 'apt', '~> 2.8'
cookbook 'freebsd', '~> 0.3'
cookbook 'yum-epel', '~> 0.6'
cookbook 'apt'
cookbook 'freebsd'
cookbook 'yum-epel'
end

View file

@ -11,8 +11,8 @@ source 'https://rubygems.org'
# gem 'omnibus-software', github: 'chef/omnibus-software', branch: 'ksubrama/ruby23'
# Use entries from chef's Gemfile
gem 'omnibus', github: 'chef/omnibus'
gem 'omnibus-software', github: 'chef/omnibus-software'
gem 'omnibus', git: 'https://github.com/chef/omnibus', branch: 'master'
gem 'omnibus-software', git: 'https://github.com/chef/omnibus-software', branch: 'master'
# This development group is installed by default when you run `bundle install`,
# but if you are using Omnibus in a CI-based infrastructure, you do not need
@ -20,10 +20,10 @@ gem 'omnibus-software', github: 'chef/omnibus-software'
# by running `bundle install --without development` to speed up build times.
group :development do
# Use Berkshelf for resolving cookbook dependencies
gem 'berkshelf', '~> 4.3'
gem 'berkshelf', '>= 7.0'
# Use Test Kitchen with Vagrant for converging the build environment
gem 'kitchen-vagrant', '~> 0.19'
gem 'test-kitchen', '~> 1.9'
gem 'winrm-fs', '~> 0.4'
gem 'kitchen-vagrant', '~> 1.3.1'
gem 'test-kitchen', '~> 1.21'
gem 'winrm-fs', '~> 1.0'
end

View file

@ -59,6 +59,8 @@ dependency 'openssl-customization'
# Remove all .dll.a and .a files needed for static linkage.
dependency 'clean-static-libs'
dependency 'ruby-cleanup'
package :rpm do
signing_passphrase ENV['OMNIBUS_RPM_SIGNING_PASSPHRASE']
unless rhel? && platform_version.satisfies?('< 6')

View file

@ -11,7 +11,6 @@ driver:
provisioner:
name: chef_zero
require_chef_omnibus: true
attributes:
vagrant:
this_key_exists_so_we_have_a_vagrant_key: true
@ -22,41 +21,47 @@ provisioner:
install_dir: /opt/inspec
platforms:
- name: centos-7.2
- name: centos-6
run_list: yum-epel::default
- name: centos-6.7
- name: centos-7
run_list: yum-epel::default
- name: debian-8.2
- name: debian-8
run_list: apt::default
- name: debian-7.9
- name: debian-9
run_list: apt::default
- name: ubuntu-14.04
run_list: apt::default
- name: ubuntu-12.04
- name: ubuntu-16.04
run_list: apt::default
# The following (private) boxes are shared via Atlas and are only
- name: ubuntu-18.04
run_list: apt::default
# The following (private) boxes are shared via Vagrant Cloud and are only
# available to users working for Chef. Sorry, it's about software licensing.
#
# Chef-internal users, you will need to:
# 1. Create an Atlas account: https://atlas.hashicorp.com/
# 2. Ping #eng-services-support with your Atlas account name
# to be added to the relevant team in Atlas,
# 3. Do `vagrant login` with your Atlas creds so that you can download
# the private boxes.
# 1. Create an Vagrant Cloud account: http://vagrantcloud.com/
# 2. Ping #releng-support with your account name to be added to the relevant team.
# 3. Do `vagrant login` with your creds so that you can download the private boxes.
#
# The Mac OS X boxes are VMware only also. You can enable VMware Fusion
# by activating the `.kitchen.vmware.yml` file with the `KITCHEN_LOCAL_YAML`
# The macOS boxes are VMware only also. You can enable VMware Fusion
# by activating the `kitchen.vmware.yml` file with the `KITCHEN_LOCAL_YAML`
# environment variable:
#
# KITCHEN_LOCAL_YAML=.kitchen.vmware.yml kitchen converge inspec-macosx-109
# KITCHEN_LOCAL_YAML=kitchen.vmware.yml kitchen converge chef-macosx-1011
#
# OSX
<% %w(
10.9
10.10
10.11
macosx-10.11
macos-10.12
macos-10.13
).each do |mac_version| %>
- name: macosx-<%= mac_version %>
- name: <%= mac_version %>
driver:
provider: vmware_fusion
customize:
numvcpus: 4
memsize: 4096
box: chef/macosx-<%= mac_version %> # private
synced_folders:
- ['..', '/Users/vagrant/chef']