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