Giter VIP home page Giter VIP logo

kitchen-salt's People

Contributors

amontalban avatar arif-ali avatar arthurzenika avatar avanier avatar awerner avatar barkingfoodog avatar ch3ll avatar corux avatar dafyddj avatar daks avatar dwoz avatar ek9 avatar epcim avatar gtmanfred avatar guskovd avatar jbussdieker avatar jzandbergen avatar kaisforza avatar lomeroe avatar milosgajdos avatar n-rodriguez avatar neillturner avatar olhado avatar omnis-jedi avatar ppg avatar s0undt3ch avatar scriptautomate avatar simonmcc avatar streambinder avatar twmartin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kitchen-salt's Issues

SPM Download failing due to path issue?

I am having a bit of trouble figuring out where the issue is on this one. It looks as if SPM tries to download the path but can't due to a salt-master directory of /var/cache/salt/master not being existent? How does salt_solo replicate the salt master?

I, [2017-07-19T17:38:15.093337 #70753] INFO -- default-ubuntu-1404: Install External Dependencies
I, [2017-07-19T17:38:15.572070 #70753] INFO -- default-ubuntu-1404: [ERROR ] An un-handled exception was caught by salt's global exception handler:
I, [2017-07-19T17:38:15.572313 #70753] INFO -- default-ubuntu-1404: SaltClientError: Could not access /var/cache/salt/master. Path does not exist.
I, [2017-07-19T17:38:15.572896 #70753] INFO -- default-ubuntu-1404: Traceback (most recent call last):
I, [2017-07-19T17:38:15.573081 #70753] INFO -- default-ubuntu-1404: File "/usr/bin/spm", line 12, in
I, [2017-07-19T17:38:15.573277 #70753] INFO -- default-ubuntu-1404: salt_spm()
I, [2017-07-19T17:38:15.573435 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/scripts.py", line 487, in salt_spm
I, [2017-07-19T17:38:15.574014 #70753] INFO -- default-ubuntu-1404: spm.run()
I, [2017-07-19T17:38:15.574213 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/cli/spm.py", line 34, in run
I, [2017-07-19T17:38:15.575196 #70753] INFO -- default-ubuntu-1404: client.run(self.args)
I, [2017-07-19T17:38:15.575852 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 113, in run
I, [2017-07-19T17:38:15.576032 #70753] INFO -- default-ubuntu-1404: self._install(args)
I, [2017-07-19T17:38:15.576172 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 236, in _install
I, [2017-07-19T17:38:15.576310 #70753] INFO -- default-ubuntu-1404: self.client = salt.client.get_local_client(self.opts['conf_file'])
I, [2017-07-19T17:38:15.576459 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 104, in get_local_client
I, [2017-07-19T17:38:15.576637 #70753] INFO -- default-ubuntu-1404: auto_reconnect=auto_reconnect)
I, [2017-07-19T17:38:15.576788 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 160, in init
I, [2017-07-19T17:38:15.577119 #70753] INFO -- default-ubuntu-1404: self.key = self.__read_master_key()
I, [2017-07-19T17:38:15.577311 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 193, in __read_master_key
I, [2017-07-19T17:38:15.577346 #70753] INFO -- default-ubuntu-1404: self.skip_perm_errors)
I, [2017-07-19T17:38:15.577367 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/utils/verify.py", line 399, in check_path_traversal
I, [2017-07-19T17:38:15.577388 #70753] INFO -- default-ubuntu-1404: raise SaltClientError(msg)
I, [2017-07-19T17:38:15.577407 #70753] INFO -- default-ubuntu-1404: SaltClientError: Could not access /var/cache/salt/master. Path does not exist.
I, [2017-07-19T17:38:15.577563 #70753] INFO -- default-ubuntu-1404: Traceback (most recent call last):
I, [2017-07-19T17:38:15.577706 #70753] INFO -- default-ubuntu-1404: File "/usr/bin/spm", line 12, in
I, [2017-07-19T17:38:15.577831 #70753] INFO -- default-ubuntu-1404: salt_spm()
I, [2017-07-19T17:38:15.578054 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/scripts.py", line 487, in salt_spm
I, [2017-07-19T17:38:15.578223 #70753] INFO -- default-ubuntu-1404: spm.run()
I, [2017-07-19T17:38:15.578327 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/cli/spm.py", line 34, in run
I, [2017-07-19T17:38:15.578352 #70753] INFO -- default-ubuntu-1404: client.run(self.args)
I, [2017-07-19T17:38:15.578371 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 113, in run
I, [2017-07-19T17:38:15.578500 #70753] INFO -- default-ubuntu-1404: self._install(args)
I, [2017-07-19T17:38:15.578524 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/spm/init.py", line 236, in _install
I, [2017-07-19T17:38:15.578638 #70753] INFO -- default-ubuntu-1404: self.client = salt.client.get_local_client(self.opts['conf_file'])
I, [2017-07-19T17:38:15.578724 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 104, in get_local_client
I, [2017-07-19T17:38:15.578749 #70753] INFO -- default-ubuntu-1404: auto_reconnect=auto_reconnect)
I, [2017-07-19T17:38:15.578768 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 160, in init
I, [2017-07-19T17:38:15.578900 #70753] INFO -- default-ubuntu-1404: self.key = self.__read_master_key()
I, [2017-07-19T17:38:15.578924 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/client/init.py", line 193, in __read_master_key
I, [2017-07-19T17:38:15.579514 #70753] INFO -- default-ubuntu-1404: self.skip_perm_errors)
I, [2017-07-19T17:38:15.579556 #70753] INFO -- default-ubuntu-1404: File "/usr/lib/python2.7/dist-packages/salt/utils/verify.py", line 399, in check_path_traversal
I, [2017-07-19T17:38:15.579579 #70753] INFO -- default-ubuntu-1404: raise SaltClientError(msg)
I, [2017-07-19T17:38:15.580644 #70753] INFO -- default-ubuntu-1404: salt.exceptions.SaltClientError: Could not access /var/cache/salt/master. Path does not exist.

Broken ability to fetch dependencies from path

Docs

provisioner:
  dependencies:
    - name: foo
      path: ../formulas/foo

Version

broken since 0.0.25

Why

dependencies.erb:

  # install formulas
  config[:dependencies].select{|dependency| dependency.has_key?(:repo)}.each do |formula|

only dependencies with "repo" key are fetched.

How to reproduce

.kitchen.yml

provisioner:
  name: salt_solo
  formula: zabbix
  dependencies:
    - path: ../oracle-jdk-formula
      name: oracle-jdk
    - path: ../nginx-formula
      name: nginx
    - path: ../fpm-formula
      name: fpm

Cannot use pillar data

It seems that its not possible to use pillar data from files anymore.

To reproduce:

git clone https://github.com/seegno/influxdb-formula.git
cd influxdb-formila
bundle
# Edit some pillar data on pillar example
vim pillar.example
bundle exec kitchen converge
kitchen login

Verify that the files in /tmp/kitchen/srv/pillar and the pillar data change was been ignored.

After a little research I noticed that data_path is always null now.

Any ideas ?

Regards,
Alfredo Palhares

Cut a new release

Hi there! Can you please release a new version of kitchen-salt?
Thank you!

Verify fails on windows with serverspec busser

I'm trying to do basic serverspec testing on a windows vagrant VM, but the busser appeard to be breaking.. Here are the logs and diagnose output. It looks like the & prefix is being encoded, but I'm not sure. Is this a kitchen-salt issue, or test-kitchen in general?

I can tell you the path is correct after manually inspecting the box.Although Pester is a workaround, but we want to use the same tool across platforms.

kitchan-salt cannot download salt packages on debian/jessie

The problem is because of lack apt-transport-https packages

-----> Converging <default-xbtsyslog-debian-jessie64>...
       Preparing files for transfer
       Preparing salt-minion
       Preparing pillars into /srv/pillar
       Preparing grains into /etc/salt/grains
       Preparing state collection
       neither collection_name or formula have been set, assuming this is a pre-built collection
       Preparing state_top
       Preparing scripts into /etc/salt/scripts
       sh: 1: salt-call: not found
-----> Configuring apt repo for salt 2016.11.3
       deb https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/2016.11.3 jessie main
       downloading https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub
         to file /tmp/repo.key
       trying wget...
       OK
E: The method driver /usr/lib/apt/methods/https could not be found.
       N: Is the package apt-transport-https installed?
-----> Installing salt-minion (2016.11.3)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
       python-support is already the newest version.
       The following packages were automatically installed and are no longer required:
         libyaml-0-2 python-jinja2 python-mako python-markupsafe python-msgpack
         python-yaml
       Use 'apt-get autoremove' to remove them.
       0 upgraded, 0 newly installed, 0 to remove and 34 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
       E: Unable to locate package salt-minion
       E: Unable to locate package salt-common
       sh: 1: salt-call: not found
       No salt-minion installed, install must have failed!!
       salt_install = apt
       salt_url = https://bootstrap.saltstack.com
       bootstrap_options = 
       salt_version = 2016.11.3
       salt_apt_repo = https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest
       salt_apt_repo_key = https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub
       salt_ppa = ppa:saltstack/salt

source 'https://rubygems.org'

gem "test-kitchen", '>=1.2.1'
gem "kitchen-vagrant"
gem "unf"
gem "kitchen-salt", ">=0.0.27"

No matching sls found for 'iptables/ssh' in env 'base'

tried using this but the state doies not seem to be sent to the machine.

$ kitchen converge
kitchen-----> Starting Kitchen (v1.2.1)
-----> Converging <default-ubuntu-1310>...
       Preparing files for transfer
       Preparing salt-minion
       Preparing state_top
       Preparing pillars into /srv/pillar
       Preparing formula
You asked for latest and you have 2014.1.0 installed, sweet!       
       Transfering files to <default-ubuntu-1310>
[INFO    ] Using cached minion ID from /etc/salt/minion_id: default-ubuntu-1310.vagrantup.com       
[INFO    ] Loading fresh modules for state activity       
[INFO    ] Creating module dir '/var/cache/salt/minion/extmods/modules'       
[INFO    ] Syncing modules for environment 'base'       
[INFO    ] Loading cache from salt://_modules, for base)       
[INFO    ] Caching directory '_modules/' for environment 'base'       
[INFO    ] Creating module dir '/var/cache/salt/minion/extmods/states'       
[INFO    ] Syncing states for environment 'base'       
[INFO    ] Loading cache from salt://_states, for base)       
[INFO    ] Caching directory '_states/' for environment 'base'       
[INFO    ] Creating module dir '/var/cache/salt/minion/extmods/grains'       
[INFO    ] Syncing grains for environment 'base'       
[INFO    ] Loading cache from salt://_grains, for base)       
[INFO    ] Caching directory '_grains/' for environment 'base'       
[INFO    ] Creating module dir '/var/cache/salt/minion/extmods/renderers'       
[INFO    ] Syncing renderers for environment 'base'       
[INFO    ] Loading cache from salt://_renderers, for base)       
[INFO    ] Caching directory '_renderers/' for environment 'base'       
[INFO    ] Creating module dir '/var/cache/salt/minion/extmods/returners'       
[INFO    ] Syncing returners for environment 'base'       
[INFO    ] Loading cache from salt://_returners, for base)       
[INFO    ] Caching directory '_returners/' for environment 'base'       
[INFO    ] Creating module dir '/var/cache/salt/minion/extmods/outputters'       
[INFO    ] Syncing outputters for environment 'base'       
[INFO    ] Loading cache from salt://_outputters, for base)       
[INFO    ] Caching directory '_outputters/' for environment 'base'       
[INFO    ] Loading fresh modules for state activity       
local:       
    Data failed to compile:       
----------       
    No matching sls found for 'iptables/ssh' in env 'base'       
salt-call exit code: 0       
salt-call output grep exit code 1       
       Finished converging <default-ubuntu-1310> (0m18.06s).
-----> Kitchen is finished. (0m18.25s)

driver:
  name: vagrant

provisioner:
  name: salt_solo
  formula: iptables
  state_top:
    base:
      '*':
        - iptables/ssh


platforms:
  - name: ubuntu-13.10

suites:
  - name: default

Data failed to compile for custom salt formulas?

Is there a way to allow the salt provisioner to use custom Salt Stack formula locations? I am attempting to use a custom formula (sudoers) in my top.sls, but when I pass it through Test Kitchen I receive the following error:

local:
           Data failed to compile:
       ----------
           No matching sls found for 'sudoers' in env 'base'
       salt-call exit code: 0
           Data failed to compile:
           No matching sls found for 'sudoers' in env 'base'
       salt-call output grep exit code 0

I imagine it just an issue of correctly pointing the .kitchen.yml file to my formulas directory? I have formulas in /srv/salt/formulas.

If somebody could point me in the right direction that would be great.

As a workaround I have been able to copy the formula in to the /srv/salt/ directory and reference it there. I am new to salt but reading through docs it seems like it is best to separate formulas in to their own directory.

Exception when running kitchen converge

I, [2014-05-21T19:31:06.798440 #16015]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:31:07.036264 #16015]  INFO -- Kitchen: -----> Creating <default-ubuntu-1204>...
I, [2014-05-21T19:32:41.329813 #16576]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:32:41.578659 #16576]  INFO -- Kitchen: -----> Creating <default-ubuntu-1404>...
I, [2014-05-21T19:37:36.812231 #4255]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:37:37.050051 #4255]  INFO -- Kitchen: -----> Creating <default-ubuntu-server-1404>...
E, [2014-05-21T19:37:40.861568 #4255] ERROR -- Kitchen: ------Exception-------
E, [2014-05-21T19:37:40.861688 #4255] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-21T19:37:40.861747 #4255] ERROR -- Kitchen: Message: Failed to complete #create action: [Expected process to exit with [0], but received '1'
---- Begin output of vagrant up --no-provision --provider=virtualbox ----
STDOUT: Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'opscode-ubuntu-server-14.04' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Adding box 'opscode-ubuntu-server-14.04' (v0) for provider: virtualbox
    default: Downloading: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-server-14.04_chef-provisionerless.box

οΏ½[K    default: Progress: 0% (Rate: 0/s, Estimated time remaining: --:--:--)
οΏ½[K
STDERR: An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

The requested URL returned error: 404 Not Found
---- End output of vagrant up --no-provision --provider=virtualbox ----
Ran vagrant up --no-provision --provider=virtualbox returned 1]
E, [2014-05-21T19:37:40.861827 #4255] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-21T19:37:40.861883 #4255] ERROR -- Kitchen: Class: Kitchen::ShellOut::ShellCommandFailed
E, [2014-05-21T19:37:40.861939 #4255] ERROR -- Kitchen: Message: Expected process to exit with [0], but received '1'
---- Begin output of vagrant up --no-provision --provider=virtualbox ----
STDOUT: Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'opscode-ubuntu-server-14.04' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Adding box 'opscode-ubuntu-server-14.04' (v0) for provider: virtualbox
    default: Downloading: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-server-14.04_chef-provisionerless.box

οΏ½[K    default: Progress: 0% (Rate: 0/s, Estimated time remaining: --:--:--)
οΏ½[K
STDERR: An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

The requested URL returned error: 404 Not Found
---- End output of vagrant up --no-provision --provider=virtualbox ----
Ran vagrant up --no-provision --provider=virtualbox returned 1
E, [2014-05-21T19:37:40.861998 #4255] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-21T19:37:40.862053 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/shell_out.rb:70:in `rescue in run_command'
E, [2014-05-21T19:37:40.862112 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/shell_out.rb:59:in `run_command'
E, [2014-05-21T19:37:40.862167 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/driver/base.rb:158:in `run_command'
E, [2014-05-21T19:37:40.862226 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:123:in `run'
E, [2014-05-21T19:37:40.862282 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:68:in `create'
E, [2014-05-21T19:37:40.862338 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `public_send'
E, [2014-05-21T19:37:40.862428 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `block in perform_action'
E, [2014-05-21T19:37:40.862484 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:305:in `call'
E, [2014-05-21T19:37:40.862540 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:305:in `block in synchronize_or_call'
E, [2014-05-21T19:37:40.862596 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:303:in `synchronize'
E, [2014-05-21T19:37:40.862653 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:303:in `synchronize_or_call'
E, [2014-05-21T19:37:40.862708 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:283:in `block in action'
E, [2014-05-21T19:37:40.862765 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-21T19:37:40.862819 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:282:in `action'
E, [2014-05-21T19:37:40.862874 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `perform_action'
E, [2014-05-21T19:37:40.862929 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:252:in `create_action'
E, [2014-05-21T19:37:40.862984 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:246:in `block in transition_to'
E, [2014-05-21T19:37:40.863042 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `each'
E, [2014-05-21T19:37:40.863097 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `transition_to'
E, [2014-05-21T19:37:40.863152 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-21T19:37:40.863206 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-21T19:37:40.863261 #4255] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-21T19:37:40.863314 #4255] ERROR -- Kitchen: ----------------------
I, [2014-05-21T19:38:30.149371 #4571]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T19:38:30.386195 #4571]  INFO -- Kitchen: -----> Creating <default-ubuntu-1404>...
I, [2014-05-21T20:08:50.163444 #4571]  INFO -- Kitchen: -----> Converging <default-ubuntu-1404>...
E, [2014-05-21T20:08:50.182573 #4571] ERROR -- Kitchen: ------Exception-------
E, [2014-05-21T20:08:50.182627 #4571] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-21T20:08:50.182663 #4571] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String]
E, [2014-05-21T20:08:50.182960 #4571] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-21T20:08:50.182992 #4571] ERROR -- Kitchen: Class: TypeError
E, [2014-05-21T20:08:50.183023 #4571] ERROR -- Kitchen: Message: no implicit conversion of nil into String
E, [2014-05-21T20:08:50.183054 #4571] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-21T20:08:50.183084 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `join'
E, [2014-05-21T20:08:50.183157 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `prepare_formula'
E, [2014-05-21T20:08:50.183249 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:151:in `create_sandbox'
E, [2014-05-21T20:08:50.183283 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:40:in `converge'
E, [2014-05-21T20:08:50.183314 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:75:in `converge'
E, [2014-05-21T20:08:50.183348 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `public_send'
E, [2014-05-21T20:08:50.183378 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `block in perform_action'
E, [2014-05-21T20:08:50.183410 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `call'
E, [2014-05-21T20:08:50.183440 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `synchronize_or_call'
E, [2014-05-21T20:08:50.183494 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:283:in `block in action'
E, [2014-05-21T20:08:50.183739 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-21T20:08:50.183808 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:282:in `action'
E, [2014-05-21T20:08:50.183884 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `perform_action'
E, [2014-05-21T20:08:50.183915 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:256:in `converge_action'
E, [2014-05-21T20:08:50.183945 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:246:in `block in transition_to'
E, [2014-05-21T20:08:50.183975 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `each'
E, [2014-05-21T20:08:50.184005 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `transition_to'
E, [2014-05-21T20:08:50.184034 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-21T20:08:50.184073 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-21T20:08:50.184103 #4571] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-21T20:08:50.184133 #4571] ERROR -- Kitchen: ----------------------
I, [2014-05-21T20:11:47.409676 #11260]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.1)
I, [2014-05-21T20:11:47.651307 #11260]  INFO -- Kitchen: -----> Converging <default-ubuntu-1404>...
E, [2014-05-21T20:11:47.656079 #11260] ERROR -- Kitchen: ------Exception-------
E, [2014-05-21T20:11:47.656185 #11260] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-21T20:11:47.656255 #11260] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String]
E, [2014-05-21T20:11:47.656361 #11260] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-21T20:11:47.656428 #11260] ERROR -- Kitchen: Class: TypeError
E, [2014-05-21T20:11:47.656491 #11260] ERROR -- Kitchen: Message: no implicit conversion of nil into String
E, [2014-05-21T20:11:47.656553 #11260] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-21T20:11:47.656614 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `join'
E, [2014-05-21T20:11:47.656677 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:333:in `prepare_formula'
E, [2014-05-21T20:11:47.656740 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-salt-0.0.16/lib/kitchen/provisioner/salt_solo.rb:151:in `create_sandbox'
E, [2014-05-21T20:11:47.656803 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/driver/ssh_base.rb:40:in `converge'
E, [2014-05-21T20:11:47.656865 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:75:in `converge'
E, [2014-05-21T20:11:47.656927 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `public_send'
E, [2014-05-21T20:11:47.656990 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `block in perform_action'
E, [2014-05-21T20:11:47.657052 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `call'
E, [2014-05-21T20:11:47.657115 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:308:in `synchronize_or_call'
E, [2014-05-21T20:11:47.657177 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:283:in `block in action'
E, [2014-05-21T20:11:47.657239 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-21T20:11:47.657301 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:282:in `action'
E, [2014-05-21T20:11:47.657364 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:273:in `perform_action'
E, [2014-05-21T20:11:47.657426 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:256:in `converge_action'
E, [2014-05-21T20:11:47.657489 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:246:in `block in transition_to'
E, [2014-05-21T20:11:47.657551 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `each'
E, [2014-05-21T20:11:47.657613 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:245:in `transition_to'
E, [2014-05-21T20:11:47.657674 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-21T20:11:47.657736 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-21T20:11:47.657798 #11260] ERROR -- Kitchen: /home/omer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/test-kitchen-1.2.1/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-21T20:11:47.657861 #11260] ERROR -- Kitchen: ----------------------

run in debug mode

is it possible to get the highstate to run in debug mode? the ability to add -l debug to salt-call would help track down troublesome bugs in code.

FileUtils.cp method not skipping hidden directories

Hi

After troubleshooting a few issues with our integration tests using kitchen-salt, we found out that issues are related to having .kitchen directory in all our suites. We run multiple tests in parallel and sometimes we get random errors about missing files.

Here an example

>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>>     Failed to complete #converge action: [No such file or directory @ rb_sysopen - /home/jenkins-slave/workspace/ack_fix_vagrant_concurrency-MVVQYBRDAXXGZQN4AXNNULFWB3J7O576EUXB5VC5I6FZKQN5EPEQ/.kitchen/kitchen-vagrant/kitchen-ack_fix_vagrant_concurrency-MVVQYBRDAXXGZQN4AXNNULFWB3J7O576EUXB5VC5I6FZKQN5EPEQ-grafana-server-ubuntu-1604-vagrant/kitchen-ack_fix_vagrant_concurrency-MVVQYBRDAXXGZQN4AXNNULFWB3J7O576EUXB5VC5I6FZKQN5EPEQ-grafana-server-ubuntu-1604-vagrant_default_1502282890429_75066/Snapshots/{42e0e5c4-d0df-4c5a-bc06-db8f29c53375}.vmdk] on cronmaster-freebsd-103
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
script returned exit code 20

Running kitchen test in debug mode I see referrences to those files

D      cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/grafana-server-ubuntu-1604.log
D      cp_r_with_filter:source = /Users/abednarik/perceptyx/code/saltstack/.kitchen/logs/kitchen.log
D      cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/kitchen.log
D      cp_r_with_filter:source = /Users/abednarik/perceptyx/code/saltstack/.kitchen/logs/mysql-server-ubuntu-1404.log
D      cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/mysql-server-ubuntu-1404.log
D      cp_r_with_filter:source = /Users/abednarik/perceptyx/code/saltstack/.kitchen/logs/mysql-server-ubuntu-1604-vagrant.log
D      cp_r_with_filter:target = /var/folders/tg/n3fypkb530n8z1m4glcny6zm0000gn/T/mysql-server-ubuntu-1404-sandbox-20170809-920-1d2x8oe/srv/salt//.kitchen/logs/mysql-server-ubuntu-1604-vagrant.log

Checking target dir I do see those directories .kitchen and .git

ls -al
total 112
drwxr-xr-x 11 kitchen kitchen  4096 Aug  9 07:19 .
drwxr-xr-x  3 kitchen kitchen  4096 Aug  9 07:18 ..
drwxr-xr-x  8 kitchen kitchen  4096 Aug  9 07:18 .git
-rw-r--r--  1 kitchen kitchen    81 Aug  9 07:18 .gitignore
-rw-r--r--  1 kitchen kitchen  3330 Aug  9 07:18 .gitmodules
drwxr-xr-x  4 kitchen kitchen  4096 Aug  9 07:18 .kitchen
-rw-r--r--  1 kitchen kitchen  1623 Aug  9 07:18 .kitchen.local.yml
-rw-r--r--  1 kitchen kitchen  5445 Aug  9 07:18 .kitchen.yml
-rw-r--r--  1 kitchen kitchen   343 Aug  9 07:19 Gemfile
-rw-r--r--  1 kitchen kitchen  1484 Aug  9 07:19 Gemfile.lock
-rw-r--r--  1 kitchen kitchen 10221 Aug  9 07:19 Jenkinsfile
-rw-r--r--  1 kitchen kitchen  3548 Aug  9 07:19 README.md
drwxr-xr-x 28 kitchen kitchen  4096 Aug  9 07:19 formulas
-rw-r--r--  1 kitchen kitchen    36 Aug  9 07:19 grains
-rw-r--r--  1 kitchen kitchen  3488 Aug  9 07:19 init.conf
-rw-r--r--  1 kitchen kitchen  2316 Aug  9 07:19 master
drwxr-xr-x  2 kitchen kitchen  4096 Aug  9 07:19 master.d
-rw-r--r--  1 kitchen kitchen  1673 Aug  9 07:19 minion
drwxr-xr-x 17 kitchen kitchen  4096 Aug  9 07:19 pillar
drwxr-xr-x  3 kitchen kitchen  4096 Aug  9 07:19 pki
drwxr-xr-x  2 kitchen kitchen  4096 Aug  9 07:19 reactor
drwxr-xr-x 22 kitchen kitchen  4096 Aug  9 07:19 salt
drwxr-xr-x  5 kitchen kitchen  4096 Aug  9 07:19 test
-rw-r--r--  1 kitchen kitchen  4130 Aug  9 07:19 top.sls

After setting

  salt_copy_filter:
    - .kitchen
    - .git

I don't see hidden directories in target dir

ls -al
total 104
drwxr-xr-x  9 kitchen kitchen  4096 Aug  9 07:49 .
drwxr-xr-x  3 kitchen kitchen  4096 Aug  9 07:49 ..
-rw-r--r--  1 kitchen kitchen    81 Aug  9 07:49 .gitignore
-rw-r--r--  1 kitchen kitchen  3330 Aug  9 07:49 .gitmodules
-rw-r--r--  1 kitchen kitchen  1623 Aug  9 07:49 .kitchen.local.yml
-rw-r--r--  1 kitchen kitchen  5491 Aug  9 07:49 .kitchen.yml
-rw-r--r--  1 kitchen kitchen   343 Aug  9 07:49 Gemfile
-rw-r--r--  1 kitchen kitchen  1484 Aug  9 07:49 Gemfile.lock
-rw-r--r--  1 kitchen kitchen 10221 Aug  9 07:49 Jenkinsfile
-rw-r--r--  1 kitchen kitchen  3548 Aug  9 07:49 README.md
drwxr-xr-x 27 kitchen kitchen  4096 Aug  9 07:49 formulas
-rw-r--r--  1 kitchen kitchen    36 Aug  9 07:49 grains
-rw-r--r--  1 kitchen kitchen  3488 Aug  9 07:49 init.conf
-rw-r--r--  1 kitchen kitchen  2316 Aug  9 07:49 master
drwxr-xr-x  2 kitchen kitchen  4096 Aug  9 07:49 master.d
-rw-r--r--  1 kitchen kitchen  1673 Aug  9 07:49 minion
drwxr-xr-x 17 kitchen kitchen  4096 Aug  9 07:49 pillar
drwxr-xr-x  3 kitchen kitchen  4096 Aug  9 07:49 pki
drwxr-xr-x  2 kitchen kitchen  4096 Aug  9 07:49 reactor
drwxr-xr-x 22 kitchen kitchen  4096 Aug  9 07:49 salt
drwxr-xr-x  5 kitchen kitchen  4096 Aug  9 07:49 test
-rw-r--r--  1 kitchen kitchen  4130 Aug  9 07:49 top.sls

I think we should update documentation or check that the method really ignore hidden dirs.

Thanks.

Documentation is gone

The wiki used to contain a reference to all configuration options that kitchen-salt provides.
I can't find it anymore.

salt_apt_repo not working

Having an issue trying to get kitchen-salt to use newer packages from saltstack. I need to test 2015.8 on debian. That version doesn't appear available in apt. I can point to http://debian.saltstack.com/debian/dists/jessie-saltstack/ manually in a sources file, but this URL won't work int salt_apt_repo.

Looking at the code at https://github.com/cmarzullo/kitchen-salt/blob/master/lib/kitchen/provisioner/salt_solo.rb#L104

It seems a URL path is hard coded into the install script that gets copied over. Perhaps the repo structure has changed a bunch.

I'll see if I can get something made up as a PR.

Allow users to set grains from .kitchen.yml

Allow users to set grains in the .kitchen.yml file so that states can use the data.

For example:

I would like to specify different suites/grains in the kitchen.yml to be able to setup multiple servers to test each of the different, but it doesn't appear to copy the grains over, eg;

suites:
  - name: ftphserver-stage
    attributes:
      grains:
        roles:
          - ftph-server
          - v1-infrastructure
          - development
        datacenter: europe-west1-a
        provider: gce
      datacenter: europe-west1-a
      provider: gce

(request from [email protected])

prepare_formula fails when vendor_path isn't set

The recently added vendor_path option fails to check if the supplied directory exists or is valid - and causes preapre_formula to attempt to copy config[:kitchen_root] as a set of formula, causing a horrible mess:

simonm@MacBook:beaver-formula (test-kitchen) AWS=jdr $ kitchen converge default-ubuntu-1204
-----> Starting Kitchen (v1.4.1)
-----> Converging <default-ubuntu-1204>...
       Preparing files for transfer
       Preparing salt-minion
       Preparing state_top
       Preparing pillars into /srv/pillar
       Preparing formula: beaver from /Users/simonm/src/test-kitchen-salt/beaver-formula
       Preparing formula: beaver from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: Gemfile from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: Gemfile.lock from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: LICENSE from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: pillar.all-options from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: pillar.example from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: README.md from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: test from /Users/simonm/src/test-kitchen-salt/beaver-formula/
       Preparing formula: top.sls from /Users/simonm/src/test-kitchen-salt/beaver-formula/
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #converge action: [File exists @ dir_s_mkdir - /var/folders/pp/dvptk6_d46sb6yzc_mbd3jk40000gn/T/default-ubuntu-1204-sandbox-20150803-34076-q1qrup/srv/salt/top.sls]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

simonm@MacBook:beaver-formula (test-kitchen) AWS=jdr $

Remove relying on chef bootstrap script by default

I've opened an issue as I would like to discuss if it's necessary to have chef boostrap script by default? To me this caused a bit of confusion and I've done some PRs when I realised that only ruby and gems is required.

I've noticed this was also discussed on separate issues (e.g. #71 ), but as I did not want to start asking questions / giving input on unrelated issue, I thought a separate one might be worth.

My suggestion would be to not use chef bootstrap script by default and switch to at least using assets/install.sh. I've seen that people already mentioned on #71 that they would like to drop the chef requirements and I would strongly agree with this.

Main reason why I am suggesting it is:

  • Salt has support on a lot of different platforms. A lot more than chef. Attaching this formula to chef directly, limits on what OS this cna be run at.

My suggestion:

  • Remove chef bootstrap script from defaults
  • Make sure out assets/install.sh script supports all the platforms we aim to support. I did a few PRs and can do a few more if we have a list of platforms we want to support before the switch.

have salt states be in another location than current directory

I was not able to figure out a way to have the salt states be in a directory other than the current one where .kitchen.yaml is defined. For instance we have some_path/tests/kitchen_tests, where I would like to keep the yaml file. Then the actual salt state I want to use is in some_path/other_path/services/my_state_dir. It looks like the only way to get kitchen-salt to find the my_state_dir is if you put .kitchen.yaml inside the services dir.

It would be nice to have this functionality if it is not already there.

init_environment doesn't work?

Hi all,

I am trying to use encrypted pillars with kitchen-salt and I need a way to copy my keys into /tmp/kitchen/etc/salt before salt-call . Seemed that the init_environment was the way to go but it doesn't seem to work? Even test commands don't seem to run. For example something like:

provisioner:
  name: salt_solo
  is_file_root: true
  require_chef: false
  init_environment: |
    touch /tmp/init_environment_test

will not produce the file in /tmp

Looking at the code it looks like the definition of the function init_environment exists but it doesn't get called anywhere?

Thanks in advance,
Kostas

Using other formulas.

I have a simple formula (now) that depends on the build-essential.

How do you had external formulas with replicating code and testing the formula without any ugly hacks?

Regards,
Alfredo Palhares

Windows vagrant box directory creation fails

Hi, I'm really looking forward to using this busser. We really need windows support and have just started looking at using kitchen-salt. Here's our current error when trying to download the chef omnibus package.

-----> Converging <default-windows-2012r2>...
       Preparing files for transfer
       Preparing salt-minion
       Preparing state_top
       Preparing pillars into /srv/pillar
       Preparing formula: beaver from C:/kitchen-salt-tutorial/beaver-formula
$$$$$$ Remove-Item : A parameter cannot be found that matches parameter name 'rf'.
$$$$$$ At line:1 char:4
$$$$$$ + rm -rf $env:TEMP\kitchen ; mkdir -p $env:TEMP\kitchen
$$$$$$ +    ~~~
$$$$$$     + CategoryInfo          : InvalidArgument: (:) [Remove-Item], ParameterBin
$$$$$$    dingException
$$$$$$     + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Comm
$$$$$$    ands.RemoveItemCommand
$$$$$$
$$$$$$ mkdir : Parameter cannot be processed because the parameter name 'p' is
$$$$$$ ambiguous. Possible matches include: -Path -PipelineVariable.
$$$$$$ At line:1 char:34
$$$$$$ + rm -rf $env:TEMP\kitchen ; mkdir -p $env:TEMP\kitchen
$$$$$$ +                                  ~~
$$$$$$     + CategoryInfo          : InvalidArgument: (:) [mkdir], ParameterBindingEx
$$$$$$    ception
$$$$$$     + FullyQualifiedErrorId : AmbiguousParameter,mkdir
>>>>>> Converge failed on instance <default-windows-2012r2>.
>>>>>> Please see .kitchen/logs/default-windows-2012r2.log for more details
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: WinRM exited (1) for command: [rm -rf $env:TEMP\kitchen ; mkdir -p $env:TEMP\kitchen]
>>>>>> ----------------------
C:\kitchen-salt-tutorial\beaver-formula [master +0 ~1 -0]

Dependencies Example isn't working

My .kitchen.yml file:

---
driver:
  name: vagrant

provisioner:
  name: salt_solo
  dependencies:
    - name: nginx
      repo: git
      source: https://github.com/salt-formulas/salt-formula-nginx.git
  is_file_root: true
  require_chef: false
  state_top:
    base:
      '*':
        - jenkins-master

platforms:
- name: ubuntu-16.04

suites:
- name: default

Error:

ip-10-100-5-96:jenkins braden$ kit test
-----> Starting Kitchen (v1.16.0)
-----> Cleaning up any prior instances of <default-ubuntu-1604>
-----> Destroying <default-ubuntu-1604>...
       ==> default: Forcing shutdown of VM...
       ==> default: Destroying VM and associated drives...
       Vagrant instance <default-ubuntu-1604> destroyed.
       Finished destroying <default-ubuntu-1604> (0m4.29s).
-----> Testing <default-ubuntu-1604>
-----> Creating <default-ubuntu-1604>...
       Bringing machine 'default' up with 'virtualbox' provider...
       ==> default: Importing base box 'bento/ubuntu-16.04'...
==> default: Matching MAC address for NAT networking...
       ==> default: Checking if box 'bento/ubuntu-16.04' is up to date...
       ==> default: A newer version of the box 'bento/ubuntu-16.04' is available! You currently
       ==> default: have version '2.3.5'. The latest is version '2.3.7'. Run
       ==> default: `vagrant box update` to update.
       ==> default: Setting the name of the VM: kitchen-jenkins-default-ubuntu-1604_default_1501784455236_57941
       ==> default: Fixed port collision for 22 => 2222. Now on port 2200.
       ==> default: Clearing any previously set network interfaces...
       ==> default: Preparing network interfaces based on configuration...
           default: Adapter 1: nat
       ==> default: Forwarding ports...
           default: 22 (guest) => 2200 (host) (adapter 1)
       ==> default: Booting VM...
       ==> default: Waiting for machine to boot. This may take a few minutes...
           default: SSH address: 127.0.0.1:2200
           default: SSH username: vagrant
           default: SSH auth method: private key
           default: 
           default: Vagrant insecure key detected. Vagrant will automatically replace
           default: this with a newly generated keypair for better security.
           default: 
           default: Inserting generated public key within guest...
           default: Removing insecure key from the guest if it's present...
           default: Key inserted! Disconnecting and reconnecting using new SSH key...
       ==> default: Machine booted and ready!
       ==> default: Checking for guest additions in VM...
       ==> default: Setting hostname...
       ==> default: Mounting shared folders...
           default: /tmp/omnibus/cache => /Users/braden/.kitchen/cache
       ==> default: Machine not provisioned because `--no-provision` is specified.
       [SSH] Established
       Vagrant instance <default-ubuntu-1604> created.
       Finished creating <default-ubuntu-1604> (0m38.16s).
-----> Converging <default-ubuntu-1604>...
       Preparing files for transfer
       Preparing salt-minion
       Preparing pillars into /srv/pillar
       Preparing state collection
       neither collection_name or formula have been set, assuming this is a pre-built collection
       Preparing formula: nginx from 
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>>     Failed to complete #converge action: [no implicit conversion of nil into String] on default-ubuntu-1604
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

Logs:

$ cat .kitchen/logs/kitchen.log 
I, [2017-08-03T13:26:46.019435 #16856]  INFO -- Kitchen: -----> Starting Kitchen (v1.16.0)
I, [2017-08-03T13:26:46.145603 #16856]  INFO -- Kitchen: -----> Converging <default-ubuntu-1604>...
E, [2017-08-03T13:26:46.177263 #16856] ERROR -- Kitchen: ------Exception-------
E, [2017-08-03T13:26:46.177293 #16856] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2017-08-03T13:26:46.177307 #16856] ERROR -- Kitchen: Message: 1 actions failed.
>>>>>>     Failed to complete #converge action: [no implicit conversion of nil into String] on default-ubuntu-1604
E, [2017-08-03T13:26:46.177319 #16856] ERROR -- Kitchen: ----------------------
E, [2017-08-03T13:26:46.177330 #16856] ERROR -- Kitchen: ------Backtrace-------
E, [2017-08-03T13:26:46.177340 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:183:in `report_errors'
E, [2017-08-03T13:26:46.177351 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:174:in `run_action'
E, [2017-08-03T13:26:46.177361 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command/action.rb:36:in `block in call'
E, [2017-08-03T13:26:46.177372 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
E, [2017-08-03T13:26:46.177382 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command/action.rb:34:in `call'
E, [2017-08-03T13:26:46.177392 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/cli.rb:53:in `perform'
E, [2017-08-03T13:26:46.177402 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/cli.rb:187:in `block (2 levels) in <class:CLI>'
E, [2017-08-03T13:26:46.177413 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
E, [2017-08-03T13:26:46.177423 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
E, [2017-08-03T13:26:46.177433 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/cli.rb:334:in `invoke_task'
E, [2017-08-03T13:26:46.177443 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
E, [2017-08-03T13:26:46.177453 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
E, [2017-08-03T13:26:46.177464 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/bin/kitchen:13:in `block in <top (required)>'
E, [2017-08-03T13:26:46.177474 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/errors.rb:171:in `with_friendly_errors'
E, [2017-08-03T13:26:46.177484 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/bin/kitchen:13:in `<top (required)>'
E, [2017-08-03T13:26:46.177494 #16856] ERROR -- Kitchen: /usr/local/bin/kitchen:21:in `load'
E, [2017-08-03T13:26:46.177504 #16856] ERROR -- Kitchen: /usr/local/bin/kitchen:21:in `<main>'
E, [2017-08-03T13:26:46.177514 #16856] ERROR -- Kitchen: ----End Backtrace-----
E, [2017-08-03T13:26:46.177523 #16856] ERROR -- Kitchen: -Composite Exception--
E, [2017-08-03T13:26:46.177533 #16856] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2017-08-03T13:26:46.177542 #16856] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String] on default-ubuntu-1604
E, [2017-08-03T13:26:46.177552 #16856] ERROR -- Kitchen: ----------------------
E, [2017-08-03T13:26:46.177562 #16856] ERROR -- Kitchen: ------Backtrace-------
E, [2017-08-03T13:26:46.177571 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `join'
E, [2017-08-03T13:26:46.177617 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `prepare_formula'
E, [2017-08-03T13:26:46.177637 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:210:in `block in create_sandbox'
E, [2017-08-03T13:26:46.177648 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `each'
E, [2017-08-03T13:26:46.177659 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `create_sandbox'
E, [2017-08-03T13:26:46.177669 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/provisioner/base.rb:65:in `call'
E, [2017-08-03T13:26:46.177681 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:384:in `block in converge_action'
E, [2017-08-03T13:26:46.177765 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:527:in `synchronize_or_call'
E, [2017-08-03T13:26:46.177776 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:489:in `block in action'
E, [2017-08-03T13:26:46.177786 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
E, [2017-08-03T13:26:46.177796 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:488:in `action'
E, [2017-08-03T13:26:46.177807 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:380:in `converge_action'
E, [2017-08-03T13:26:46.177817 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:359:in `block in transition_to'
E, [2017-08-03T13:26:46.177827 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `each'
E, [2017-08-03T13:26:46.177837 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `transition_to'
E, [2017-08-03T13:26:46.177877 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:135:in `converge'
E, [2017-08-03T13:26:46.177888 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `public_send'
E, [2017-08-03T13:26:46.177898 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `run_action_in_thread'
E, [2017-08-03T13:26:46.177907 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:169:in `block (2 levels) in run_action'
E, [2017-08-03T13:26:46.177917 #16856] ERROR -- Kitchen: ----End Backtrace-----
E, [2017-08-03T13:26:46.177927 #16856] ERROR -- Kitchen: ---Nested Exception---
E, [2017-08-03T13:26:46.177938 #16856] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2017-08-03T13:26:46.177975 #16856] ERROR -- Kitchen: Message: Failed to complete #converge action: [no implicit conversion of nil into String]
E, [2017-08-03T13:26:46.177986 #16856] ERROR -- Kitchen: ----------------------
E, [2017-08-03T13:26:46.177995 #16856] ERROR -- Kitchen: ------Backtrace-------
E, [2017-08-03T13:26:46.178005 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `join'
E, [2017-08-03T13:26:46.178014 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:411:in `prepare_formula'
E, [2017-08-03T13:26:46.178024 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:210:in `block in create_sandbox'
E, [2017-08-03T13:26:46.178039 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `each'
E, [2017-08-03T13:26:46.178050 #16856] ERROR -- Kitchen: /Users/braden/.chefdk/gem/ruby/2.3.0/gems/kitchen-salt-0.0.24/lib/kitchen/provisioner/salt_solo.rb:209:in `create_sandbox'
E, [2017-08-03T13:26:46.178103 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/provisioner/base.rb:65:in `call'
E, [2017-08-03T13:26:46.178114 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:384:in `block in converge_action'
E, [2017-08-03T13:26:46.178124 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:527:in `synchronize_or_call'
E, [2017-08-03T13:26:46.178134 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:489:in `block in action'
E, [2017-08-03T13:26:46.178144 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.3.0/benchmark.rb:293:in `measure'
E, [2017-08-03T13:26:46.178154 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:488:in `action'
E, [2017-08-03T13:26:46.178163 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:380:in `converge_action'
E, [2017-08-03T13:26:46.178176 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:359:in `block in transition_to'
E, [2017-08-03T13:26:46.178187 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `each'
E, [2017-08-03T13:26:46.178197 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:358:in `transition_to'
E, [2017-08-03T13:26:46.178207 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/instance.rb:135:in `converge'
E, [2017-08-03T13:26:46.178217 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `public_send'
E, [2017-08-03T13:26:46.178227 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:197:in `run_action_in_thread'
E, [2017-08-03T13:26:46.178253 #16856] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.3.0/gems/test-kitchen-1.16.0/lib/kitchen/command.rb:169:in `block (2 levels) in run_action'
E, [2017-08-03T13:26:46.178304 #16856] ERROR -- Kitchen: ----End Backtrace-----

I'm fairly new to salt but have used test-kitchen with Chef a lot. I tried different options like dependencies from local path instead of from Git. Really I want to use a jenkins-formula on git, but when that didn't work I just tried to get one of the examples working.

Versions I'm using:

ip-10-100-5-96:jenkins braden$ chef gem list |grep kitchen
kitchen-docker (2.6.0)
kitchen-dokken (2.1.2)
kitchen-ec2 (1.3.2)
kitchen-inspec (0.17.0)
kitchen-salt (0.0.24)
kitchen-vagrant (1.1.0)
test-kitchen (1.16.0)

Thanks for any help

All states and pillars are copied in TMPDIR

Hello,

When kitchen-salt converges, there is a step of files transfers to copy them to /tmp/kitchen inside the VM.
But it seems that it's done in two steps:

  • first: copy all sources to TMPDIR (/tmp by default)
  • second: make them available inside the VM (sometimes it's a copy but it can be just mounting the temp dir with data inside the VM)

In our case, we use kitchen to test a full repository of salt states/pillars and files, which is several hundreds of MB. This double copy slows down our testing.

I wonder if the data directory could be directly shared/copied inside the VM, without this extra step.

I'm not sure this comes from kitchen-salt or test-kitchen.

Should PRs go to the kitchen-salt organization?

Simon, I'm hoping to help my organization and others use kitchen-salt with windows and submitted a PR recently here. Should it go here (kitchen-salt/kitchen-salt) instead? I assume you created that for sharing the management of kitchen-salt. Is that right? It does seem like that fork is behind your repo. Thanks again for sharing this work. It's going to help our immensely.

New release

Would it be possible to release a new version (0.0.23)?
Especially with regard to #43 and the test-kitchen 1.7.0 release.

support for git repo that is /srv

It would be great to have a way to specify what the root is in the git repository

In my states https://github.com/gtmanfred/blog-sls i have states and pillars, i want to overwrite the pillars, but it would be great to say that /salt/ should be dropped in /tmp/kitchen/srv/salt, instead of having to put the .kitchen.yml in the salt/ directory instead.

Thanks
Daniel

if statement issue after update to 0.0.25 in salt_solo

Hi all,

All my CIs are now failing after the gem was updated to 0.0.25, and I get the following error with running kitchen

kitchen converge default-centos-7
-----> Starting Kitchen (v1.16.0)
-----> Converging <default-centos-7>...
       Preparing files for transfer
       Preparing salt-minion
       Preparing pillars into /srv/pillar
       Preparing formula: collectd from /Users/arif/gitRepos/salt-formula/salt-formula-collectd
       Preparing formula: repos from srv/salt
       Preparing state_top
       Preparing scripts into /etc/salt/scripts
       You asked for latest and you have 2016.11.5 installed, sweet!
-----> Trying to install ruby(-dev) using assets.sh from kitchen-salt
       downloading https://raw.githubusercontent.com/saltstack/kitchen-salt/master/assets/install.sh
         to file /tmp/install.sh
       trying wget...
       Installing the ruby things
       installing with yum...
       Loaded plugins: fastestmirror, ovl
       Loading mirror speeds from cached hostfile
        * base: mirror.vorboss.net
        * epel: mirror.bytemark.co.uk
        * extras: mirror.vorboss.net
        * updates: mirror.econdc.com
       Package ruby-2.0.0.648-29.el7.x86_64 already installed and latest version
       Package ruby-devel-2.0.0.648-29.el7.x86_64 already installed and latest version
       Nothing to do
       ln: failed to create symbolic link '/opt/chef/embedded/bin/gem': File exists
       ln: failed to create symbolic link '/opt/chef/embedded/bin/ruby': File exists
       sh: -c: line 190: syntax error near unexpected token `fi'
       sh: -c: line 190: `                fi;'
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>>     Converge failed on instance <default-centos-7>.  Please see .kitchen/logs/default-centos-7.log for more details
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

Arch Linux support

Arch Linux support for assets/install.sh is missing. As chef and omnitruck scripts do not support chef, using this script could even be considered a default option for ArchLinux.

kitchen-salt is getting a new owner

@jbussdieker @epcim @ek9 @n-rodriguez @amontalban @milosgajdos83 @corux @azban @malept @mrbobbytables @neillturner @twmartin @jschectman-vs @Frots

A few weeks back Thomas Hatch from SaltStack asked me if I would be interested in moving kitchen-salt under the SaltStack umbrella, so that it becomes an official project sponsored and run by Salt. I said yes. As some of you will have been aware, I've been unable to devote time to kitchen-salt, it hasn't been part of my day job for a number of years. I see this change as kitchen-salt getting stewardship with the resources to keep the project moving forward & stay in sync with the core Salt products.

Daniel Wallace from Salt will be helping with transitioning kitchen-salt under the Salt umbrella.

Thank you for all your help, contributions & patience over the years, I hope the future of kitchen-salt looks brighter from your point of view too.

Simon.

Dependency Support

Many of my formula depend on other formula to setup a service exactly how it will be in my infrastructure. For instance I may need an Apache Reverse Proxy in front of a Tomcat Service. I have my Apache formula set that up in my test environment.

I wrote the following vagrant plugin to solve that issue for me. https://github.com/joshughes/vagrant-saltdeps

I would be nice to have similar functionality in kitchen-salt. I am happy to help do the work, but being unfamiliar with test-kitchen I am not sure where something like dependency support should be implemented. Chef uses berkshelf and maybe salt needs a stand alone project like that?

If there is precedence for test-kitchen to manage dependencies, then I would rather do it in kitchen-salt than manage an entire other project just for managing dependencies.

kitchen test very slow

I'm using the following .kitchen.yml:

---
driver:
  name: docker
  use_sudo: false
  privileged: true

platforms:
  - name: ubuntu-16.10

provisioner:
  name: salt_solo
  salt_install: apt
  salt_bootstrap_url: https://bootstrap.saltstack.com
  formula: honey
  state_top:
    base:
      '*':
        - honey
  pillars:
    top.sls:
      base:
        '*':
          - honey

suites:
  - name: default
    provisioner:
      pillars-from-files:
        honey.sls: pillar.example

verifier:
  name: shell
  remote_exec: false
  command: testinfra -vvv --connection=docker --hosts=root@$KITCHEN_CONTAINER_ID --junit-xml junit-$KITCHEN_INSTANCE.xml test/integration/$KITCHEN_SUITE

However every time I run bundle exec kitchen test it will re-run the salt bootstrap. It takes sooo much time.
Is it possible to cache that operation?

Thanks

Problem with run command Kitchen Test

I add set :backend, :exec in the spec_helper.rb
but I got a new error

           default: Guest Additions Version: 5.0.16
           default: VirtualBox Version: 4.3
       ==> default: Setting hostname...
       ==> default: Machine not provisioned because `--no-provision` is specified.
       [SSH] Established
       Vagrant instance <default-ubuntu-1204> created.
       Finished creating <default-ubuntu-1204> (0m43.64s).
-----> Converging <default-ubuntu-1204>...
       Preparing files for transfer
       Preparing salt-minion
       Preparing state_top
       Preparing pillars into /srv/pillar
       Preparing formula: beaver from /home/lelixone/diego/kitchen-salt-tutorial/beaver-formula
       Preparing formula: Gemfile.lock.back from /home/lelixone/diego/kitchen-salt-tutorial/beaver-formula/
       Preparing formula: top.sls from /home/lelixone/diego/kitchen-salt-tutorial/beaver-formula/
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #converge action: [File exists @ dir_s_mkdir - /tmp/default-ubuntu-1204-sandbox-20160426-7226-dsoary/srv/salt/top.sls]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

zlib(finalizer): the stream was freed prematurely.

on Debian with apt installation method, apt-get update is not run, leading to package download problems

When using kitchen-salt on Debian with apt installation method, I always got error messages about missing packages.
I think it could be solved adding a step to run apt-get update before doing the salt-minion installation.

Get:1 http://security.debian.org jessie/updates InRelease [63.1 kB]
Ign http://repo.saltstack.com jessie InRelease                                 
Ign http://repo.saltstack.com jessie Release.gpg                               
Get:2 http://security.debian.org jessie/updates/main Sources [190 kB]          
Ign http://httpredir.debian.org jessie InRelease                               
Get:3 http://httpredir.debian.org jessie Release.gpg [2,373 B]                 
Get:4 http://security.debian.org jessie/updates/main amd64 Packages [352 kB]   
Ign http://repo.saltstack.com jessie Release                                   
Get:5 http://httpredir.debian.org jessie Release [148 kB]                      
Err http://repo.saltstack.com jessie/main amd64 Packages                       
         
Err http://repo.saltstack.com jessie/main amd64 Packages                       
         
Get:6 http://httpredir.debian.org jessie/main Sources [7,056 kB]
Err http://repo.saltstack.com jessie/main amd64 Packages                       
         
Err http://repo.saltstack.com jessie/main amd64 Packages                       
         
Err http://repo.saltstack.com jessie/main amd64 Packages
         404  Not Found [IP: 198.199.77.106 80]
Get:7 http://httpredir.debian.org jessie/main amd64 Packages [6,776 kB]
Fetched 14.6 MB in 6s (2,145 kB/s)                                             
       W: Failed to fetch http://repo.saltstack.com/apt/debian/8/amd64/salt-latest/dists/jessie/main/binary-amd64/Packages  404  Not Found [IP: 198.199.77.106 80]
       
       E: Some index files failed to download. They have been ignored, or old ones used instead.

Relevant part of my .kitchen.yml

provisioner:
  name: salt_solo
  salt_install: apt
  salt_version: latest
  salt_apt_repo: http://repo.saltstack.com/apt/debian/8/amd64
  salt_apt_repo_key: http://repo.saltstack.com/apt/debian/8/amd64/latest/SALTSTACK-GPG-KEY.pub

outdated serverspec docs

https://github.com/simonmcc/kitchen-salt/blame/master/INTRODUCTION.md#L200 shows an outdated and suboptimal way to use serverspec

from: https://github.com/test-kitchen/busser-serverspec#-notice

You should use Kitchen::Verifier::Shell + Serverspec instead of Busser::RunnerPlugin::Serverspec.

usage example: https://github.com/cl-lab-k/apache2-take/blob/shell_verifier/.kitchen.yml#L20

would you like me to update the README? is there any reason why we shouldn't move towards this? i would also like to deprecate the chef install to make people aware that this is a preferred option.

spent a few hours dancing around with this, and wanna make it more clear for new people coming into the project

Mkdir: File Exists error during

-----> Starting Kitchen (v1.5.0)
-----> Converging ...
Preparing files for transfer
Preparing salt-minion
Preparing state_top
Preparing pillars into /srv/pillar
Preparing formula: beaver from /home//ksalt-tut/beaver-formula
Preparing formula: beaver from /home//ksalt-tut/beaver-formula/
Preparing formula: README.md from /home//ksalt-tut/beaver-formula/
Preparing formula: test from /home//ksalt-tut/beaver-formula/
Preparing formula: top.sls from /home//ksalt-tut/beaver-formula/

------Exception-------
Class: Kitchen::ActionFailed
Message: Failed to complete #converge action: [File exists - /tmp//default-ubuntu-1204-sandbox-20160224-2200-p4ul3l/srv/salt/top.sls]

I get this error when trying to bring up the default beaver formula.

I edited salt_solo.rb:375 to read:
FileUtils.mkdir_p(formula_dir) unless File.exists?(formula_dir)

And it works now. Not sure why it was crashing there for me to begin with- especially since it didn't crash there for my co-worker doing essentially the same thing.

Is this a harmless change to prevent my error?

bootstrap-salt step fails, curl error

Same result with local vagrant driver, on travis-ci using docker driver, and using Linode driver.
This log is from a local, vagrant driver, bento/debian-8.7 kitchen converge:

       sh: 1: salt-call: not found
       downloading https://bootstrap.saltstack.org
         to file /tmp/bootstrap-salt.sh
       trying wget...
       trying curl...
         % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error
       trying perl...
       A URI can't be a ARRAY reference at /usr/share/perl5/LWP/Simple.pm line 64.
       trying python...
       Traceback (most recent call last):
         File "<string>", line 1, in <module>
         File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
           return opener.open(url, data, timeout)
         File "/usr/lib/python2.7/urllib2.py", line 431, in open
           response = self._open(req, data)
         File "/usr/lib/python2.7/urllib2.py", line 449, in _open
           '_open', req)
         File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
           result = func(*args)
         File "/usr/lib/python2.7/urllib2.py", line 1240, in https_open
           context=self._context)
         File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open
           raise URLError(err)
       urllib2.URLError: <urlopen error [SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:581)>
>>>>>> wget, curl, fetch, perl or python not found on this instance.
       sh: 1: salt-call: not found
artifactory (2.8.2)
bigdecimal (1.3.2, default: 1.3.0)
builder (3.2.3)
CFPropertyList (2.3.5)
did_you_mean (1.1.2)
excon (0.57.0)
fission (0.5.0)
fog (1.40.0)
fog-aliyun (0.1.0)
fog-atmos (0.1.0)
fog-aws (1.4.0)
fog-brightbox (0.11.0)
fog-cloudatcost (0.1.2)
fog-core (1.44.3)
fog-digitalocean (0.3.0)
fog-dnsimple (1.0.0)
fog-dynect (0.0.3)
fog-ecloud (0.3.0)
fog-google (0.1.0)
fog-json (1.0.2)
fog-local (0.3.1)
fog-openstack (0.1.21)
fog-powerdns (0.1.1)
fog-profitbricks (3.0.0)
fog-rackspace (0.1.5)
fog-radosgw (0.0.5)
fog-riakcs (0.1.0)
fog-sakuracloud (1.7.5)
fog-serverlove (0.1.2)
fog-softlayer (1.1.4)
fog-storm_on_demand (0.1.1)
fog-terremark (0.1.0)
fog-vmfusion (0.1.0)
fog-voxel (0.1.0)
fog-vsphere (1.11.0)
fog-xenserver (0.3.0)
fog-xml (0.1.3)
formatador (0.2.5)
inflecto (0.0.2)
io-console (default: 0.4.6)
ipaddress (0.8.3)
json (2.1.0, default: 2.0.2, 1.8.6)
kitchen-linode (0.14.0)
kitchen-salt (0.0.26)
kitchen-vagrant (1.1.0)
mini_portile2 (2.2.0)
minitest (5.10.2)
mixlib-install (2.1.12)
mixlib-shellout (2.2.7)
mixlib-versioning (1.1.0)
multi_json (1.12.1)
net-scp (1.2.1)
net-ssh (4.1.0)
net-ssh-gateway (1.3.0)
net-telnet (0.1.1)
nokogiri (1.8.0)
openssl (2.0.4, default: 2.0.2)
power_assert (1.0.2)
psych (2.2.4, default: 2.2.2)
rake (12.0.0)
rbvmomi (1.11.3)
rdoc (5.1.0, default: 5.0.0)
rubygems-update (2.6.12)
safe_yaml (1.0.4)
test-kitchen (1.16.0)
test-unit (3.2.5)
thor (0.19.1)
trollop (2.1.2)
xml-simple (1.1.5)
xmlrpc (0.3.0)
ruby 2.4.0

Improving documentation

Current Project's documentation is split among these files:

  • README.md - general info
  • INTRODUCTION.md - introduction on how to use
  • provisioner_options.md - provisioner options
  • docs folder contains some examples/samples for ruby/tinhat (I believe this one is a bit unmaintained)

I believe this sort of structure / split of things ony makes it difficult for someone to start using kitchen-salt. There have been a few relevant issues when users can't find something in the documentation.

This issue's goal is to sort out project documentation so it's in one place. Possible solutions:

  • solution 1. Leave basic information in README.md and then move the rest to Wiki (usually it's best to keep guides / tutorials in Wiki). However, small downside of that that the maintenance of the wiki separate and it's easier for wiki to get outdated as people usually only do PRs and don't update the Wiki.
  • solution 2. Leave basic information in README.md, then move the rest of .MD files to docs folder where we could structure documentation. The upsides of this is that documentation is versioned together with the code. Additionally, we would be able to setup Github Pages and point it to docs/ folder in the future, should you want to start using Github Pages for the project.

I would suggest to go with solution 2 and I could submit a basic PR to move the files there + add basic Index / structure.

Please let me know what you think. It's a great project and I would like to improve it's documentation.

Avoiding the Chef install?

Anyway we can avoid the omnibus installer? We haven't gotten to actually writing tests yet, but use kitchen for the development. Kind of annoying that we have to wait for chef when we don't use it. Plus it confuses the issue for newbros when they see chef getting installed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.