kitchen-salt 0.0.28 → 0.0.29

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f03994ca6c8646d68c1b86979dfdd41f32a2fa89
4
- data.tar.gz: a82c4bea05fde368a1e2dd19e290076519a24cf8
3
+ metadata.gz: 59e051d229d33983d4f1ff8d7f4f092a5e5808af
4
+ data.tar.gz: 3fc7174b04e097267d2fa49854f51abe5f0d3d45
5
5
  SHA512:
6
- metadata.gz: d7804949ec34cb3b6bd138131d515cd9e48727aa0ae09a733d864e22e4326c93bd6840989a7bf7d69320beb774937fa353837c12abede923a033ae90bb574523
7
- data.tar.gz: d5028e5a136ed489c6b9c002323cd965b99d87c7009c84a8d90e8325a3446b8ab61127db3a290beee832953c86801905f1d23b61dfce88f0bd5b2c51eac5b43f
6
+ metadata.gz: 77590fa2bbc1f1fe17f1a2b1f1f20de2fbe86df9bb5c4e321a8a4d9e91bc9bc6bbd978e5e9f74fb6592286026325fb62acbbf6034fe4c96650635828ea90a8a0
7
+ data.tar.gz: 9ab055a9ac8a3dee16f1f5adbce36279035196f9516e0f01489b357c3ce7e92c4472c9a10474b5cbe653e7a9593d2f13eb472570909d21c9df0116a8cdbc08a3
@@ -8,6 +8,25 @@ module Kitchen
8
8
 
9
9
  pillars = config[:pillars]
10
10
  pillars_from_files = config[:'pillars-from-files']
11
+ pillars_from_directories = config[:pillars_from_directories]
12
+
13
+ debug("Pillars Directories: #{pillars_from_directories}")
14
+
15
+ if pillars_from_directories.any?
16
+ pillars_from_directories.each do |dir|
17
+ if dir.is_a?(Hash)
18
+ local_pillar_path = File.expand_path(dir[:source])
19
+ sandbox_pillar_path = File.join(sandbox_path, dir[:dest])
20
+ info("Copying pillars from #{dir[:source]} to #{dir[:dest]}")
21
+ else
22
+ local_pillar_path = File.expand_path(dir)
23
+ sandbox_pillar_path = File.join(sandbox_path, '/srv/pillar')
24
+ info("Copying pillars from #{dir} to /srv/pillar")
25
+ end
26
+ cp_r_with_filter(local_pillar_path, sandbox_pillar_path, config[:salt_copy_filter])
27
+ end
28
+ end
29
+
11
30
  debug("Pillars Hash: #{pillars}")
12
31
 
13
32
  if pillars.nil? && pillars_from_files.nil?
@@ -1,5 +1,5 @@
1
1
  module Kitchen
2
2
  module Salt
3
- VERSION = '0.0.28'.freeze
3
+ VERSION = '0.0.29'.freeze
4
4
  end
5
5
  end
@@ -59,9 +59,6 @@ def install_dependencies
59
59
 
60
60
  # install formulas
61
61
  config[:dependencies].each do |formula|
62
- #unless config[:vendor_repo].has_key?(formula[:repo])
63
- # raise UserError, "kitchen-salt: Invalid dependency formula :repo, no such vendor_repo '#{formula[:repo]}' specified."
64
- #end
65
62
  if formula.key?(:repo)
66
63
  case formula[:repo]
67
64
  when 'git'
@@ -69,10 +66,16 @@ def install_dependencies
69
66
  fetchGitFormula #{formula[:source]} "#{formula[:name]}" "#{formula[:branch] || 'master'}"
70
67
  INSTALL
71
68
  when 'spm'
72
- # TODO: SPM should know the sandbox_path is /tmp/kitchen/etc
73
- script += <<-INSTALL
74
- #{sudo('spm')} install #{formula[:package]||formula[:name]};
75
- INSTALL
69
+ if formula[:package].nil?
70
+ script += <<-INSTALL
71
+ #{sudo('spm')} -c #{config[:root_path]}/etc/salt install -y #{formula[:name]};
72
+ INSTALL
73
+ else
74
+ script += <<-INSTALL
75
+ #{sudo('curl')} -O #{formula[:package]};
76
+ #{sudo('spm')} -c #{config[:root_path]}/etc/salt local install -y "$(basename #{formula[:package]})";
77
+ INSTALL
78
+ end
76
79
  when 'yum'
