metatron 0.3.3 → 0.4.0

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: 9a957ab8c4406082d7cd4e20c055991e968ac629fbb2d0fd6b606ac0b4b00360
4
- data.tar.gz: '088237780d68ca7c7b867fd6073c6c40f2e01673eedf8de7e6a5f65cf9e7373d'
3
+ metadata.gz: f35d76b66b19a7de1ec270afaaae2f76563016b5d7bee59c94dad86e1f4953ac
4
+ data.tar.gz: 21bc67ecabd1165246962d9d1af8b909ec678ca3045a3e89b484b512c9dfa6a4
5
5
  SHA512:
6
- metadata.gz: 07d460cf1cd5f67b90b41eb45814f27a0bee7ba9f195b4a5a35c6b107571138f4624850fcd8f0f8b4ab5d29974d13776a13efd481f3731ab9e67215c681c9e75
7
- data.tar.gz: eec628dbb12d330ba052687a5c0942feeb4ca6363bb1bf3c3f75168e0a6f5f991137b27d08860bd8b6e6a8037f932009274c8ff1a9be8a8464606abf030811a6
6
+ metadata.gz: 38c3f0d3358541f4c6349b1729c43cedce6cf65ad087b7306ec37f8da3a9dfb57ee20e57c3568c08376eeede52ae59dc0d3a182a555cc84d000f3c3eb7e7f9de
7
+ data.tar.gz: 721166c1a9da7c2c16c7d84b27f10a18e8ea489eabe406c7063c2277cba6b5799f43dd8afdc7630593f9b1daacdfe8342fc4d86afd89af297c68e30bc8920f97
data/Gemfile.lock CHANGED
@@ -1,19 +1,18 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- metatron (0.3.3)
4
+ metatron (0.4.0)
5
5
  json (~> 2.6)
6
6
  puma (~> 6.3)
7
- sinatra (~> 2.2)
8
- sinatra-contrib (~> 2.2)
7
+ sinatra (~> 3.1)
8
+ sinatra-contrib (~> 3.1)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
13
  ast (2.4.2)
14
14
  backport (1.2.0)
15
- base64 (0.1.1)
16
- benchmark (0.2.1)
15
+ benchmark (0.3.0)
17
16
  byebug (11.1.3)
18
17
  diff-lcs (1.5.0)
19
18
  docile (1.4.0)
@@ -26,29 +25,29 @@ GEM
26
25
  kramdown (~> 2.0)
27
26
  language_server-protocol (3.17.0.3)
28
27
  multi_json (1.15.0)
29
- mustermann (2.0.2)
28
+ mustermann (3.0.0)
30
29
  ruby2_keywords (~> 0.0.1)
31
- nio4r (2.5.9)
30
+ nio4r (2.6.0)
32
31
  nokogiri (1.15.4-arm64-darwin)
33
32
  racc (~> 1.4)
34
33
  nokogiri (1.15.4-x86_64-linux)
35
34
  racc (~> 1.4)
36
35
  parallel (1.23.0)
37
- parser (3.2.2.3)
36
+ parser (3.2.2.4)
38
37
  ast (~> 2.4.1)
39
38
  racc
40
- puma (6.3.1)
39
+ puma (6.4.0)
41
40
  nio4r (~> 2.0)
42
- racc (1.7.1)
41
+ racc (1.7.3)
43
42
  rack (2.2.8)
44
- rack-protection (2.2.4)
45
- rack
43
+ rack-protection (3.1.0)
44
+ rack (~> 2.2, >= 2.2.4)
46
45
  rack-test (2.1.0)
47
46
  rack (>= 1.3)
48
47
  rainbow (3.1.1)
49
48
  rake (12.3.3)
50
49
  rbs (2.8.4)
51
- regexp_parser (2.8.1)
50
+ regexp_parser (2.8.2)
52
51
  reverse_markdown (2.1.1)
53
52
  nokogiri
54
53
  rexml (3.2.6)
@@ -65,28 +64,27 @@ GEM
65
64
  diff-lcs (>= 1.2.0, < 2.0)
66
65
  rspec-support (~> 3.12.0)
