metatron 0.8.6 → 0.8.7
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 +4 -4
- data/.rubocop.yml +3 -0
- data/Gemfile.lock +1 -1
- data/lib/metatron/controller.rb +2 -0
- data/lib/metatron/templates/limit_range.rb +76 -0
- data/lib/metatron/version.rb +1 -1
- data/lib/metatron.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 52d22498fe02fb79914a0d75e7fc7bc278fdd03d2d225b56c9e839bae4860dbf
|
|
4
|
+
data.tar.gz: d1268b434bf31755a53d75fe9d837ab1e963f39343f1447d697b585058f219e2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4c293e9bb179a67cff17d6323bec2075222b5d3ab9af292ad751e660a1a3c9c4e4941fc2ee0f3654cf472ec7adcc214738c6bc491050606e2f03f70574a91613
|
|
7
|
+
data.tar.gz: 3c8e6a36034dfd4212fdbaadcd4a8b3e34b38d9e7be6d156768dd3ecb55f1c82023acd5699ccb532696def55de73f6f48d21d22657e1f47e2710ee44e00cd6b2
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
data/lib/metatron/controller.rb
CHANGED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Metatron
|
|
4
|
+
module Templates
|
|
5
|
+
# The LimitRange Kubernetes resource
|
|
6
|
+
class LimitRange < Template
|
|
7
|
+
# Limit is an internal class used to represent the limits in a LimitRange resource,
|
|
8
|
+
# and to provide a consistent interface for rendering them. It is not intended to be
|
|
9
|
+
# used outside of this class. Eventually, it may be used to provide validation for
|
|
10
|
+
# the limits.
|
|
11
|
+
class Limit
|
|
12
|
+
attr_accessor :type, :default, :default_request, :max, :max_limit_request_ratio, :min
|
|
13
|
+
|
|
14
|
+
alias defaultRequest default_request
|
|
15
|
+
alias maxLimitRequestRatio max_limit_request_ratio
|
|
16
|
+
|
|
17
|
+
class << self
|
|
18
|
+
def to_limit(limit)
|
|
19
|
+
limit.is_a?(Limit) ? limit : new(**limit)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def initialize(type:, default: nil, default_request: nil, max: nil,
|
|
24
|
+
max_limit_request_ratio: nil, min: nil)
|
|
25
|
+
@type = type
|
|
26
|
+
@default = default
|
|
27
|
+
@default_request = default_request
|
|
28
|
+
@max = max
|
|
29
|
+
@max_limit_request_ratio = max_limit_request_ratio
|
|
30
|
+
@min = min
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def render
|
|
34
|
+
{
|
|
35
|
+
type:,
|
|
36
|
+
default:,
|
|
37
|
+
defaultRequest:,
|
|
38
|
+
max:,
|
|
39
|
+
maxLimitRequestRatio:,
|
|
40
|
+
min:
|
|
41
|
+
}.compact
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
include Concerns::Annotated
|
|
46
|
+
include Concerns::Namespaced
|
|
47
|
+
|
|
48
|
+
attr_accessor :limits
|
|
49
|
+
|
|
50
|
+
def initialize(name, limits = [])
|
|
51
|
+
super(name)
|
|
52
|
+
@limits = limits
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def render
|
|
56
|
+
{
|
|
57
|
+
apiVersion:,
|
|
58
|
+
kind:,
|
|
59
|
+
metadata: {
|
|
60
|
+
name:,
|
|
61
|
+
labels: base_labels.merge(additional_labels)
|
|
62
|
+
}.merge(formatted_annotations).merge(formatted_namespace),
|
|
63
|
+
spec: formatted_limits
|
|
64
|
+
}.compact
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
private
|
|
68
|
+
|
|
69
|
+
def formatted_limits
|
|
70
|
+
return {} if limits.empty?
|
|
71
|
+
|
|
72
|
+
{ limits: limits.map { Limit.to_limit(_1).render } }
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
data/lib/metatron/version.rb
CHANGED
data/lib/metatron.rb
CHANGED
|
@@ -31,6 +31,7 @@ require "metatron/templates/cron_job"
|
|
|
31
31
|
require "metatron/templates/daemon_set"
|
|
32
32
|
require "metatron/templates/deployment"
|
|
33
33
|
require "metatron/templates/ingress"
|
|
34
|
+
require "metatron/templates/limit_range"
|
|
34
35
|
require "metatron/templates/namespace"
|
|
35
36
|
require "metatron/templates/network_policy"
|
|
36
37
|
require "metatron/templates/persistent_volume_claim"
|
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.8.
|
|
4
|
+
version: 0.8.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Gnagy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-01-
|
|
11
|
+
date: 2025-01-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: json
|
|
@@ -250,6 +250,7 @@ files:
|
|
|
250
250
|
- lib/metatron/templates/deployment.rb
|
|
251
251
|
- lib/metatron/templates/ingress.rb
|
|
252
252
|
- lib/metatron/templates/job.rb
|
|
253
|
+
- lib/metatron/templates/limit_range.rb
|
|
253
254
|
- lib/metatron/templates/namespace.rb
|
|
254
255
|
- lib/metatron/templates/network_policy.rb
|
|
255
256
|
- lib/metatron/templates/persistent_volume_claim.rb
|