77
80
  script += <<-INSTALL
78
81
  #{sudo('yum')} install -y #{formula[:package]||formula[:name]};
@@ -90,6 +93,7 @@ def install_dependencies
90
93
  linkFormulas "$SALT_ROOT"
91
94
  #{sudo('chown')} kitchen.kitchen -R "${SALT_SHARE_DIR}";
92
95
  #{sudo('chown')} kitchen.kitchen -R "${SALT_ROOT}";
96
+ echo "Content of $SALT_ROOT :";
93
97
  ls -la "$SALT_ROOT";
94
98
  INSTALL
95
99
  return script
@@ -97,7 +101,7 @@ end
97
101
 
98
102
 
99
103
  <<-INSTALL
100
- #!/bin/bash
104
+ #!/usr/bin/env bash
101
105
 
102
106
  echo "Install External Dependencies";
103
107
  #{install_dependencies}
@@ -78,14 +78,14 @@ function linkFormulas() {
78
78
  fi
79
79
 
80
80
  # form pkgs
81
- find "$SALT_ENV" -maxdepth 1 -mindepth 1 -path "*_formulas*" -prune -o -name "*" -type d -print0| xargs -I{} -0 -n1 basename --no-run-if-empty {} | xargs -I{} --no-run-if-empty \
81
+ find "$SALT_ENV" -maxdepth 1 -mindepth 1 -path "*_formulas*" -prune -o -name "*" -type d -print0| xargs -I{} -0 -n1 --no-run-if-empty basename {} | xargs -I{} --no-run-if-empty \
82
82
  ln -fs "$SALT_ENV"/{} "$SALT_ROOT"/{};
83
83
  fi
84
84
 
85
85
  }
86
86
 
87
87
  # detect if file is being sourced
