kitchen-oci 1.6.1 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +2 -0
- data/lib/kitchen/driver/oci.rb +36 -12
- data/lib/kitchen/driver/oci_version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bef4a4b0aadfd5e5f47b67c4a4807d227cf5f636bacbb1a202579f9bda6fd7fc
|
4
|
+
data.tar.gz: b7cef03d39724831643dbaf5d04ed21222d4cb496ff65da9ac724fafa6e8ee97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86cb6549515a0f169ff4fbfcc0875688f7c0f374ffcccd366a5ce26b20cfe034e18784d22f70df585e37c675c2c48699c80dcfe2d253da3968fb1efd54dd819e
|
7
|
+
data.tar.gz: a49d0d696d9ba6b7af17c9cba108e77a63c1c3c263083a7346afc87406cf081c6160953886165cc8e29578a4d9c92228e91e7fd95f554e8dad4f9e9406c08151
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
|
2
|
+
## 1.8.0 Freeform tags
|
3
|
+
- Added optional parameter `freeform_tags`
|
4
|
+
|
1
5
|
## 1.6.0 WinRM password option
|
2
6
|
- Added option to set winrm password, instead of randomly generating one
|
3
7
|
|
@@ -6,3 +10,4 @@
|
|
6
10
|
- Added cloud-init support.
|
7
11
|
- Added support for Windows targets.
|
8
12
|
- Can inject powershell script to set a random password and enable WinRM
|
13
|
+
|
data/README.md
CHANGED
@@ -61,6 +61,8 @@ These settings are optional:
|
|
61
61
|
- post\_create\_script, run a script on compute\_instance after deployment
|
62
62
|
- proxy\_url, Connect via the specified proxy URL
|
63
63
|
- user\_data, Add user data scripts
|
64
|
+
- hostname\_prefix, Prefix for the generated hostnames (note that OCI doesn't like underscores)
|
65
|
+
- freeform\_tags, Hash containing tag name(s) and values(s)
|
64
66
|
|
65
67
|
Optional settings for WinRM support in Windows:
|
66
68
|
|
data/lib/kitchen/driver/oci.rb
CHANGED
@@ -17,6 +17,8 @@
|
|
17
17
|
# See the License for the specific language governing permissions and
|
18
18
|
# limitations under the License.
|
19
19
|
|
20
|
+
# rubocop:disable Metrics/AbcSize
|
21
|
+
|
20
22
|
# This require fixes bug in ChefDK 4.0.60-1 on Linux.
|
21
23
|
require 'forwardable'
|
22
24
|
|
@@ -42,15 +44,29 @@ module Kitchen
|
|
42
44
|
default_config :use_private_ip, false
|
43
45
|
default_config :oci_config_file, nil
|
44
46
|
default_config :oci_profile_name, nil
|
47
|
+
default_config :hostname_prefix, nil
|
45
48
|
default_keypath = File.expand_path(File.join(%w[~ .ssh id_rsa.pub]))
|
46
49
|
default_config :ssh_keypath, default_keypath
|
47
50
|
default_config :post_create_script, nil
|
48
51
|
default_config :proxy_url, nil
|
49
52
|
default_config :user_data, []
|
53
|
+
default_config :freeform_tags, {}
|
50
54
|
default_config :setup_winrm, false
|
51
55
|
default_config :winrm_user, 'opc'
|
52
56
|
default_config :winrm_password, nil
|
53
57
|
|
58
|
+
def process_freeform_tags(freeform_tags)
|
59
|
+
prov = instance.provisioner.instance_variable_get(:@config)
|
60
|
+
tags = %w[run_list policyfile]
|
61
|
+
tags.each do |tag|
|
62
|
+
unless prov[tag.to_sym].nil? || prov[tag.to_sym].empty?
|
63
|
+
freeform_tags[tag] = prov[tag.to_sym].join(',')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
freeform_tags[:kitchen] = true
|
67
|
+
freeform_tags
|
68
|
+
end
|
69
|
+
|
54
70
|
def process_windows_options(state)
|
55
71
|
state[:username] = config[:winrm_user] if config[:setup_winrm]
|
56
72
|
if config[:setup_winrm] == true &&
|
@@ -61,7 +77,7 @@ module Kitchen
|
|
61
77
|
state
|
62
78
|
end
|
63
79
|
|
64
|
-
def create(state)
|
80
|
+
def create(state)
|
65
81
|
return if state[:server_id]
|
66
82
|
|
67
83
|
state = process_windows_options(state)
|
@@ -221,7 +237,7 @@ module Kitchen
|
|
221
237
|
content.split("\n")
|
222
238
|
end
|
223
239
|
|
224
|
-
def mime_parts(boundary)
|
240
|
+
def mime_parts(boundary)
|
225
241
|
msg = []
|
226
242
|
config[:user_data].each do |m|
|
227
243
|
msg << "--#{boundary}"
|
@@ -255,16 +271,22 @@ module Kitchen
|
|
255
271
|
}
|
256
272
|
end
|
257
273
|
|
274
|
+
def generate_hostname
|
275
|
+
prefix = config[:hostname_prefix]
|
276
|
+
[prefix, random_hostname(instance.name)].compact.join('-')
|
277
|
+
end
|
278
|
+
|
258
279
|
def base_oci_launch_details
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
280
|
+
OCI::Core::Models::LaunchInstanceDetails.new.tap do |l|
|
281
|
+
hostname = generate_hostname
|
282
|
+
l.availability_domain = config[:availability_domain]
|
283
|
+
l.compartment_id = config[:compartment_id]
|
284
|
+
l.display_name = hostname
|
285
|
+
l.source_details = instance_source_details
|
286
|
+
l.shape = config[:shape]
|
287
|
+
l.create_vnic_details = create_vnic_details(hostname)
|
288
|
+
l.freeform_tags = process_freeform_tags(config[:freeform_tags])
|
289
|
+
end
|
268
290
|
end
|
269
291
|
|
270
292
|
def compute_instance_request(state)
|
@@ -284,7 +306,7 @@ module Kitchen
|
|
284
306
|
"#{prefix}-#{random_string(6)}"
|
285
307
|
end
|
286
308
|
|
287
|
-
def random_password
|
309
|
+
def random_password
|
288
310
|
(Array.new(5) { %w[! " # & ( ) * + , - . /].sample } +
|
289
311
|
Array.new(5) { ('a'..'z').to_a.sample } +
|
290
312
|
Array.new(5) { ('A'..'Z').to_a.sample } +
|
@@ -297,3 +319,5 @@ module Kitchen
|
|
297
319
|
end
|
298
320
|
end
|
299
321
|
end
|
322
|
+
|
323
|
+
# rubocop:enable Metrics/AbcSize
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kitchen-oci
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Pearson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oci
|
@@ -146,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
146
|
- !ruby/object:Gem::Version
|
147
147
|
version: '0'
|
148
148
|
requirements: []
|
149
|
-
rubygems_version: 3.0.
|
149
|
+
rubygems_version: 3.0.3
|
150
150
|
signing_key:
|
151
151
|
specification_version: 4
|
152
152
|
summary: A Test Kitchen Driver for Oracle OCI
|