ood_packaging 0.8.0 → 0.9.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/bin/ood_packaging +4 -0
- data/lib/ood_packaging/build.rb +3 -3
- data/lib/ood_packaging/build_box/docker-image/Dockerfile.erb +2 -1
- data/lib/ood_packaging/build_box/docker-image/install.sh.erb +1 -1
- data/lib/ood_packaging/build_box.rb +49 -3
- data/lib/ood_packaging/options.rb +1 -1
- data/lib/ood_packaging/package.rb +4 -1
- data/lib/ood_packaging/tasks.rb +31 -29
- data/lib/ood_packaging/version.rb +3 -3
- 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: 8d66aca5d9123c4952b9a2842fdc3c63aed8e566bf7f5e9569ce197bccbd3eaf
|
4
|
+
data.tar.gz: bb3382c9d597c60585aa35eb6305005e447e02c558b5a30ccc78bee625291c4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 897f586443e3a39a868d2565dc12320bcd416f45d3fe8f26580024179c7b11ef357a8078e681e738ecfcd19b505cbecdea3dee1bb4c8d593b749bc6e03f578d1
|
7
|
+
data.tar.gz: 3531b9092f90394d950baeeeaa4cf4980eaf6163575953846f75688876c0a00109e4095bf2cc737e4236f3590fd1de2204cd59593e8ac82976512abbb527fb67
|
data/bin/ood_packaging
CHANGED
@@ -22,6 +22,10 @@ OptionParser.new do |opts|
|
|
22
22
|
options[:dist] = v
|
23
23
|
end
|
24
24
|
|
25
|
+
opts.on('-a', '--arch=ARCH', String, 'Architecture to build') do |v|
|
26
|
+
options[:arch] = v
|
27
|
+
end
|
28
|
+
|
25
29
|
opts.on('-V', '--version=VERSION', String, 'Version of package to build') do |v|
|
26
30
|
options[:version] = v
|
27
31
|
end
|
data/lib/ood_packaging/build.rb
CHANGED
@@ -15,7 +15,7 @@ class OodPackaging::Build
|
|
15
15
|
attr_accessor :build_box
|
16
16
|
|
17
17
|
def initialize
|
18
|
-
@build_box = OodPackaging::BuildBox.new(dist: ENV['DIST'])
|
18
|
+
@build_box = OodPackaging::BuildBox.new(dist: ENV['DIST'], arch: ENV['ARCH'])
|
19
19
|
end
|
20
20
|
|
21
21
|
def config
|
@@ -116,11 +116,11 @@ class OodPackaging::Build
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def output_dir
|
119
|
-
File.join('/output', build_box.dist)
|
119
|
+
File.join('/output', "#{build_box.dist}-#{build_box.arch}")
|
120
120
|
end
|
121
121
|
|
122
122
|
def work_dir
|
123
|
-
|
123
|
+
build_box.work_dir
|
124
124
|
end
|
125
125
|
|
126
126
|
def packaging_config
|
@@ -45,7 +45,7 @@ run chmod 440 /etc/sudoers.d/ood
|
|
45
45
|
<% if rpm? -%>
|
46
46
|
header "Setup RPM env"
|
47
47
|
sudo -u <%= ctr_user %> -H cat > <%= ctr_rpmmacros %> <<EOF
|
48
|
-
%_topdir
|
48
|
+
%_topdir <%= work_dir %>
|
49
49
|
<%- # Workaround to weird issue with debuginfo stripping -%>
|
50
50
|
<% if dist == 'el7' -%>
|
51
51
|
%_builddir %{_topdir}/rpmbuild/BUILD
|
@@ -23,6 +23,11 @@ class OodPackaging::BuildBox
|
|
23
23
|
'ubuntu-22.04' => 'jammy'
|
24
24
|
}.freeze
|
25
25
|
|
26
|
+
ARCH_PLATFORMS = {
|
27
|
+
'x86_64' => 'linux/amd64',
|
28
|
+
'aarch64' => 'linux/arm64'
|
29
|
+
}.freeze
|
30
|
+
|
26
31
|
def initialize(config = {})
|
27
32
|
@config = config
|
28
33
|
raise ArgumentError, 'Must provide dist' if dist.nil?
|
@@ -31,6 +36,9 @@ class OodPackaging::BuildBox
|
|
31
36
|
unless valid_dist?(dist)
|
32
37
|
raise ArgumentError, "Invalid dist selected: #{dist}. Valid choices are #{valid_dists.join(' ')}"
|
33
38
|
end
|
39
|
+
unless valid_arch?(arch)
|
40
|
+
raise ArgumentError, "Invalid arch selected: #{arch}. Valid choices are #{valid_arches.join(' ')}"
|
41
|
+
end
|
34
42
|
# rubocop:enable Style/GuardClause
|
35
43
|
end
|
36
44
|
|
@@ -38,6 +46,10 @@ class OodPackaging::BuildBox
|
|
38
46
|
@dist ||= ENV['OOD_PACKAGING_DIST'] || @config[:dist]
|
39
47
|
end
|
40
48
|
|
49
|
+
def arch
|
50
|
+
@arch ||= ENV['OOD_PACKAGING_ARCH'] || @config[:arch] || 'x86_64'
|
51
|
+
end
|
52
|
+
|
41
53
|
def rpm?
|
42
54
|
dist.start_with?('el') || dist.start_with?('amzn')
|
43
55
|
end
|
@@ -80,6 +92,14 @@ class OodPackaging::BuildBox
|
|
80
92
|
BASE_IMAGES.keys
|
81
93
|
end
|
82
94
|
|
95
|
+
def valid_arch?(value)
|
96
|
+
ARCH_PLATFORMS.key?(value)
|
97
|
+
end
|
98
|
+
|
99
|
+
def valid_arches
|
100
|
+
ARCH_PLATFORMS.keys
|
101
|
+
end
|
102
|
+
|
83
103
|
def base_image
|
84
104
|
@base_image ||= BASE_IMAGES[dist]
|
85
105
|
end
|
@@ -88,10 +108,18 @@ class OodPackaging::BuildBox
|
|
88
108
|
@codename ||= CODENAMES[dist]
|
89
109
|
end
|
90
110
|
|
111
|
+
def platform
|
112
|
+
@platform ||= ARCH_PLATFORMS[arch]
|
113
|
+
end
|
114
|
+
|
91
115
|
def build_dir
|
92
116
|
File.join(File.dirname(__FILE__), 'build_box/docker-image')
|
93
117
|
end
|
94
118
|
|
119
|
+
def work_dir
|
120
|
+
File.join('/work', "#{dist}-#{arch}")
|
121
|
+
end
|
122
|
+
|
95
123
|
def image_registry
|
96
124
|
@config[:build_box_registry] || ENV['OOD_PACKAGING_BUILD_BOX_REGISTRY'] || nil
|
97
125
|
end
|
@@ -109,7 +137,7 @@ class OodPackaging::BuildBox
|
|
109
137
|
end
|
110
138
|
|
111
139
|
def image_tag
|
112
|
-
[image_registry, image_org, "#{image_name}-#{dist}:#{image_version}"].compact.join('/')
|
140
|
+
[image_registry, image_org, "#{image_name}-#{dist}-#{arch}:#{image_version}"].compact.join('/')
|
113
141
|
end
|
114
142
|
|
115
143
|
def build_gem
|
@@ -128,11 +156,29 @@ class OodPackaging::BuildBox
|
|
128
156
|
template_file('build_box/docker-image/install.sh.erb')
|
129
157
|
end
|
130
158
|
|
159
|
+
def build_command
|
160
|
+
if container_runtime == 'docker'
|
161
|
+
['buildx', 'build']
|
162
|
+
else
|
163
|
+
['build']
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
def build_output
|
168
|
+
if container_runtime == 'docker'
|
169
|
+
['--output', 'type=docker']
|
170
|
+
else
|
171
|
+
[]
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
131
175
|
def build!
|
132
176
|
scripts
|
133
|
-
cmd = [container_runtime
|
134
|
-
cmd.concat
|
177
|
+
cmd = [container_runtime]
|
178
|
+
cmd.concat build_command
|
179
|
+
cmd.concat ['--platform', platform]
|
135
180
|
cmd.concat ['--tag', image_tag]
|
181
|
+
cmd.concat build_output
|
136
182
|
cmd.concat [ENV['OOD_PACKAGING_BUILD_BOX_ARGS']] if ENV['OOD_PACKAGING_BUILD_BOX_ARGS']
|
137
183
|
cmd.concat ['-f', dockerfile]
|
138
184
|
cmd.concat [build_dir]
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# Handle options for OodPackaging
|
4
4
|
module OodPackaging
|
5
|
-
OPTIONS = [:package, :version, :dist, :work_dir, :clean_work_dir, :output_dir, :clean_output_dir, :tar,
|
5
|
+
OPTIONS = [:package, :version, :dist, :arch, :work_dir, :clean_work_dir, :output_dir, :clean_output_dir, :tar,
|
6
6
|
:tar_only, :skip_download, :gpg_sign, :gpg_name, :gpg_pubkey, :gpg_private_key, :gpg_passphrase,
|
7
7
|
:debug, :attach].freeze
|
8
8
|
end
|
@@ -276,7 +276,7 @@ class OodPackaging::Package
|
|
276
276
|
|
277
277
|
def container_start!
|
278
278
|
cmd = [container_runtime, 'run', '--detach', '--rm']
|
279
|
-
cmd.concat ['--platform',
|
279
|
+
cmd.concat ['--platform', build_box.platform]
|
280
280
|
cmd.concat ['--name', container_name]
|
281
281
|
cmd.concat rt_specific_flags
|
282
282
|
cmd.concat container_mounts
|
@@ -314,11 +314,14 @@ class OodPackaging::Package
|
|
314
314
|
cmd = [container_runtime, 'kill', container_name]
|
315
315
|
cmd.concat [cmd_suffix] unless debug?
|
316
316
|
sh cmd.join(' '), verbose: debug?
|
317
|
+
rescue RuntimeError
|
318
|
+
puts 'Error killing container'.red
|
317
319
|
end
|
318
320
|
|
319
321
|
def container_env
|
320
322
|
env = {
|
321
323
|
'DIST' => build_box.dist,
|
324
|
+
'ARCH' => build_box.arch,
|
322
325
|
'PACKAGE' => package_name,
|
323
326
|
'VERSION' => version,
|
324
327
|
'TAR_NAME' => "#{tar_name}.tar.gz",
|
data/lib/ood_packaging/tasks.rb
CHANGED
@@ -17,25 +17,25 @@ namespace :ood_packaging do
|
|
17
17
|
|
18
18
|
namespace :buildbox do
|
19
19
|
desc 'Build buildbox image'
|
20
|
-
task :build, [:dist] do |_task, args|
|
20
|
+
task :build, [:dist, :arch] do |_task, args|
|
21
21
|
@build_box = OodPackaging::BuildBox.new(args)
|
22
22
|
@build_box.build!
|
23
23
|
end
|
24
24
|
|
25
25
|
desc 'Push buildbox image'
|
26
|
-
task :push, [:dist] do |_task, args|
|
26
|
+
task :push, [:dist, :arch] do |_task, args|
|
27
27
|
@build_box = OodPackaging::BuildBox.new(args)
|
28
28
|
@build_box.push!
|
29
29
|
end
|
30
30
|
|
31
31
|
desc 'Pull buildbox image'
|
32
|
-
task :pull, [:dist] do |_task, args|
|
32
|
+
task :pull, [:dist, :arch] do |_task, args|
|
33
33
|
@build_box = OodPackaging::BuildBox.new(args)
|
34
34
|
@build_box.pull!
|
35
35
|
end
|
36
36
|
|
37
37
|
desc 'Save buildbox image'
|
38
|
-
task :save, [:dist, :path] do |_task, args|
|
38
|
+
task :save, [:dist, :arch, :path] do |_task, args|
|
39
39
|
@build_box = OodPackaging::BuildBox.new(args)
|
40
40
|
@build_box.save!(args[:path])
|
41
41
|
end
|
@@ -47,76 +47,78 @@ namespace :ood_packaging do
|
|
47
47
|
OodPackaging::Build.new.run!
|
48
48
|
end
|
49
49
|
|
50
|
-
OodPackaging::RakeTask.new(:internal, [:package, :dist]) do |t, args|
|
50
|
+
OodPackaging::RakeTask.new(:internal, [:package, :dist, :arch]) do |t, args|
|
51
51
|
name = args[:package].split(':').last
|
52
52
|
t.package = File.join(proj_root, 'packages', name)
|
53
53
|
dist = args[:dist] || ENV['OOD_PACKAGING_DIST']
|
54
|
+
arch = args[:arch] || ENV['OOD_PACKAGING_ARCH'] || 'x86_64'
|
54
55
|
t.dist = dist
|
56
|
+
t.arch = arch
|
55
57
|
t.version = OodPackaging.package_version(name, dist)
|
56
58
|
t.work_dir = File.join(proj_root, 'tmp/work')
|
57
59
|
t.output_dir = File.join(proj_root, 'tmp/output')
|
58
60
|
end
|
59
61
|
|
60
62
|
desc 'Package ondemand-release'
|
61
|
-
task :'ondemand-release', [:dist] do |t, args|
|
63
|
+
task :'ondemand-release', [:dist, :arch] do |t, args|
|
62
64
|
ENV['OOD_PACKAGING_GPG_SIGN'] = 'false'
|
63
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
65
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
64
66
|
end
|
65
67
|
|
66
68
|
desc 'Package ondemand-release-latest'
|
67
|
-
task :'ondemand-release-latest', [:dist] do |t, args|
|
69
|
+
task :'ondemand-release-latest', [:dist, :arch] do |t, args|
|
68
70
|
ENV['OOD_PACKAGING_GPG_SIGN'] = 'false'
|
69
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
71
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
70
72
|
end
|
71
73
|
|
72
74
|
desc 'Package ondemand-runtime'
|
73
|
-
task :'ondemand-runtime', [:dist] do |t, args|
|
74
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
75
|
+
task :'ondemand-runtime', [:dist, :arch] do |t, args|
|
76
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
75
77
|
end
|
76
78
|
|
77
79
|
desc 'Package scl-utils'
|
78
|
-
task :'scl-utils', [:dist] do |t, args|
|
79
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
80
|
+
task :'scl-utils', [:dist, :arch] do |t, args|
|
81
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
80
82
|
end
|
81
83
|
|
82
84
|
desc 'Package passenger'
|
83
|
-
task :passenger, [:dist] do |t, args|
|
84
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
85
|
+
task :passenger, [:dist, :arch] do |t, args|
|
86
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
85
87
|
end
|
86
88
|
|
87
89
|
desc 'Package cjose'
|
88
|
-
task :cjose, [:dist] do |t, args|
|
89
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
90
|
+
task :cjose, [:dist, :arch] do |t, args|
|
91
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
90
92
|
end
|
91
93
|
|
92
94
|
desc 'Package mod_auth_openidc'
|
93
|
-
task :mod_auth_openidc, [:dist] do |t, args|
|
94
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
95
|
+
task :mod_auth_openidc, [:dist, :arch] do |t, args|
|
96
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
95
97
|
end
|
96
98
|
|
97
99
|
desc 'Package sqlite'
|
98
|
-
task :sqlite, [:dist] do |t, args|
|
99
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
100
|
+
task :sqlite, [:dist, :arch] do |t, args|
|
101
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
100
102
|
end
|
101
103
|
|
102
104
|
desc 'Package ondemand_exporter'
|
103
|
-
task :ondemand_exporter, [:dist] do |t, args|
|
104
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
105
|
+
task :ondemand_exporter, [:dist, :arch] do |t, args|
|
106
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
105
107
|
end
|
106
108
|
|
107
109
|
desc 'Package ondemand-compute'
|
108
|
-
task :'ondemand-compute', [:dist] do |t, args|
|
109
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
110
|
+
task :'ondemand-compute', [:dist, :arch] do |t, args|
|
111
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
110
112
|
end
|
111
113
|
|
112
114
|
desc 'Package python-websockify'
|
113
|
-
task :'python-websockify', [:dist] do |t, args|
|
114
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
115
|
+
task :'python-websockify', [:dist, :arch] do |t, args|
|
116
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
115
117
|
end
|
116
118
|
|
117
119
|
desc 'Package turbovnc'
|
118
|
-
task :turbovnc, [:dist] do |t, args|
|
119
|
-
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist])
|
120
|
+
task :turbovnc, [:dist, :arch] do |t, args|
|
121
|
+
Rake::Task['ood_packaging:package:internal'].invoke(t.name, args[:dist], args[:arch])
|
120
122
|
end
|
121
123
|
end
|
122
124
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# Version code for OodPackaging
|
4
4
|
module OodPackaging
|
5
|
-
VERSION = '0.
|
5
|
+
VERSION = '0.9.0'
|
6
6
|
PACKAGE_VERSION = {
|
7
7
|
'ondemand-release' => {
|
8
8
|
'(ubuntu|debian)' => '3.1.0',
|
@@ -12,13 +12,13 @@ module OodPackaging
|
|
12
12
|
'(ubuntu|debian)' => '1',
|
13
13
|
'default' => '1-8'
|
14
14
|
},
|
15
|
-
'ondemand-runtime' => '3.1.
|
15
|
+
'ondemand-runtime' => '3.1.2',
|
16
16
|
'scl-utils' => '2.0.3',
|
17
17
|
'passenger' => '6.0.17',
|
18
18
|
'cjose' => '0.6.1',
|
19
19
|
'mod_auth_openidc' => '2.4.14.1',
|
20
20
|
'sqlite' => '3.26.0-4',
|
21
|
-
'ondemand_exporter' => '0.
|
21
|
+
'ondemand_exporter' => '0.10.0',
|
22
22
|
'ondemand-compute' => {
|
23
23
|
'(ubuntu|debian)' => '3.1.0',
|
24
24
|
'default' => '3.1.0'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ood_packaging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trey Dockendorf
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-06-
|
12
|
+
date: 2023-06-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|