kitchen-oci 1.6.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|