pfab 0.48.0 → 0.49.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pfab/templates/web.rb +67 -15
- data/lib/pfab/version.rb +1 -1
- data/pfab.gemspec +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: 2f1a84c3c63d1db81cc363286650c690eab5759533679a74d0dc1849368204f6
|
4
|
+
data.tar.gz: fec0e7d30e078a426b4596ae0ea7dface693f5b4f994c9cd26c9e63eb9f9b086
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 644d664ff9952cc3f485b19b0c188f6b608547e9b42af3a2975392a0c80a83df6f6c754d637a023a725b0e2eec56d96334a0c0ee76d6bff409ca8feeef72deb2
|
7
|
+
data.tar.gz: 6c002bd38ff2975392daa54845aa2333a18e5fff14e0d1c51001415aae9724cca5eb7f00630c0e81e7b717c24f1273edc43cdd961a18359a6a7ca069ef3f9582
|
data/lib/pfab/templates/web.rb
CHANGED
@@ -14,6 +14,7 @@ module Pfab
|
|
14
14
|
puts "skipping ingress because ingress_disabled = #{@data['generateIngressEnabled']}"
|
15
15
|
end
|
16
16
|
f << StyledYAML.dump(deployment.deep_stringify_keys)
|
17
|
+
f << StyledYAML.dump(pod_disruption_budget.deep_stringify_keys)
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
@@ -155,6 +156,70 @@ module Pfab
|
|
155
156
|
"web"
|
156
157
|
end
|
157
158
|
|
159
|
+
def pod_disruption_budget
|
160
|
+
pdb = {
|
161
|
+
apiVersion: "policy/v1",
|
162
|
+
kind: "PodDisruptionBudget",
|
163
|
+
metadata: {
|
164
|
+
name: "#{@data['deployed_name']}-pdb",
|
165
|
+
namespace: get_namespace()
|
166
|
+
},
|
167
|
+
spec: {
|
168
|
+
minAvailable: 1,
|
169
|
+
selector: {
|
170
|
+
matchLabels: {
|
171
|
+
application: @data['application'],
|
172
|
+
"deployed-name" => @data['deployed_name'],
|
173
|
+
"application-type" => application_type
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
}
|
178
|
+
return pdb
|
179
|
+
end
|
180
|
+
ANTI_AFFINITY_TYPES = %w[disabled required preferred]
|
181
|
+
ANTI_AFFINITY_MODE = 'antiAffinityMode'
|
182
|
+
ANTI_AFFINITY_PREFERRED_MODE_WEIGHT = 'antiAffinityPreferredModeWeight'
|
183
|
+
|
184
|
+
def anti_affinity
|
185
|
+
if app_vars.has_key?(ANTI_AFFINITY_MODE)
|
186
|
+
antiAffinityMode = app_vars[ANTI_AFFINITY_MODE]
|
187
|
+
affinitySelector = {
|
188
|
+
topologyKey: "kubernetes.io/hostname",
|
189
|
+
labelSelector: {
|
190
|
+
matchLabels: {
|
191
|
+
"deployed-name" => @data['deployed_name'],
|
192
|
+
},
|
193
|
+
},
|
194
|
+
}
|
195
|
+
|
196
|
+
return case antiAffinityMode
|
197
|
+
when "disabled"
|
198
|
+
puts "antiAffinityMode is set to disabled, skipping"
|
199
|
+
{}
|
200
|
+
when "required"
|
201
|
+
{
|
202
|
+
podAntiAffinity: {
|
203
|
+
requiredDuringSchedulingIgnoredDuringExecution: [
|
204
|
+
affinitySelector
|
205
|
+
] } }
|
206
|
+
when "preferred"
|
207
|
+
{ podAntiAffinity: {
|
208
|
+
preferredDuringSchedulingIgnoredDuringExecution: [
|
209
|
+
{
|
210
|
+
weight: app_vars[ANTI_AFFINITY_PREFERRED_MODE_WEIGHT] || 100,
|
211
|
+
podAffinityTerm: affinitySelector
|
212
|
+
}
|
213
|
+
]
|
214
|
+
}
|
215
|
+
}
|
216
|
+
else
|
217
|
+
raise "Unexpected value #{antiAffinityMode} specified for `#{ANTI_AFFINITY_MODE}`. Valid selections are #{ANTI_AFFINITY_TYPES}"
|
218
|
+
end
|
219
|
+
end
|
220
|
+
return {}
|
221
|
+
end
|
222
|
+
|
158
223
|
def deployment
|
159
224
|
secret_mounts = get("secretMounts") || []
|
160
225
|
volume_mounts = []
|
@@ -260,25 +325,12 @@ module Pfab
|
|
260
325
|
volumeMounts: volume_mounts
|
261
326
|
}.compact
|
262
327
|
],
|
263
|
-
affinity:
|
264
|
-
podAntiAffinity: {
|
265
|
-
requiredDuringSchedulingIgnoredDuringExecution: [
|
266
|
-
{
|
267
|
-
topologyKey: "kubernetes.io/hostname",
|
268
|
-
labelSelector: {
|
269
|
-
matchLabels: {
|
270
|
-
"deployed-name" => @data['deployed_name'],
|
271
|
-
},
|
272
|
-
},
|
273
|
-
}
|
274
|
-
]
|
275
|
-
}
|
276
|
-
},
|
328
|
+
affinity: anti_affinity,
|
277
329
|
volumes: volumes
|
278
330
|
}.compact,
|
279
331
|
},
|
280
332
|
}.compact,
|
281
|
-
}
|
333
|
+
}.compact
|
282
334
|
end
|
283
335
|
end
|
284
336
|
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.49.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.49.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 = "2024-
|
14
|
+
s.date = "2024-03-01"
|
15
15
|
s.description = "k8s helper".freeze
|
16
16
|
s.email = "jdwyer@prefab.cloud".freeze
|
17
17
|
s.executables = ["pfab".freeze]
|
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.49.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: 2024-
|
11
|
+
date: 2024-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|