Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/infrastructure-puppet-kitchen
diff --git a/.kitchen.yml b/.kitchen.yml
index 59d0b8a..5a59d75 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -17,11 +17,12 @@
   hiera_deep_merge: true
   vm_hostname: 'test'
   require_chef_for_busser: false
-  puppet_debug: false
+#  require_puppet_repo: false
+# puppet_logdest:
+#   - 'console'
+  puppet_debug: true
   puppet_verbose: true
-  # require_puppet_repo: false
-  # puppet_logdest:
-    # - 'console'
+
   #http_proxy: 'http://192.168.1.3:3142' # Disable this unless you use apt-cacher-ng or something that caches
 
 platforms:
@@ -32,8 +33,7 @@
   - name: ubuntu1664
     driver:
       box: ubuntu/xenial64
-      # this uses the Atlas vagrant box from 
-      # https://atlas.hashicorp.com/ubuntu/boxes/xenial64
+      box_url: https://atlas.hashicorp.com/puppetlabs/boxes/ubuntu-16.04-64-nocm/versions/1.0.0/providers/virtualbox.box
 
 suites:
   - name: default
@@ -41,15 +41,11 @@
     driver_config:
       network:
         - ["private_network", {ip: "192.168.33.2"}]
-    # do not build default on 14.04
-    excludes:
-      - ubuntu1464
-
+    excludes: 
+        - ubuntu1464
   - name: tlp
     manifest: site.pp
     driver_config:
       network:
         - ["private_network", {ip: "192.168.33.2"}]
-    # do not build TLP on 16.04
-    excludes:
-      - ubuntu1664
+
diff --git a/README.md b/README.md
index c4af8c1..67d2067 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
 -- things with names like `apt`, `gem`, `hiera`, `kitchen`, `puppet`, and
 `r10k`.  To make things easier, the Apache infrastructure team provides a base
 definition on top of which you install and configure 'modules'.  Modules can