67
66
  rspec-support (3.12.1)
68
- rubocop (1.56.1)
69
- base64 (~> 0.1.1)
67
+ rubocop (1.57.2)
70
68
  json (~> 2.3)
71
69
  language_server-protocol (>= 3.17.0)
72
70
  parallel (~> 1.10)
73
- parser (>= 3.2.2.3)
71
+ parser (>= 3.2.2.4)
74
72
  rainbow (>= 2.2.2, < 4.0)
75
73
  regexp_parser (>= 1.8, < 3.0)
76
74
  rexml (>= 3.2.5, < 4.0)
77
75
  rubocop-ast (>= 1.28.1, < 2.0)
78
76
  ruby-progressbar (~> 1.7)
79
77
  unicode-display_width (>= 2.4.0, < 3.0)
80
- rubocop-ast (1.29.0)
78
+ rubocop-ast (1.30.0)
81
79
  parser (>= 3.2.1.0)
82
- rubocop-capybara (2.18.0)
80
+ rubocop-capybara (2.19.0)
83
81
  rubocop (~> 1.41)
84
- rubocop-factory_bot (2.23.1)
82
+ rubocop-factory_bot (2.24.0)
85
83
  rubocop (~> 1.33)
86
84
  rubocop-rake (0.6.0)
87
85
  rubocop (~> 1.0)
88
- rubocop-rspec (2.23.2)
89
- rubocop (~> 1.33)
86
+ rubocop-rspec (2.25.0)
87
+ rubocop (~> 1.40)
90
88
  rubocop-capybara (~> 2.17)
91
89
  rubocop-factory_bot (~> 2.22)
92
90
  ruby-progressbar (1.13.0)
@@ -100,16 +98,16 @@ GEM
100
98
  simplecov (~> 0.19)
101
99
  simplecov-html (0.12.3)
102
100
  simplecov_json_formatter (0.1.4)
103
- sinatra (2.2.4)
104
- mustermann (~> 2.0)
105
- rack (~> 2.2)
106
- rack-protection (= 2.2.4)
101
+ sinatra (3.1.0)
102
+ mustermann (~> 3.0)
103
+ rack (~> 2.2, >= 2.2.4)
104
+ rack-protection (= 3.1.0)
107
105
  tilt (~> 2.0)
108
- sinatra-contrib (2.2.4)
106
+ sinatra-contrib (3.1.0)
109
107
  multi_json
110
- mustermann (~> 2.0)
111
- rack-protection (= 2.2.4)
112
- sinatra (= 2.2.4)
108
+ mustermann (~> 3.0)
109
+ rack-protection (= 3.1.0)
110
+ sinatra (= 3.1.0)
113
111
  tilt (~> 2.0)
114
112
  solargraph (0.49.0)
115
113
  backport (~> 1.2)
@@ -127,9 +125,9 @@ GEM
127
125
  thor (~> 1.0)
128
126
  tilt (~> 2.0)
129
127
  yard (~> 0.9, >= 0.9.24)
130
- thor (1.2.2)
131
- tilt (2.2.0)
132
- unicode-display_width (2.4.2)
128
+ thor (1.3.0)
129
+ tilt (2.3.0)
130
+ unicode-display_width (2.5.0)
133
131
  yard (0.9.34)
134
132
 
135
133
  PLATFORMS
@@ -25,9 +25,11 @@ module Metatron
25
25
  labels: { "#{label_namespace}/name": name }.merge(additional_labels)
26
26
  }.merge(formatted_annotations).compact,
27
27
  aggregationRule:,
28
- rules:
28
+ rules: formatted_rules
29
29
  }.compact
30
30
  end
31
+
32
+ def formatted_rules = rules.map { _1.respond_to?(:render) ? _1.render : _1 }
31
33
  end
32
34
  end
