pfab 0.29.0 → 0.30.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/lib/pfab/templates/base.rb +6 -2
- data/lib/pfab/templates/cron.rb +3 -3
- data/lib/pfab/templates/daemon.rb +3 -2
- data/lib/pfab/templates/job.rb +4 -3
- data/lib/pfab/templates/web.rb +62 -22
- data/lib/pfab/version.rb +1 -1
- data/pfab.gemspec +14 -23
- 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: 9b3ff2aa05ecd491a414c3884cb2d04ef92ad791c4bb8ecfa12eacd3d796b3f0
|
4
|
+
data.tar.gz: e1e21b111755fc25cd97aed82be2fa22dd25bde10434b4b33e4bcc61f4a85928
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e93309c3947e2a17a7d3b5f597eb2ef4d277230d667bc8e211d4f69e6c2f695a297bce145f937757e7a9658a7cc67c794d1303aadcf65558161f8129eecf6dfa
|
7
|
+
data.tar.gz: a462014934cc780e032409b55004ad4104659c3aeac9731d45f64bd7dbd823ad85f2c08d92719493380d5b92aa0c17ee76a4e41242ad5a717c098a73bed16e64
|
data/lib/pfab/templates/base.rb
CHANGED
@@ -17,6 +17,10 @@ module Pfab
|
|
17
17
|
app_vars.dig(@data["env"], key) || app_vars[key]
|
18
18
|
end
|
19
19
|
|
20
|
+
def get_namespace()
|
21
|
+
get("namespace") || @data['env']
|
22
|
+
end
|
23
|
+
|
20
24
|
def cpu(req_type)
|
21
25
|
default_cpu_string = @data["config"]["default_cpu_string"] || "50m/250m"
|
22
26
|
(request, limit) = (get("cpu") || default_cpu_string).split("/")
|
@@ -82,9 +86,9 @@ module Pfab
|
|
82
86
|
fieldRef: { fieldPath: field_name }
|
83
87
|
} }
|
84
88
|
elsif v.to_s.start_with? "configmap/"
|
85
|
-
(_,
|
89
|
+
(_, configmap_name, key_name) = v.split("/")
|
86
90
|
env_vars[env_var_name] = { valueFrom: {
|
87
|
-
configMapKeyRef: { name:
|
91
|
+
configMapKeyRef: { name: configmap_name, key: key_name }
|
88
92
|
} }
|
89
93
|
else
|
90
94
|
env_vars[env_var_name] = { value: v }
|
data/lib/pfab/templates/cron.rb
CHANGED
@@ -15,7 +15,7 @@ module Pfab
|
|
15
15
|
kind: "CronJob",
|
16
16
|
metadata: {
|
17
17
|
name: "#{@data['deployed_name']}-#{@data['sha']}",
|
18
|
-
namespace:
|
18
|
+
namespace: get_namespace,
|
19
19
|
labels: {
|
20
20
|
application: @data['application'],
|
21
21
|
"deployed-name" => @data['deployed_name'],
|
@@ -53,7 +53,7 @@ module Pfab
|
|
53
53
|
},
|
54
54
|
},
|
55
55
|
spec: {
|
56
|
-
|
56
|
+
serviceAccountName: get('serviceAccountName'),
|
57
57
|
containers: [
|
58
58
|
{
|
59
59
|
image: image_name,
|
@@ -64,7 +64,7 @@ module Pfab
|
|
64
64
|
},
|
65
65
|
],
|
66
66
|
restartPolicy: "Never",
|
67
|
-
},
|
67
|
+
}.compact,
|
68
68
|
},
|
69
69
|
backoffLimit: 2,
|
70
70
|
},
|
@@ -15,7 +15,7 @@ module Pfab
|
|
15
15
|
apiVersion: "apps/v1",
|
16
16
|
metadata: {
|
17
17
|
name: @data['deployed_name'],
|
18
|
-
namespace:
|
18
|
+
namespace: get_namespace,
|
19
19
|
labels: {
|
20
20
|
application: @data['application'],
|
21
21
|
"deployed-name" => @data['deployed_name'],
|
@@ -28,6 +28,7 @@ module Pfab
|
|
28
28
|
},
|
29
29
|
spec: {
|
30
30
|
replicas: get("replicas") || 1,
|
31
|
+
serviceAccountName: get('serviceAccountName'),
|
31
32
|
selector: {
|
32
33
|
matchLabels: {
|
33
34
|
"deployed-name" => @data['deployed_name'],
|
@@ -60,7 +61,7 @@ module Pfab
|
|
60
61
|
]
|
61
62
|
},
|
62
63
|
},
|
63
|
-
},
|
64
|
+
}.compact,
|
64
65
|
}
|
65
66
|
end
|
66
67
|
end
|
data/lib/pfab/templates/job.rb
CHANGED
@@ -15,7 +15,7 @@ module Pfab
|
|
15
15
|
kind: "Job",
|
16
16
|
metadata: {
|
17
17
|
name: "job-#{@data['deployed_name']}-#{@data['sha']}",
|
18
|
-
namespace:
|
18
|
+
namespace: get_namespace,
|
19
19
|
labels: {
|
20
20
|
application: @data['application'],
|
21
21
|
"deployed-name" => @data['deployed_name'],
|
@@ -30,7 +30,7 @@ module Pfab
|
|
30
30
|
template: {
|
31
31
|
metadata: {
|
32
32
|
name: "#{@data['deployed_name']}-#{@data['sha']}",
|
33
|
-
namespace:
|
33
|
+
namespace: get_namespace,
|
34
34
|
labels: {
|
35
35
|
application: @data['application'],
|
36
36
|
"deployed-name" => @data['deployed_name'],
|
@@ -41,6 +41,7 @@ module Pfab
|
|
41
41
|
},
|
42
42
|
},
|
43
43
|
spec: {
|
44
|
+
serviceAccountName: get('serviceAccountName'),
|
44
45
|
containers: [
|
45
46
|
{
|
46
47
|
image: image_name,
|
@@ -51,7 +52,7 @@ module Pfab
|
|
51
52
|
},
|
52
53
|
],
|
53
54
|
restartPolicy: "Never",
|
54
|
-
},
|
55
|
+
}.compact,
|
55
56
|
},
|
56
57
|
backoffLimit: 0,
|
57
58
|
},
|
data/lib/pfab/templates/web.rb
CHANGED
@@ -6,7 +6,11 @@ module Pfab
|
|
6
6
|
puts "No host to deploy to for #{@data['deployed_name']}. Skipping."
|
7
7
|
else
|
8
8
|
f << YAML.dump(service.deep_stringify_keys)
|
9
|
-
|
9
|
+
if not app_vars.has_key?('generateIngressEnabled') || app_vars['generateIngressEnabled']
|
10
|
+
f << YAML.dump(ingress.deep_stringify_keys)
|
11
|
+
else
|
12
|
+
puts "skipping ingress because ingress_disabled = #{@data['generateIngressEnabled']}"
|
13
|
+
end
|
10
14
|
f << YAML.dump(deployment.deep_stringify_keys)
|
11
15
|
end
|
12
16
|
end
|
@@ -17,7 +21,7 @@ module Pfab
|
|
17
21
|
kind: "Service",
|
18
22
|
metadata: {
|
19
23
|
name: @data['deployed_name'],
|
20
|
-
namespace:
|
24
|
+
namespace: get_namespace,
|
21
25
|
labels: {
|
22
26
|
application: @data['application'],
|
23
27
|
"deployed-name" => @data['deployed_name'],
|
@@ -32,8 +36,9 @@ module Pfab
|
|
32
36
|
{
|
33
37
|
name: "http",
|
34
38
|
port: 80,
|
35
|
-
targetPort:
|
36
|
-
|
39
|
+
targetPort: app_vars["port"],
|
40
|
+
appProtocol: app_vars["appProtocol"]
|
41
|
+
}.compact
|
37
42
|
]
|
38
43
|
}
|
39
44
|
}
|
@@ -51,7 +56,7 @@ module Pfab
|
|
51
56
|
kind: "Ingress",
|
52
57
|
metadata: {
|
53
58
|
name: "ingress-#{@data['deployed_name']}",
|
54
|
-
namespace:
|
59
|
+
namespace: get_namespace,
|
55
60
|
labels: {
|
56
61
|
application: @data['application'],
|
57
62
|
"deployed-name" => @data['deployed_name'],
|
@@ -136,17 +141,52 @@ module Pfab
|
|
136
141
|
get("readinessProbe") || default_probe
|
137
142
|
end
|
138
143
|
|
144
|
+
def startupProbe
|
145
|
+
get("startupProbe") || default_probe
|
146
|
+
end
|
147
|
+
|
139
148
|
def application_type
|
140
149
|
"web"
|
141
150
|
end
|
142
151
|
|
143
152
|
def deployment
|
153
|
+
secret_mounts = get("secretMounts") || []
|
154
|
+
volume_mounts = []
|
155
|
+
volumes = []
|
156
|
+
secret_mounts.each do |secret_mount|
|
157
|
+
volumes.append({
|
158
|
+
name: secret_mount['name'],
|
159
|
+
secret: { secretName: secret_mount['secretName'] }
|
160
|
+
})
|
161
|
+
volume_mounts.append({
|
162
|
+
name: secret_mount['name'],
|
163
|
+
mountPath: secret_mount['path'],
|
164
|
+
readOnly: secret_mount['readOnly'] || true
|
165
|
+
})
|
166
|
+
end
|
167
|
+
|
168
|
+
if get("datadogVolumeMountEnabled")
|
169
|
+
datadog_volume_name = "ddsocket"
|
170
|
+
datadog_path = "/var/run/datadog"
|
171
|
+
volumes.append({
|
172
|
+
name: datadog_volume_name,
|
173
|
+
hostPath: {
|
174
|
+
path: datadog_path
|
175
|
+
}
|
176
|
+
})
|
177
|
+
volume_mounts.append(
|
178
|
+
name: datadog_volume_name,
|
179
|
+
mountPath: datadog_path,
|
180
|
+
readOnly: true
|
181
|
+
)
|
182
|
+
end
|
183
|
+
|
144
184
|
{
|
145
185
|
kind: "Deployment",
|
146
186
|
apiVersion: "apps/v1",
|
147
187
|
metadata: {
|
148
188
|
name: @data['deployed_name'],
|
149
|
-
namespace:
|
189
|
+
namespace: get_namespace,
|
150
190
|
labels: {
|
151
191
|
application: @data['application'],
|
152
192
|
"deployed-name" => @data['deployed_name'],
|
@@ -185,6 +225,7 @@ module Pfab
|
|
185
225
|
},
|
186
226
|
},
|
187
227
|
spec: {
|
228
|
+
serviceAccountName: get('serviceAccountName'),
|
188
229
|
containers: [
|
189
230
|
{
|
190
231
|
image: image_name,
|
@@ -192,27 +233,26 @@ module Pfab
|
|
192
233
|
command: get("command").split(" "),
|
193
234
|
env: env_vars,
|
194
235
|
resources: resources,
|
195
|
-
|
196
|
-
readinessProbe: readinessProbe,
|
197
|
-
volumeMounts: [
|
236
|
+
ports: [
|
198
237
|
{
|
199
|
-
name: "
|
200
|
-
|
238
|
+
name: "main",
|
239
|
+
containerPort: app_vars["port"]
|
240
|
+
},
|
241
|
+
{
|
242
|
+
name: "health-port",
|
243
|
+
containerPort: 8085 # the default micronaut endpoint port
|
201
244
|
}
|
202
|
-
]
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
name: "apmsocketpath",
|
208
|
-
hostPath: {
|
209
|
-
path: "/var/run/datadog/",
|
210
|
-
}
|
245
|
+
],
|
246
|
+
livenessProbe: livenessProbe,
|
247
|
+
readinessProbe: readinessProbe,
|
248
|
+
startupProbe: startupProbe,
|
249
|
+
volumeMounts: volume_mounts
|
211
250
|
}
|
212
251
|
],
|
213
|
-
|
252
|
+
volumes: volumes
|
253
|
+
}.compact,
|
214
254
|
},
|
215
|
-
},
|
255
|
+
}.compact,
|
216
256
|
}
|
217
257
|
end
|
218
258
|
end
|
data/lib/pfab/version.rb
CHANGED
data/pfab.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: pfab 0.
|
5
|
+
# stub: pfab 0.30.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "pfab".freeze
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.30.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Jeff Dwyer".freeze]
|
14
|
-
s.date = "2023-02-
|
14
|
+
s.date = "2023-02-17"
|
15
15
|
s.description = "k8s helper".freeze
|
16
16
|
s.email = "jdwyer@prefab.cloud".freeze
|
17
17
|
s.executables = ["pfab".freeze]
|
@@ -44,31 +44,22 @@ Gem::Specification.new do |s|
|
|
44
44
|
]
|
45
45
|
s.homepage = "http://github.com/prefab-cloud/pfab".freeze
|
46
46
|
s.licenses = ["MIT".freeze]
|
47
|
-
s.rubygems_version = "3.
|
47
|
+
s.rubygems_version = "3.2.32".freeze
|
48
48
|
s.summary = "helper gem".freeze
|
49
49
|
|
50
50
|
if s.respond_to? :specification_version then
|
51
51
|
s.specification_version = 4
|
52
|
+
end
|
52
53
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
else
|
63
|
-
s.add_dependency(%q<commander>.freeze, [">= 0"])
|
64
|
-
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
65
|
-
s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
|
66
|
-
s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
67
|
-
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
68
|
-
s.add_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
|
69
|
-
s.add_dependency(%q<simplecov>.freeze, [">= 0"])
|
70
|
-
s.add_dependency(%q<test-unit>.freeze, [">= 0"])
|
71
|
-
end
|
54
|
+
if s.respond_to? :add_runtime_dependency then
|
55
|
+
s.add_runtime_dependency(%q<commander>.freeze, [">= 0"])
|
56
|
+
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
|
57
|
+
s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
|
58
|
+
s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
|
59
|
+
s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
60
|
+
s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
|
61
|
+
s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
|
62
|
+
s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
|
72
63
|
else
|
73
64
|
s.add_dependency(%q<commander>.freeze, [">= 0"])
|
74
65
|
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pfab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Dwyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02-
|
11
|
+
date: 2023-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -171,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '0'
|
173
173
|
requirements: []
|
174
|
-
rubygems_version: 3.
|
174
|
+
rubygems_version: 3.2.32
|
175
175
|
signing_key:
|
176
176
|
specification_version: 4
|
177
177
|
summary: helper gem
|