88
- [[ "$0" != "${BASH_SOURCE[@]}" ]] || {
88
+ [[ "$0" != "${BASH_SOURCE[0]}" ]] || {
89
89
  # if executed, run implicit function
90
90
  fetchGitFormula "${@}"
91
91
  }
@@ -1,4 +1,3 @@
1
-
2
1
  <%=
3
2
  salt_install = config[:salt_install]
4
3
  salt_url = config[:salt_bootstrap_url]
@@ -7,6 +6,10 @@ salt_version = config[:salt_version]
7
6
  salt_apt_repo = config[:salt_apt_repo]
8
7
  salt_apt_repo_key = config[:salt_apt_repo_key]
9
8
  salt_ppa = config[:salt_ppa]
9
+ salt_yum_rpm_key = config[:salt_yum_rpm_key] % [salt_version]
10
+ salt_yum_repo = config[:salt_yum_repo] % [salt_version]
11
+ salt_yum_repo_key = config[:salt_yum_repo_key] % [salt_version]
12
+ salt_yum_repo_latest = config[:salt_yum_repo_latest]
10
13
 
11
14
  <<-INSTALL
12
15
  sh -c '
@@ -30,6 +33,10 @@ then
30
33
  DISTRIB_CODENAME=$(lsb_release -s -c)
31
34
  fi
32
35
 
36
+ echo "-----> Install apt-transport-https"
37
+ #{sudo('apt-get')} update
38
+ #{sudo('apt-get')} install -y apt-transport-https gnupg
39
+
33
40
  echo "-----> Configuring apt repo for salt #{salt_version}"
34
41
  echo "deb #{salt_apt_repo}/#{salt_version} ${DISTRIB_CODENAME} main" | #{sudo('tee')} /etc/apt/sources.list.d/salt-#{salt_version}.list
35
42
 
@@ -40,47 +47,49 @@ then
40
47
  sleep 10
41
48
  echo "-----> Installing salt-minion (#{salt_version})"
42
49
  #{sudo('apt-get')} install -y python-support
43
- #{sudo('apt-get')} install -y salt-minion salt-common
50
+ #{sudo('apt-get')} install -y salt-minion salt-common salt-master
44
51
  elif [ -z "${SALT_VERSION}" -a "#{salt_install}" = "distrib" ]
45
52
  then
46
53
  #{sudo('apt-get')} update
47
- #{sudo('apt-get')} install -y salt-minion
54
+ #{sudo('apt-get')} install -y python-support
55
+ #{sudo('apt-get')} install -y salt-minion salt-master
48
56
  elif [ -z "${SALT_VERSION}" -a "#{salt_install}" = "ppa" ]
49
57
  then
50
58
  #{sudo('apt-add-repository')} -y #{salt_ppa}
51
59
  #{sudo('apt-get')} update
52
- #{sudo('apt-get')} install -y salt-minion salt-common
60
+ #{sudo('apt-get')} install -y python-support
61
+ #{sudo('apt-get')} install -y salt-minion salt-common salt-master
53
62
  elif [ -z "${SALT_VERSION}" -a "#{salt_install}" = "yum" ]
54
63
  then
55
64
  if [ -z "#{salt_version}" ]
56
65
  then
57
66
  echo "-----> Installing yum repo for salt latest"
58
- #{sudo('yum')} install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
67
+ #{sudo('yum')} install #{salt_yum_repo_latest}
59
68
  else
60
69
  echo "-----> Installing yum repo for salt #{salt_version}"
61
- #{sudo('rpm')} --import 'https://repo.saltstack.com/yum/redhat/7/x86_64/archive/#{salt_version}/SALTSTACK-GPG-KEY.pub'
70
+ #{sudo('rpm')} --import '#{salt_yum_rpm_key}'
62
71
  #{sudo('tee')} /etc/yum.repos.d/saltstack.repo <<EOL
63
72
  [saltstack-repo]
64
73
  name=SaltStack repo for RHEL/CentOS $releasever
65
- baseurl=#{Shellwords.escape("https://repo.saltstack.com/yum/redhat/$releasever/$basearch/archive/#{salt_version}")}
74
+ baseurl=#{Shellwords.escape(salt_yum_repo)}
66
75
  enabled=1
67
76
  gpgcheck=1
68
- gpgkey=#{Shellwords.escape("https://repo.saltstack.com/yum/redhat/$releasever/$basearch/archive/#{salt_version}/SALTSTACK-GPG-KEY.pub")}
77
+ gpgkey=#{Shellwords.escape(salt_yum_repo_key)}
69
78
  EOL
70
79
  fi
71
80
  #{sudo('yum')} clean expire-cache
72
81
  echo "-----> Installing salt-minion (#{salt_version})"
73
- #{sudo('yum')} install -y salt-minion salt-common
82
+ #{sudo('yum')} install -y salt-minion salt-common salt-master
74
83
  fi
75
84
 
76
85
  # check again, now that an install of some form should have happened
77
- command -v salt-call >/dev/null 2>&1 && SALT_VERSION=$(salt-call --version|cut -d " " -f 2)
86
+ command -v salt-call >/dev/null 2>&1 && FULL_SALT_VERSION=$(salt-call --version|cut -d " " -f 2)
78
87
 
79
88
  # extract short format of Salt version
80
- if [ ! -z "${SALT_VERSION}" ]
89
+ if [ ! -z "${FULL_SALT_VERSION}" ]
81
90
  then
82
- YEAR=$(echo "$SALT_VERSION" | cut -d "." -f1)
83
- MONTH=$(echo "$SALT_VERSION" | cut -d "." -f2)
91
+ YEAR=$(echo "$FULL_SALT_VERSION" | cut -d "." -f1)
92
+ MONTH=$(echo "$FULL_SALT_VERSION" | cut -d "." -f2)
84
93
  SALT_VERSION="${YEAR}.${MONTH}"
85
94
  fi
86
95
 
@@ -94,10 +103,14 @@ then
94
103
  echo "salt_apt_repo = #{salt_apt_repo}"
95
104
  echo "salt_apt_repo_key = #{salt_apt_repo_key}"
96
105
  echo "salt_ppa = #{salt_ppa}"
106
+ echo "salt_yum_rpm_key = #{salt_yum_rpm_key}"
107
+ echo "salt_yum_repo = #{salt_yum_repo}"
108
+ echo "salt_yum_repo_key = #{salt_yum_repo_key}"
109
+ echo "salt_yum_repo_latest = #{salt_yum_repo_latest}"
97
110
  exit 2
98
- elif [ "${SALT_VERSION}" = "#{salt_version}" -o "#{salt_version}" = "latest" ]
111
+ elif [ "${SALT_VERSION}" = "#{salt_version}" -o "#{salt_version}" = "latest" -o "#{salt_version}" = "${FULL_SALT_VERSION}" ]
99
112
  then
100
- echo "You asked for #{salt_version} and you have ${SALT_VERSION} installed, sweet!"
113
+ echo "You asked for #{salt_version} and you have ${FULL_SALT_VERSION} installed, sweet!"
101
114
  elif [ ! -z "${SALT_VERSION}" -a "#{salt_install}" = "bootstrap" ]
102
115
  then
103
116
  echo "You asked for bootstrap install and you have got ${SALT_VERSION}, hope thats ok!"
@@ -106,7 +119,6 @@ else
106
119
  exit 2
107
120
  fi
108
121
 
109
- #{install_chef}
110
- '
122
+ #{install_chef}'
111
123
  INSTALL
112
124
  %>
@@ -1,13 +1,13 @@
1
+ local: true
1
2
  state_top: top.sls
2
-
3
- file_client: local
3
+ root_dir: <%= config[:root_path] %>
4
4
 
5
5
  file_roots:
6
6
  <%= config[:salt_env] %>:
7
-
8
7
  - <%= File.join(config[:root_path], (windows_os? ? config[:salt_file_root].gsub('/', '\\') : config[:salt_file_root])) %>
9
- - <%= File.join(config[:root_path], (windows_os? ? config[:salt_file_root].gsub('/', '\\') : config[:salt_file_root]), 'spm') %>
8
+ - <%= File.join(config[:root_path], (windows_os? ? config[:salt_spm_root].gsub('/', '\\') : config[:salt_spm_root])) %>/salt
10
9
 
11
10
  pillar_roots:
12
11
  <%= config[:salt_env] %>:
13
12
  - <%= File.join(config[:root_path], (windows_os? ? config[:salt_pillar_root].gsub('/', '\\') : config[:salt_pillar_root])) %>
13
+ - <%= File.join(config[:root_path], (windows_os? ? config[:salt_spm_root].gsub('/', '\\') : config[:salt_spm_root])) %>/pillar
@@ -18,7 +18,7 @@ function apt_repo_add {
18
18
  }
19
19
 
20
20
  # detect if file is being sourced
21
- [[ "$0" != "${BASH_SOURCE[@]}" ]] || {
21
+ [[ "$0" != "${BASH_SOURCE[0]}" ]] || {
22
22
  # if executed, run implicit function
23
23
  #apt_repo_add "${@}"
24
24
  echo 'Usage: apt_repo_add "custom id" "arch" "repo url" "components" "distribution" "repo gpg key"';
@@ -40,7 +40,7 @@ module Kitchen
40
40
  salt_install: 'bootstrap',
41
41
  salt_bootstrap_url: 'https://bootstrap.saltstack.com',
42
42
  salt_bootstrap_options: '',
43
- salt_apt_repo: 'https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest',
43
+ salt_apt_repo: 'https://repo.saltstack.com/apt/ubuntu/16.04/amd64/',
44
44
  salt_apt_repo_key: 'https://repo.saltstack.com/apt/ubuntu/16.04/amd64/latest/SALTSTACK-GPG-KEY.pub',
45
45
  salt_ppa: 'ppa:saltstack/salt',
46
46
  bootstrap_url: 'https://raw.githubusercontent.com/saltstack/kitchen-salt/master/assets/install.sh',
@@ -65,7 +65,12 @@ module Kitchen
65
65
  vendor_path: nil,
66
66
  vendor_repo: {},
67
67
  omnibus_cachier: false,
68
- local_salt_root: nil
68
+ local_salt_root: nil,
69
+ pillars_from_directories: [],
70
+ salt_yum_rpm_key: 'https://repo.saltstack.com/yum/redhat/7/x86_64/archive/%s/SALTSTACK-GPG-KEY.pub',
71
+ salt_yum_repo: 'https://repo.saltstack.com/yum/redhat/$releasever/$basearch/archive/%s',
72
+ salt_yum_repo_key: 'https://repo.saltstack.com/yum/redhat/$releasever/$basearch/archive/%s/SALTSTACK-GPG-KEY.pub',
73
+ salt_yum_repo_latest: 'https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm'
69
74
  }
70
75
 
71
76
  # salt-call version that supports the undocumented --retcode-passthrough command
@@ -102,12 +107,12 @@ module Kitchen
102
107
  chef_url = config[:chef_bootstrap_url]
103
108
  if windows_os?
104
109
  <<-POWERSHELL
105
- if (-Not $(test-path c:\\opscode\\chef) {
110
+ if (-Not $(test-path c:\\opscode\\chef) {
106
111
  if (-Not $(Test-Path c:\\temp)) {
107
112
  New-Item -Path c:\\temp -itemtype directory
108
113
  }
109
114
  (New-Object net.webclient).DownloadFile("#{chef_url}", "c:\\temp\\chef_bootstrap.ps1")
110
- write-host "-----> Installing Chef Omnibus (for busser/serverspec ruby support)"
115
+ write-host "-----> Installing Chef Omnibus (for busser/serverspec ruby support)"
111
116
  #{sudo('powershell')} c:\\temp\\chef_bootstrap.ps1
112
117
  }
113
118
  POWERSHELL
@@ -152,7 +157,7 @@ module Kitchen
152
157
  def init_command
153
158
  debug("Initialising Driver #{name}")
154
159
  if windows_os?
155
- cmd = "mkdir -Force -Path ""#{config[:root_path]}"""
160
+ cmd = "mkdir -Force -Path ""#{config[:root_path]}""\n"
156
161
  else
157
162
  cmd = "mkdir -p '#{config[:root_path]}';"
158
163
  end
@@ -1,6 +1,7 @@
1
- spm_build_dir: <%= File.join(config[:root_path], (windows_os? ? config[:salt_file_root].gsub('/', '\\') : config[:salt_file_root])) %>/build
2
- formula_path: <%= File.join(config[:root_path], (windows_os? ? config[:salt_file_root].gsub('/', '\\') : config[:salt_file_root])) %>/formulas
3
- pillar_path: <%= File.join(config[:root_path], (windows_os? ? config[:salt_pillar_root].gsub('/', '\\') : config[:salt_pillar_root])) %>
1
+ spm_build_dir: <%= File.join(config[:root_path]) %>/build
2
+ formula_path: <%= File.join(config[:root_path], (windows_os? ? config[:salt_spm_root].gsub('/', '\\') : config[:salt_spm_root])) %>/salt
3
+ pillar_path: <%= File.join(config[:root_path], (windows_os? ? config[:salt_spm_root].gsub('/', '\\') : config[:salt_spm_root])) %>/pillar
4
+ root_dir: <%= config[:root_path] %>
4
5
  spm_build_exclude:
5
6
  - .git
6
7
  - .svn
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-salt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.28
4
+ version: 0.0.29
5
5
  platform: ruby
6
6
  authors:
7
- - Simon McCartney
7
+ - SaltStack Inc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-02 00:00:00.000000000 Z
11
+ date: 2017-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.4'
27
- - !ruby/object:Gem::Dependency
28
- name: rspec
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '3.2'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '3.2'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: pry
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -68,7 +54,7 @@ dependencies:
68
54
  version: 0.7.3
69
55
  description: salt provisioner for test-kitchen so that you can test all the things
70
56
  email:
71
- - simon@mccartney.ie
57
+ - daniel@gtmanfred.com
72
58
  executables: []
73
59
  extensions: []
74
60
  extra_rdoc_files: []
@@ -105,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
91
  version: '0'
106
92
  requirements: []
107
93
  rubyforge_project: "[none]"
108
- rubygems_version: 2.6.12
94
+ rubygems_version: 2.6.13
109
95
  signing_key:
110
96
  specification_version: 4
111
97
  summary: salt provisioner for test-kitchen