metatron 0.6.0 → 0.7.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 +4 -4
- data/Gemfile.lock +1 -1
- data/Rakefile +5 -0
- data/lib/metatron/template.rb +23 -21
- data/lib/metatron/templates/cluster_role.rb +1 -1
- data/lib/metatron/templates/cluster_role_binding.rb +1 -1
- data/lib/metatron/templates/concerns/pod_producer.rb +1 -1
- data/lib/metatron/templates/config_map.rb +1 -1
- data/lib/metatron/templates/cron_job.rb +1 -1
- data/lib/metatron/templates/daemon_set.rb +2 -2
- data/lib/metatron/templates/deployment.rb +2 -2
- data/lib/metatron/templates/ingress.rb +1 -1
- data/lib/metatron/templates/job.rb +1 -1
- data/lib/metatron/templates/namespace.rb +1 -1
- data/lib/metatron/templates/network_policy.rb +36 -0
- data/lib/metatron/templates/persistent_volume_claim.rb +1 -1
- data/lib/metatron/templates/pod.rb +1 -1
- data/lib/metatron/templates/replica_set.rb +2 -2
- data/lib/metatron/templates/role.rb +1 -1
- data/lib/metatron/templates/role_binding.rb +1 -1
- data/lib/metatron/templates/secret.rb +1 -1
- data/lib/metatron/templates/service.rb +2 -2
- data/lib/metatron/templates/service_account.rb +1 -1
- data/lib/metatron/templates/stateful_set.rb +3 -3
- 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: ce0057cd5b89a1b677248f3401987bafe4fb33bba5c5fe0b89dfd22272c1b559
|
4
|
+
data.tar.gz: 520b31ebea42dca62172db9f30884eb648a015ece3498f26bacfbe408a1d114b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3265a4f7dfa3e3d318063a08455a62a12aaab8fb07c122884af4ebe9705d23741537438324904ab7dfe71fa37388e420913205daf1d0816884cde439a4888bb
|
7
|
+
data.tar.gz: 46c81f307d87486f1fadaf2a929032b70b0803cd13b08118410b2a9ca6c8ccdb64903c3e2cc45a73777fcd5f6463a188dd412cf885b7eccc901d7bc0363f1f2a
|
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -23,6 +23,7 @@ task :bump, [:type] do |_t, args|
|
|
23
23
|
new_version = calculate_new_version(type)
|
24
24
|
puts "Bumping gem version from #{current_version} to #{new_version}"
|
25
25
|
update_version(new_version)
|
26
|
+
update_gem_lock
|
26
27
|
end
|
27
28
|
|
28
29
|
task default: %i[spec rubocop yard]
|
@@ -44,6 +45,10 @@ def calculate_new_version(type)
|
|
44
45
|
version.join(".")
|
45
46
|
end
|
46
47
|
|
48
|
+
def update_gem_lock
|
49
|
+
system("bundle lock --update")
|
50
|
+
end
|
51
|
+
|
47
52
|
def update_version(new_version)
|
48
53
|
file = File.read("lib/metatron/version.rb")
|
49
54
|
new_contents = file.gsub(/VERSION = "(.+)"/, %(VERSION = "#{new_version}"))
|
data/lib/metatron/template.rb
CHANGED
@@ -12,6 +12,28 @@ module Metatron
|
|
12
12
|
def label_namespace
|
13
13
|
@label_namespace ||= "metatron.therubyist.org"
|
14
14
|
end
|
15
|
+
|
16
|
+
def initializer(*args)
|
17
|
+
@initializers ||= []
|
18
|
+
@initializers += args
|
19
|
+
end
|
20
|
+
|
21
|
+
def initializers
|
22
|
+
@initializers ||= []
|
23
|
+
end
|
24
|
+
|
25
|
+
def nearest_metatron_ancestor
|
26
|
+
return self if metatron_template_class?
|
27
|
+
|
28
|
+
ancestors.find { _1.respond_to?(:metatron_template_class?) && _1.metatron_template_class? }
|
29
|
+
end
|
30
|
+
|
31
|
+
def metatron_template_class?
|
32
|
+
return true if name == "Metatron::Template"
|
33
|
+
return false if name.start_with?("Metatron::Templates::Concerns")
|
34
|
+
|
35
|
+
name.start_with?("Metatron::Templates::")
|
36
|
+
end
|
15
37
|
end
|
16
38
|
|
17
39
|
def initialize(name)
|
@@ -25,27 +47,7 @@ module Metatron
|
|
25
47
|
|
26
48
|
alias apiVersion api_version
|
27
49
|
|
28
|
-
def
|
29
|
-
@initializers ||= []
|
30
|
-
@initializers += args
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.initializers
|
34
|
-
@initializers ||= []
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.nearest_metatron_ancestor
|
38
|
-
return self if metatron_template_class?
|
39
|
-
|
40
|
-
ancestors.find { _1.respond_to?(:metatron_template_class?) && _1.metatron_template_class? }
|
41
|
-
end
|
42
|
-
|
43
|
-
def self.metatron_template_class?
|
44
|
-
return true if name == "Metatron::Template"
|
45
|
-
return false if name.start_with?("Metatron::Templates::Concerns")
|
46
|
-
|
47
|
-
name.start_with?("Metatron::Templates::")
|
48
|
-
end
|
50
|
+
def base_labels = { "#{label_namespace}/name": name }
|
49
51
|
|
50
52
|
private
|
51
53
|
|
@@ -22,7 +22,7 @@ module Metatron
|
|
22
22
|
kind:,
|
23
23
|
metadata: {
|
24
24
|
name:,
|
25
|
-
labels:
|
25
|
+
labels: base_labels.merge(additional_labels)
|
26
26
|
}.merge(formatted_annotations).compact,
|
27
27
|
aggregationRule:,
|
28
28
|
rules: formatted_rules
|
@@ -23,7 +23,7 @@ module Metatron
|
|
23
23
|
kind:,
|
24
24
|
metadata: {
|
25
25
|
name:,
|
26
|
-
labels:
|
26
|
+
labels: base_labels.merge(additional_labels)
|
27
27
|
}.merge(formatted_annotations).merge(formatted_namespace).compact,
|
28
28
|
data:,
|
29
29
|
immutable:
|
@@ -30,7 +30,7 @@ module Metatron
|
|
30
30
|
apiVersion:,
|
31
31
|
kind:,
|
32
32
|
metadata: {
|
33
|
-
labels:
|
33
|
+
labels: base_labels.merge(additional_labels),
|
34
34
|
name:
|
35
35
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
36
36
|
spec: {
|
@@ -21,11 +21,11 @@ module Metatron
|
|
21
21
|
kind:,
|
22
22
|
metadata: {
|
23
23
|
name:,
|
24
|
-
labels:
|
24
|
+
labels: base_labels.merge(additional_labels)
|
25
25
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
26
26
|
spec: {
|
27
27
|
selector: {
|
28
|
-
matchLabels:
|
28
|
+
matchLabels: base_labels.merge(additional_pod_labels)
|
29
29
|
}
|
30
30
|
}.merge(pod_template)
|
31
31
|
}
|
@@ -22,13 +22,13 @@ module Metatron
|
|
22
22
|
kind:,
|
23
23
|
metadata: {
|
24
24
|
name:,
|
25
|
-
labels:
|
25
|
+
labels: base_labels.merge(additional_labels)
|
26
26
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
27
27
|
spec: {
|
28
28
|
replicas:,
|
29
29
|
strategy:,
|
30
30
|
selector: {
|
31
|
-
matchLabels:
|
31
|
+
matchLabels: base_labels.merge(additional_pod_labels)
|
32
32
|
}
|
33
33
|
}.merge(pod_template).compact
|
34
34
|
}
|
@@ -77,7 +77,7 @@ module Metatron
|
|
77
77
|
kind:,
|
78
78
|
metadata: {
|
79
79
|
name:,
|
80
|
-
labels:
|
80
|
+
labels: base_labels.merge(additional_labels)
|
81
81
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
82
82
|
spec: formatted_rules.merge(formatted_tls)
|
83
83
|
}
|
@@ -28,7 +28,7 @@ module Metatron
|
|
28
28
|
apiVersion:,
|
29
29
|
kind:,
|
30
30
|
metadata: {
|
31
|
-
labels:
|
31
|
+
labels: base_labels.merge(additional_labels),
|
32
32
|
name:
|
33
33
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
34
34
|
spec: {
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Metatron
|
4
|
+
module Templates
|
5
|
+
# https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
6
|
+
class NetworkPolicy < Template
|
7
|
+
include Concerns::Annotated
|
8
|
+
include Concerns::Namespaced
|
9
|
+
|
10
|
+
attr_accessor :pod_selector, :ingress, :egress
|
11
|
+
|
12
|
+
alias podSelector pod_selector
|
13
|
+
|
14
|
+
def initialize(name)
|
15
|
+
super(name)
|
16
|
+
@pod_selector = pod_selector
|
17
|
+
@ingress = ingress
|
18
|
+
@egress = egress
|
19
|
+
end
|
20
|
+
|
21
|
+
def render
|
22
|
+
{
|
23
|
+
apiVersion:,
|
24
|
+
kind:,
|
25
|
+
metadata: {
|
26
|
+
labels: base_labels.merge(additional_labels),
|
27
|
+
name:
|
28
|
+
}.merge(formatted_annotations).merge(formatted_namespace),
|
29
|
+
spec: {
|
30
|
+
podSelector:
|
31
|
+
}.merge(ingress ? { ingress: } : {}).merge(egress ? { egress: } : {})
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -31,7 +31,7 @@ module Metatron
|
|
31
31
|
kind:,
|
32
32
|
metadata: {
|
33
33
|
name:,
|
34
|
-
labels:
|
34
|
+
labels: base_labels.merge(additional_labels)
|
35
35
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
36
36
|
spec: {
|
37
37
|
accessModes:,
|
@@ -13,7 +13,7 @@ module Metatron
|
|
13
13
|
apiVersion:,
|
14
14
|
kind:,
|
15
15
|
metadata: {
|
16
|
-
labels:
|
16
|
+
labels: base_labels.merge(additional_labels),
|
17
17
|
name:
|
18
18
|
}.merge(formatted_annotations).merge(formatted_namespace)
|
19
19
|
}.merge(pod_spec)
|
@@ -22,12 +22,12 @@ module Metatron
|
|
22
22
|
kind:,
|
23
23
|
metadata: {
|
24
24
|
name:,
|
25
|
-
labels:
|
25
|
+
labels: base_labels.merge(additional_labels)
|
26
26
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
27
27
|
spec: {
|
28
28
|
replicas:,
|
29
29
|
selector: {
|
30
|
-
matchLabels:
|
30
|
+
matchLabels: base_labels.merge(additional_pod_labels)
|
31
31
|
}
|
32
32
|
}.merge(pod_template)
|
33
33
|
}
|
@@ -21,7 +21,7 @@ module Metatron
|
|
21
21
|
kind:,
|
22
22
|
metadata: {
|
23
23
|
name:,
|
24
|
-
labels:
|
24
|
+
labels: base_labels.merge(additional_labels)
|
25
25
|
}.merge(formatted_annotations).merge(formatted_namespace).compact,
|
26
26
|
rules: formatted_rules
|
27
27
|
}.compact
|
@@ -29,7 +29,7 @@ module Metatron
|
|
29
29
|
kind:,
|
30
30
|
metadata: {
|
31
31
|
name:,
|
32
|
-
labels:
|
32
|
+
labels: base_labels.merge(additional_labels)
|
33
33
|
}.merge(formatted_annotations).merge(formatted_namespace).compact,
|
34
34
|
roleRef:,
|
35
35
|
subjects:
|
@@ -22,7 +22,7 @@ module Metatron
|
|
22
22
|
kind:,
|
23
23
|
metadata: {
|
24
24
|
name:,
|
25
|
-
labels:
|
25
|
+
labels: base_labels.merge(additional_labels)
|
26
26
|
}.merge(formatted_annotations).merge(formatted_namespace).compact,
|
27
27
|
type:,
|
28
28
|
stringData: data
|
@@ -13,7 +13,7 @@ module Metatron
|
|
13
13
|
def initialize(name, port = nil)
|
14
14
|
super(name)
|
15
15
|
@type = "ClusterIP"
|
16
|
-
@selector =
|
16
|
+
@selector = base_labels
|
17
17
|
@additional_labels = {}
|
18
18
|
@additional_selector_labels = {}
|
19
19
|
@publish_not_ready_addresses = false
|
@@ -41,7 +41,7 @@ module Metatron
|
|
41
41
|
kind:,
|
42
42
|
metadata: {
|
43
43
|
name:,
|
44
|
-
labels:
|
44
|
+
labels: base_labels.merge(additional_labels)
|
45
45
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
46
46
|
spec: {
|
47
47
|
type:,
|
@@ -18,7 +18,7 @@ module Metatron
|
|
18
18
|
automountServiceAccountToken:,
|
19
19
|
metadata: {
|
20
20
|
name:,
|
21
|
-
labels:
|
21
|
+
labels: base_labels.merge(additional_labels)
|
22
22
|
}.merge(formatted_annotations).merge(formatted_namespace).compact
|
23
23
|
}.compact
|
24
24
|
end
|
@@ -25,20 +25,20 @@ module Metatron
|
|
25
25
|
alias strategy= update_strategy=
|
26
26
|
alias updateStrategy update_strategy
|
27
27
|
|
28
|
-
def render
|
28
|
+
def render
|
29
29
|
{
|
30
30
|
apiVersion:,
|
31
31
|
kind:,
|
32
32
|
metadata: {
|
33
33
|
name:,
|
34
|
-
labels:
|
34
|
+
labels: base_labels.merge(additional_labels)
|
35
35
|
}.merge(formatted_annotations).merge(formatted_namespace),
|
36
36
|
spec: {
|
37
37
|
replicas:,
|
38
38
|
serviceName:,
|
39
39
|
updateStrategy:,
|
40
40
|
selector: {
|
41
|
-
matchLabels:
|
41
|
+
matchLabels: base_labels.merge(additional_pod_labels)
|
42
42
|
}
|
43
43
|
}.merge(pod_template).merge(volume_claim_templates).compact
|
44
44
|
}
|
data/lib/metatron/version.rb
CHANGED
data/lib/metatron.rb
CHANGED
@@ -32,6 +32,7 @@ require "metatron/templates/daemon_set"
|
|
32
32
|
require "metatron/templates/deployment"
|
33
33
|
require "metatron/templates/ingress"
|
34
34
|
require "metatron/templates/namespace"
|
35
|
+
require "metatron/templates/network_policy"
|
35
36
|
require "metatron/templates/persistent_volume_claim"
|
36
37
|
require "metatron/templates/replica_set"
|
37
38
|
require "metatron/templates/role"
|
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.
|
4
|
+
version: 0.7.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-11-
|
11
|
+
date: 2023-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -251,6 +251,7 @@ files:
|
|
251
251
|
- lib/metatron/templates/ingress.rb
|
252
252
|
- lib/metatron/templates/job.rb
|
253
253
|
- lib/metatron/templates/namespace.rb
|
254
|
+
- lib/metatron/templates/network_policy.rb
|
254
255
|
- lib/metatron/templates/persistent_volume_claim.rb
|
255
256
|
- lib/metatron/templates/pod.rb
|
256
257
|
- lib/metatron/templates/replica_set.rb
|