metatron 0.2.4 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
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