33
35
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metatron
4
+ module Templates
5
+ # Template for basic Role k8s resource
6
+ class Role < Template
7
+ include Concerns::Annotated
8
+ include Concerns::Namespaced
9
+
10
+ attr_accessor :rules
11
+
12
+ def initialize(name)
13
+ super(name)
14
+ @api_version = "rbac.authorization.k8s.io/v1"
15
+ @rules = []
16
+ end
17
+
18
+ def render
19
+ {
20
+ apiVersion:,
21
+ kind:,
22
+ metadata: {
23
+ name:,
24
+ labels: { "#{label_namespace}/name": name }.merge(additional_labels)
25
+ }.merge(formatted_annotations).merge(formatted_namespace).compact,
26
+ rules: formatted_rules
27
+ }.compact
28
+ end
29
+
30
+ def formatted_rules = rules.map { _1.respond_to?(:render) ? _1.render : _1 }
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Metatron
4
+ module Templates
5
+ # Template for basic RoleBinding k8s resource
6
+ class RoleBinding < Template
7
+ include Concerns::Annotated
8
+ include Concerns::Namespaced
9
+
10
+ attr_accessor :role_ref, :subjects, :role
11
+
12
+ alias roleRef role_ref
13
+
14
+ def initialize(name, role)
15
+ super(name)
16
+ @api_version = "rbac.authorization.k8s.io/v1"
17
+ @role = role
18
+ @role_ref = {
19
+ kind: "Role",
20
+ name: role.respond_to?(:name) ? role.name : role,
21
+ apiGroup: "rbac.authorization.k8s.io"
22
+ }
23
+ @subjects = []
24
+ end
25
+
26
+ def render
27
+ {
28
+ apiVersion:,
29
+ kind:,
30
+ metadata: {
31
+ name:,
32
+ labels: { "#{label_namespace}/name": name }.merge(additional_labels)
33
+ }.merge(formatted_annotations).merge(formatted_namespace).compact,
34
+ roleRef:,
35
+ subjects:
36
+ }.compact
37
+ end
38
+ end
39
+ end
40
+ end
@@ -3,7 +3,7 @@
3
3
  module Metatron
4
4
  VERSION = [
5
5
  0, # major
6
- 3, # minor
7
- 3 # patch
6
+ 4, # minor
7
+ 0 # patch
8
8
  ].join(".")
9
9
  end
data/lib/metatron.rb CHANGED
@@ -41,6 +41,8 @@ require "metatron/templates/ingress"
41
41
  require "metatron/templates/namespace"
42
42
  require "metatron/templates/persistent_volume_claim"
43
43
  require "metatron/templates/replica_set"
44
+ require "metatron/templates/role"
45
+ require "metatron/templates/role_binding"
44
46
  require "metatron/templates/secret"
45
47
  require "metatron/templates/service"
46
48
  require "metatron/templates/service_account"
data/metatron.gemspec CHANGED
@@ -28,8 +28,8 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_runtime_dependency "json", "~> 2.6"
30
30
  spec.add_runtime_dependency "puma", "~> 6.3"
31
- spec.add_runtime_dependency "sinatra", "~> 2.2"
32
- spec.add_runtime_dependency "sinatra-contrib", "~> 2.2"
31
+ spec.add_runtime_dependency "sinatra", "~> 3.1"
32
+ spec.add_runtime_dependency "sinatra-contrib", "~> 3.1"
33
33
 
34
34
  spec.add_development_dependency "bundler", "~> 2.3"
35
35
  spec.add_development_dependency "byebug", "~> 11"
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.3.3
4
+ version: 0.4.0
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-08-23 00:00:00.000000000 Z
11
+ date: 2023-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -44,28 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.2'
47
+ version: '3.1'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.2'
54
+ version: '3.1'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: sinatra-contrib
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.2'
61
+ version: '3.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.2'
68
+ version: '3.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -272,6 +272,8 @@ files:
272
272
  - lib/metatron/templates/persistent_volume_claim.rb
273
273
  - lib/metatron/templates/pod.rb
274
274
  - lib/metatron/templates/replica_set.rb
275
+ - lib/metatron/templates/role.rb
276
+ - lib/metatron/templates/role_binding.rb
275
277
  - lib/metatron/templates/secret.rb
276
278
  - lib/metatron/templates/service.rb
277
279
  - lib/metatron/templates/service_account.rb