-be pretty much anything, examples being `apt` and `tomcat`.
+be pretty much anything, examples being `ldap` and `tomcat`.
 
 There are two sets of modules that you can draw from: [3rd party modules](https://github.com/apache/infrastructure-puppet/blob/deployment/Puppetfile) and [ASF])https://github.com/apache/infrastructure-puppet/tree/deployment/modules) modules.
 
@@ -42,6 +42,9 @@
 
 ```
 gem install bundler
+gem install test-kitchen
+gem install kitchen-puppet
+gem install kitchen-vagrant
 cd <path to infrastructure-puppet repo>
 bundle install
 ```
@@ -65,8 +68,35 @@
 
 ### Boostrapping
 
-```
+ ``
+to upgrade to the latest RubyGems:  gem update --system  ##may need to be administrator or root
+*** NOTE: RubyGems 1.1 and 1.2 have problems upgrading when there is no rubygems-update installed. 
+You will need to use the following instructions if you see Nothing to update. If you have an older version of RubyGems installed, 
+    then you can still do it in two steps:
+
+    $ gem install rubygems-update  # again, might need to be admin/root
+    $ update_rubygems              # ... here too
+kitchen login default-ubuntu1664
+sudo gem install puppet
+sudo gem install bundle
+sudo gem install kitchen-sync
+
+remove the block puppetlabs and puppetdeps from puppet/data/ubuntu/1604.yaml
+In the suites section add the excludes in nfrastructure-puppet-kitchen/.kitchen.yml  as follows:
+suites:
+  - name: default
+    manifest: site.pp
+    driver_config:
+      network:
+        - ["private_network", {ip: "192.168.33.2"}]
+    excludes: 
+        - ubuntu1464  #you get this name from the "platforms"section in the .kitchen.yml file
+
+
+
+from the main directory where you cloned infrastructure-puppet-kitchen
 kitchen create default
+kitchen exec default -c 'sudo gem install deep_merge'
 kitchen converge default
 ```
 
@@ -101,10 +131,12 @@
 
 Third party modules are listed in
 [infrastructure-puppet/Puppetfile](https://raw.githubusercontent.com/apache/infrastructure-puppet/deployment/Puppetfile),
-and updated using the `bin/pull` command described above, which uses `r10k` to populate the 3rdParty directory. This is distinctly different than the standard method of installing modules using `puppet module install`.
+and updated using the `bin/pull` command described above.  Information on
+locating a module can be found at
+[puppet labs documentation](http://docs.puppetlabs.com/puppet/4.3/reference/quick_start_module_install_nix.html).
 
 Custom modules are stored in
-[infrastructure-puppet/modules/](https://github.com/apache/infrastructure-puppet/tree/deployment/modules). Documentation on how to write a module can be found in the [puppet labs documentation](https://docs.puppet.com/puppet/3.8/reference/modules_fundamentals.html).
+[infrastructure-puppet/modules/](https://github.com/apache/infrastructure-puppet/tree/deployment/modules).  Again, documentation on how to write a module can be found in the [puppet labs documentation](http://docs.puppetlabs.com/puppet/4.3/reference/quick_writing_nix.html).
 
 ### Cleanup
 
diff --git a/puppet/data/ubuntu/1604.yaml b/puppet/data/ubuntu/1604.yaml
deleted file mode 100644
index 2f0da1f..0000000
--- a/puppet/data/ubuntu/1604.yaml
+++ /dev/null
@@ -1,156 +0,0 @@
----
-classes:
-  - apt
-  - apt::update
-  - git_asf
-  - python
-  - subversionclient
-  - unattended_upgrades
-
-base::basepackages:
-  - apt-file
-  - bash
-  - ca-certificates
-  - haveged
-  - htop
-  - iotop
-  - libnet-snmp-perl
-  - libsnmp-perl
-  - libnss-myhostname
-  - sockstat
-  - software-properties-common
-  - vim
-  - zsh
-
-base::purgedpackages:
-  - 'collectd'
-  - 'collectd-core'
-
-apache::mod::geoip::enable: true
-apache::mod::geoip::flag: 'MemoryCache'
-apache::mod::geoip::db_file:
- - '/usr/share/GeoIP/GeoIP.dat'
- - '/usr/share/GeoIP/GeoIPCity.dat'
-
-apache::mod::ssl::ssl_cipher: 'HIGH:MEDIUM:!aNULL:!MD5:!RC4'
-
-apache::log_formats:
-  combined: '<%%JSON:httpd_access%%> {
-    \"time\": \"%%{}{%Y-%m-%dT%H:%M:%S%z}t\",
-    \"clientip\": \"%a\",
-    \"duration\": %D,
-    \"status\": %>s,
-    \"request\": \"%U%q\",
-    \"uri\": \"%U\",
-    \"remote_user\": \"%u\",
-    \"query_string\": \"%q\",
-    \"document\": \"%f\",
-    \"bytes\": %B,
-    \"request_method\": \"%m\",
-    \"referer\": \"%%{}{Referer}i\",
-    \"useragent\": \"%%{}{User-agent}i\",
-    \"vhost\": \"%%{}{Host}i\",
-    \"geo_country\": \"%%{}{GEOIP_COUNTRY_CODE}n\",
-    \"geo_long\": \"%%{}{GEOIP_LONGITUDE}n\",
-    \"geo_lat\": \"%%{}{GEOIP_LATITUDE}n\",
-    \"geo_coords\": \"%%{}{GEOIP_LATITUDE}n,%%{}{GEOIP_LONGITUDE}n\",
-    \"geo_city\": \"%%{}{GEOIP_CITY}n\",
-    \"geo_combo\": \"%%{}{GEOIP_CITY}n, %%{}{GEOIP_COUNTRY_NAME}n\"
-    }'
-
-apt::sources:
-  'asf_internal':
-    location: 'https://packages.apache.org/asf_internal'
-    release: 'xenial'
-    repos: 'main'
-    key: '390EF70BB1EA12B2773962950EE62FB37A00258D'
-    key_server: 'pgp.mit.edu'
-    include_deb: true
-    include_src: false
-  'elasticsearch':
-    location: 'https://packages.elasticsearch.org/elasticsearch/1.7/debian'
-    release: 'stable'
-    repos: 'main'
-    key: '46095ACC8548582C1A2699A9D27D666CD88E42B4'
-    key_server: 'pgp.mit.edu'
-    include_deb: true
-    include_src: false
-  'lxc_docker':
-    location: 'https://get.docker.io/ubuntu'
-    release: 'docker'
-    repos: 'main'
-    key: '36A1D7869245C8950F966E92D8576A8BA88D21E9'
-    key_server: 'hkp://keyserver.ubuntu.com:80'
-    include_deb: true
-    include_src: false
-  'puppetlabs':
-    location: 'https://apt.puppetlabs.com'
-    release: 'xenial'
-    repos: 'main'
-    key: '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30'
-    key_server: 'keyserver.ubuntu.com'
-    include_deb: true
-    include_src: false
-  'puppetdeps':
-    location: 'https://apt.puppetlabs.com'
-    release: 'xenial'
-    repos: 'dependencies'
-    key: '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30'
-    key_server: 'keyserver.ubuntu.com'
-    include_deb: true
-    include_src: false
-  'vmware-tools':
-    location: 'http://packages.vmware.com/packages/ubuntu'
-    release: 'xenial'
-    repos: 'main'
-    key: '36E47E1CC4DCC5E8152D115CC0B5E0AB66FD4949'
-    key_server: 'pgp.mit.edu'
-    include_deb: true
-    include_src: false
-
-apt::force:
-  'orthrus':
-    release: 'main'
-  require: Apt::Source['asf_internal']
-
-unattended_upgrades::update: 1
-unattended_upgrades::download: 1
-unattended_upgrades::upgrade: 1
-unattended_upgrades::autoclean: 7
-unattended_upgrades::origins:
-  - '${distro_id} ${distro_codename}-security'
-
-logrotate::rule:
-  apache2:
-    name: 'apache2'
-    path: '/var/log/apache2/*.log'
-    ensure: 'absent'
-    compress: true
-    compressoptions: '-9'
-    rotate: 7
-    create_owner: 'root'
-    create_group: 'adm'
-    rotate_every: 'day'
-    create_mode: '0644'
-    missingok: true
-    dateext: true
-    delaycompress: false
-    ifempty: false
-    create: true
-    sharedscripts: true
-    postrotate:
-      - 'if /etc/init.d/apache2 status > /dev/null ; then /etc/init.d/apache2 reload > /dev/null; fi;'
-    prerotate:
-      - 'if [ -d /etc/logrotate.d/httpd-prerotate ]; then run-parts /etc/logrotate.d/httpd-prerotate; fi;'
-
-ntp::interfaces:
-    - eth0
-    - lo
-
-python::dev: true
-python::pip: true
-
-subversionclient::packages:
-  - subversion
-subversionclient::svn_conf_config:       '/etc/subversion/config'
-subversionclient::svn_conf_servers:      '/etc/subversion/servers'