cem_acpt 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/cem_acpt/cli.rb +10 -2
- data/lib/cem_acpt/config/cem_acpt_image.rb +9 -0
- data/lib/cem_acpt/image_builder/provision_commands.rb +1 -0
- data/lib/cem_acpt/image_builder.rb +18 -6
- data/lib/cem_acpt/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f33bff59cae8ea713a55134ce914c83aa3583e16e56cd0d5aca4bc7106df092
|
4
|
+
data.tar.gz: e1f8f76188ad32473da89fc389eead2b9d63af2bc8856cf3b30863b6454f89d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a54dfbf7dcf40684b3d00bec253822943cacd7388d3dabaaf6d6ed260811c5862d694544ea07f2cd135274cd9227aaa16e00e0dcc712e41c906bfffaa8fef17
|
7
|
+
data.tar.gz: '06678cf120f230d981d5247c39b688e8ca96ed13225e0595595579041232e17c3220044b4f51091ab6900e10b8b4f2aedd0115da901a9619025e7576aa7ceec2'
|
data/Gemfile.lock
CHANGED
data/lib/cem_acpt/cli.rb
CHANGED
@@ -36,15 +36,23 @@ module CemAcpt
|
|
36
36
|
options[:tests] = t.split(',')
|
37
37
|
end
|
38
38
|
when :cem_acpt_image
|
39
|
-
opts.on('
|
39
|
+
opts.on('--dry-run', 'Logs the information for the images that would be created. Does not create images.') do
|
40
|
+
options[:dry_run] = true
|
41
|
+
end
|
42
|
+
|
43
|
+
opts.on('--no-linux', 'Do not build Linux images') do
|
40
44
|
options[:cem_acpt_image] ||= {}
|
41
45
|
options[:cem_acpt_image][:no_linux] = true
|
42
46
|
end
|
43
47
|
|
44
|
-
opts.on('
|
48
|
+
opts.on('--no-windows', 'Do not build Windows images') do
|
45
49
|
options[:cem_acpt_image] ||= {}
|
46
50
|
options[:cem_acpt_image][:no_windows] = true
|
47
51
|
end
|
52
|
+
|
53
|
+
opts.on('-F', '--filter FILTER', 'Filter images to build by name with regex. Example: -F "(alma|rhel)-8"') do |f|
|
54
|
+
options[:image_name_filter] = Regexp.new(f)
|
55
|
+
end
|
48
56
|
end
|
49
57
|
|
50
58
|
opts.on('-D', '--debug', 'Enable debug logging') do
|
@@ -7,9 +7,12 @@ module CemAcpt
|
|
7
7
|
# Holds the configuration for cem_acpt_image
|
8
8
|
class CemAcptImage < Base
|
9
9
|
VALID_KEYS = %i[
|
10
|
+
cem_acpt_image
|
10
11
|
ci_mode
|
11
12
|
config_file
|
13
|
+
dry_run
|
12
14
|
images
|
15
|
+
image_name_filter
|
13
16
|
log_level
|
14
17
|
log_file
|
15
18
|
log_format
|
@@ -34,9 +37,15 @@ module CemAcpt
|
|
34
37
|
# The default configuration
|
35
38
|
def defaults
|
36
39
|
{
|
40
|
+
cem_acpt_image: {
|
41
|
+
no_linux: false,
|
42
|
+
no_windows: false,
|
43
|
+
},
|
37
44
|
ci_mode: false,
|
38
45
|
config_file: nil,
|
46
|
+
dry_run: false,
|
39
47
|
images: {},
|
48
|
+
image_name_filter: Regexp.new('.*'),
|
40
49
|
log_level: 'info',
|
41
50
|
log_file: nil,
|
42
51
|
log_format: 'text',
|
@@ -44,17 +44,19 @@ module CemAcpt
|
|
44
44
|
def run
|
45
45
|
@start_time = Time.now
|
46
46
|
logger.with_ci_group("CemAcptImage v#{CemAcpt::VERSION} run started at #{@start_time}") do
|
47
|
-
logger.info('CemAcptImage') { "Using working directory: #{@working_dir}..." }
|
48
|
-
keep_terminal_alive
|
49
47
|
@all_tfvars = new_tfvars(@config)
|
50
|
-
@working_dir = new_working_dir
|
51
48
|
@linux_tfvars, @windows_tfvars = divide_tfvars_by_os(@all_tfvars)
|
52
|
-
save_vars_to_file!('linux', @linux_tfvars)
|
53
|
-
save_vars_to_file!('windows', @windows_tfvars)
|
54
|
-
terraform_init
|
55
49
|
image_types = []
|
56
50
|
image_types << [@linux_tfvars, 'linux'] unless no_linux?
|
57
51
|
image_types << [@windows_tfvars, 'windows'] unless no_windows?
|
52
|
+
return dry_run(image_types) if @config.get('dry_run')
|
53
|
+
|
54
|
+
@working_dir = new_working_dir
|
55
|
+
logger.info('CemAcptImage') { "Using working directory: #{@working_dir}..." }
|
56
|
+
keep_terminal_alive
|
57
|
+
save_vars_to_file!('linux', @linux_tfvars)
|
58
|
+
save_vars_to_file!('windows', @windows_tfvars)
|
59
|
+
terraform_init
|
58
60
|
image_types.each do |tfvars, os_str|
|
59
61
|
terraform_plan(os_str, tfvars, DEFAULT_PLAN_NAME)
|
60
62
|
begin
|
@@ -107,6 +109,14 @@ module CemAcpt
|
|
107
109
|
@linux_tfvars[:node_data].empty? || @config.get('cem_acpt_image.no_linux')
|
108
110
|
end
|
109
111
|
|
112
|
+
def dry_run(image_types)
|
113
|
+
logger.info('CemAcptImage') { 'Dry run mode enabled. No images will be built.' }
|
114
|
+
image_types.each do |tfvars, os_str|
|
115
|
+
logger.info('CemAcptImage') { "Dry run for #{os_str}..." }
|
116
|
+
logger.info('CemAcptImage') { "Terraform vars:\n#{JSON.pretty_generate(tfvars)}" }
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
110
120
|
def terraform
|
111
121
|
return @terraform if defined?(@terraform)
|
112
122
|
|
@@ -233,6 +243,8 @@ module CemAcpt
|
|
233
243
|
tfvars[:private_key] = private_key if private_key
|
234
244
|
tfvars[:public_key] = public_key if public_key
|
235
245
|
config.get('images').each do |image_name, image|
|
246
|
+
next if config.get('image_name_filter')&.respond_to?(:match?) && !config.get('image_name_filter').match?(image_name)
|
247
|
+
|
236
248
|
platform = new_platform(config, **tfvars)
|
237
249
|
tfvars.merge!(platform.platform_data)
|
238
250
|
provision_commands = CemAcpt::ImageBuilder::ProvisionCommands.provision_commands(
|
data/lib/cem_acpt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cem_acpt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async-http
|