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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1f9391bfdc2ed0ea0d34e42751b2e3cbac308c5f68df6d3c809cd968a5d550b8
4
- data.tar.gz: 20cad91ed093ebcf575fdc9223152156f8fe6ac0be070e973ff1e049679df37f
3
+ metadata.gz: 9b3ff2aa05ecd491a414c3884cb2d04ef92ad791c4bb8ecfa12eacd3d796b3f0
4
+ data.tar.gz: e1e21b111755fc25cd97aed82be2fa22dd25bde10434b4b33e4bcc61f4a85928
5
5
  SHA512:
6
- metadata.gz: 52f8ab8793e8197916a437e83ef57e2d8a141c3bf6e043ad3843422592e4b294c5be40237f57697a05e55c4259ea9ebfc20474f636f3ef956e401f53b69e6e01
7
- data.tar.gz: 8e3c8ae0fc94fde7715f34cf2f26bac8faa04ac8116f378d2509eb3f4aefd38d55bc5cdbc3e7c808602436fd81724cbd909f410c11914bdf9deacf58c3750e7e
6
+ metadata.gz: e93309c3947e2a17a7d3b5f597eb2ef4d277230d667bc8e211d4f69e6c2f695a297bce145f937757e7a9658a7cc67c794d1303aadcf65558161f8129eecf6dfa
7
+ data.tar.gz: a462014934cc780e032409b55004ad4104659c3aeac9731d45f64bd7dbd823ad85f2c08d92719493380d5b92aa0c17ee76a4e41242ad5a717c098a73bed16e64
@@ -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
- (_, configMapName, keyName) = v.split("/")
89
+ (_, configmap_name, key_name) = v.split("/")
86
90
  env_vars[env_var_name] = { valueFrom: {
87
- configMapKeyRef: { name: configMapName, key: keyName }
91
+ configMapKeyRef: { name: configmap_name, key: key_name }
88
92
  } }
89
93
  else
90
94
  env_vars[env_var_name] = { value: v }
@@ -15,7 +15,7 @@ module Pfab
15
15
  kind: "CronJob",
16
16
  metadata: {
17
17
  name: "#{@data['deployed_name']}-#{@data['sha']}",
18
- namespace: @data['env'],
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: @data['env'],
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
@@ -15,7 +15,7 @@ module Pfab
15
15
  kind: "Job",
16
16
  metadata: {
17
17
  name: "job-#{@data['deployed_name']}-#{@data['sha']}",
18
- namespace: @data['env'],
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: @data['env'],
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
  },
@@ -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
- f << YAML.dump(ingress.deep_stringify_keys)
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: @data['env'],
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: get("port"),
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: @data['env'],
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: @data['env'],
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
- livenessProbe: livenessProbe,
196
- readinessProbe: readinessProbe,
197
- volumeMounts: [
236
+ ports: [
198
237
  {
199
- name: "apmsocketpath",
200
- mountPath: "/var/run/datadog"
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
- volumes: [
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
@@ -1,7 +1,7 @@
1
1
  module Pfab
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 29
4
+ MINOR = 30
5
5
  PATCH = 0
6
6
  BUILD = nil
7
7
 
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.29.0 ruby lib
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.29.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-07"
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.0.3.1".freeze
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
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
54
- s.add_runtime_dependency(%q<commander>.freeze, [">= 0"])
55
- s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
56
- s.add_runtime_dependency(%q<pry-byebug>.freeze, [">= 0"])
57
- s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
58
- s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
59
- s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4.9"])
60
- s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
61
- s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
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.29.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-07 00:00:00.000000000 Z
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.0.3.1
174
+ rubygems_version: 3.2.32
175
175
  signing_key:
176
176
  specification_version: 4
177
177
  summary: helper gem