metatron 0.2.4 → 0.2.6

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: 9d92a6b2a14d474fff5472464de565bf24ecc825560017ab2397336cbefd14d9
4
- data.tar.gz: aa7752fdeed5671d34d5d3d3cf986a331a99afa65bde6728560777a683f77f19
3
+ metadata.gz: e64a202aa6679076cdd620c17c7885e0f01b34af6b8d0fcc07051ff26f0b9489
4
+ data.tar.gz: c470c047b7cb57a770d372b988a8135ca06139bc730dfafca01b8dc759f15df0
5
5
  SHA512:
6
- metadata.gz: cb6b3c627a184450a5dadd6b76a00bebb9b9d76b10c589df37910a5d1e5db25c83b2fdb9bdea08a8252f461851c874fe617fe8b34ad95e5858331ed7ad79779a
7
- data.tar.gz: 6bc5bf3ee64bca70f3231a07b5faf19735d9a7b42917fbececf4918b86e171fa3b9f05450a81e8b19e6c1311d2d6b577057abb6a3a79129f1c9029c437c0d30e
6
+ metadata.gz: 4708fb55b631916c16214f436b7d7577dece26c66cf7dab478a5d8a76a711b50d71fd267bfe72719eb999411377eb5190bb5b42874dbe153ee05def637321eef
7
+ data.tar.gz: a5ee6b2437fb07fcbb5a3bd17859ed73e5dbd25af935ca6dcfff6568f30eed7a520b711065e54db978489ec7d91082b9d1cefa1119f68db9ad42c79f2966c74a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- metatron (0.2.4)
4
+ metatron (0.2.6)
5
5
  json (~> 2.6)
6
6
  puma (~> 6.3)
7
7
  sinatra (~> 2.2)
@@ -39,7 +39,7 @@ GEM
39
39
  puma (6.3.0)
40
40
  nio4r (~> 2.0)
41
41
  racc (1.7.1)
42
- rack (2.2.7)
42
+ rack (2.2.8)
43
43
  rack-protection (2.2.4)
44
44
  rack
45
45
  rack-test (2.1.0)
@@ -64,7 +64,7 @@ GEM
64
64
  diff-lcs (>= 1.2.0, < 2.0)
65
65
  rspec-support (~> 3.12.0)
66
66
  rspec-support (3.12.1)
67
- rubocop (1.55.0)
67
+ rubocop (1.55.1)
68
68
  json (~> 2.3)
69
69
  language_server-protocol (>= 3.17.0)
70
70
  parallel (~> 1.10)
@@ -83,7 +83,7 @@ GEM
83
83
  rubocop (~> 1.33)
84
84
  rubocop-rake (0.6.0)
85
85
  rubocop (~> 1.0)
86
- rubocop-rspec (2.22.0)
86
+ rubocop-rspec (2.23.0)
87
87
  rubocop (~> 1.33)
88
88
  rubocop-capybara (~> 2.17)
89
89
  rubocop-factory_bot (~> 2.22)
@@ -7,7 +7,7 @@ module Metatron
7
7
  include Concerns::Annotated
8
8
  include Concerns::Namespaced
9
9
 
10
- attr_accessor :additional_labels, :type, :data
10
+ attr_accessor :additional_labels, :immutable, :data
11
11
 
12
12
  def initialize(name, data = {})
13
13
  super(name)
@@ -15,6 +15,8 @@ module Metatron
15
15
  @additional_labels = {}
16
16
  end
17
17
 
18
+ def immutable? = !!@immutable
19
+
18
20
  def render
19
21
  {
20
22
  apiVersion:,
@@ -22,9 +24,10 @@ module Metatron
22
24
  metadata: {
23
25
  name:,
24
26
  labels: { "#{label_namespace}/name": name }.merge(additional_labels)
25
- }.merge(formatted_annotations).merge(formatted_namespace),
26
- data:
27
- }
27
+ }.merge(formatted_annotations).merge(formatted_namespace).compact,
28
+ data:,
29
+ immutable:
30
+ }.compact
28
31
  end
29
32
  end
30
33
  end
@@ -5,7 +5,7 @@ module Metatron
5
5
  # Template for containers used by k8s resources (not an actual resource)
6
6
  class Container
7
7
  attr_accessor :name, :image, :command, :args, :env, :envfrom, :resources, :volume_mounts,
8
- :image_pull_policy, :life_cycle, :probes, :security_context, :ports,
8
+ :image_pull_policy, :lifecycle, :probes, :security_context, :ports,
9
9
  :stdin, :tty
10
10
 
11
11
  alias imagePullPolicy image_pull_policy
@@ -23,15 +23,16 @@ module Metatron
23
23
  @resources = {}
24
24
  @volume_mounts = []
25
25
  @image_pull_policy = "IfNotPresent"
26
- @life_cycle = {}
26
+ @lifecycle = {}
27
27
  @probes = {}
28
28
  @stdin = true
29
29
  @tty = true
30
30
  end
31
31
 
32
- def render
32
+ def render # rubocop:disable Metrics/AbcSize
33
33
  {
34
34
  name:,
35
+ command:,
35
36
  image:,
36
37
  imagePullPolicy:,
37
38
  stdin:,
@@ -43,9 +44,23 @@ module Metatron
43
44
  .merge(formatted_ports)
44
45
  .merge(formatted_volume_mounts)
45
46
  .merge(formatted_security_context)
47
+ .merge(formatted_args)
48
+ .merge(formatted_lifecycle)
46
49
  .compact
47
50
  end
48
51
 
52
+ def formatted_args
53
+ return {} unless args && !args.empty?
54
+
55
+ { args: }
56
+ end
57
+
58
+ def formatted_lifecycle
59
+ return {} unless lifecycle && !lifecycle.empty?
60
+
61
+ { lifecycle: }
62
+ end
63
+
49
64
  def formatted_environment # rubocop:disable Metrics/PerceivedComplexity
50
65
  return {} unless env && !env.empty?
51
66
 
@@ -42,7 +42,6 @@ module Metatron
42
42
  failedJobsHistoryLimit:,
43
43
  jobTemplate: {
44
44
  spec: {
45
- activeDeadlineSeconds:,
46
45
  backoffLimit:
47
46
  }.merge(pod_template).compact
48
47
  }.merge(formatted_tolerations).compact
@@ -23,10 +23,10 @@ module Metatron
23
23
  metadata: {
24
24
  name:,
25
25
  labels: { "#{label_namespace}/name": name }.merge(additional_labels)
26
- }.merge(formatted_annotations).merge(formatted_namespace),
26
+ }.merge(formatted_annotations).merge(formatted_namespace).compact,
27
27
  type:,
28
28
  stringData: data
29
- }
29
+ }.compact
30
30
  end
31
31
  end
32
32
  end
@@ -22,6 +22,7 @@ module Metatron
22
22
  alias podManagementPolicy pod_management_policy
23
23
  alias serviceName service_name
24
24
  alias strategy update_strategy
25
+ alias strategy= update_strategy=
25
26
  alias updateStrategy update_strategy
26
27
 
27
28
  def render # rubocop:disable Metrics/AbcSize
@@ -4,6 +4,6 @@ module Metatron
4
4
  VERSION = [
5
5
  0, # major
6
6
  2, # minor
7
- 4 # patch
7
+ 6 # patch
8
8
  ].join(".")
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metatron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Gnagy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-31 00:00:00.000000000 Z
11
+ date: 2023-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json