kdep 0.2.0 → 0.3.1
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/lib/kdep/config.rb +6 -5
- data/lib/kdep/old_format.rb +7 -12
- data/lib/kdep/version.rb +1 -1
- data/lib/kdep/yaml_compat.rb +24 -0
- data/lib/kdep.rb +1 -0
- data/templates/init/app.yml.erb +4 -0
- data/templates/resources/configmap.yml.erb +2 -2
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d962875f073779d83a18069ff777a107db39ff7ac8cdd922d14492972c24288b
|
|
4
|
+
data.tar.gz: 1dc2947fe2e82b34b40dcc0355394f4983d2ca0095cc49eb8030eef2cb5229fc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1debfdafa912d40db9e37dffa7a8ddd9ae088f1d5c0246bb67b284a93df29a09ac29702b3ed113b2d60a9429e0acd6ba3d8ddfa68a8b7efbf8a4f8646b3eee44
|
|
7
|
+
data.tar.gz: 45202494e9302714222da3f55e3400005773e9301e42577c00ffddd4449afd53b489a4d90dea6eed8a83283e48fca8f61e87c80e6eb64f9e646addb768a055db
|
data/lib/kdep/config.rb
CHANGED
|
@@ -37,14 +37,15 @@ module Kdep
|
|
|
37
37
|
|
|
38
38
|
def load_yaml(path)
|
|
39
39
|
content = File.read(path)
|
|
40
|
-
|
|
41
|
-
YAML.safe_load(content, permitted_classes: [], permitted_symbols: [], aliases: false, filename: path) || {}
|
|
42
|
-
else
|
|
43
|
-
YAML.safe_load(content, [], [], false, path) || {}
|
|
44
|
-
end
|
|
40
|
+
Kdep::YAMLCompat.safe_load(content, filename: path) || {}
|
|
45
41
|
end
|
|
46
42
|
|
|
47
43
|
def apply_defaults(config)
|
|
44
|
+
# Backward compatibility: rename "env" to "configmap"
|
|
45
|
+
if config.key?("env") && !config.key?("configmap")
|
|
46
|
+
config["configmap"] = config.delete("env")
|
|
47
|
+
end
|
|
48
|
+
|
|
48
49
|
preset_name = config.fetch("preset", "custom")
|
|
49
50
|
defaults = Kdep::Defaults.for_preset(preset_name)
|
|
50
51
|
result = deep_merge(defaults, config)
|
data/lib/kdep/old_format.rb
CHANGED
|
@@ -34,11 +34,7 @@ module Kdep
|
|
|
34
34
|
config_file = File.join(@path, "app.yml")
|
|
35
35
|
return {} unless File.exist?(config_file)
|
|
36
36
|
content = File.read(config_file)
|
|
37
|
-
|
|
38
|
-
YAML.safe_load(content, permitted_classes: [], permitted_symbols: [], aliases: false) || {}
|
|
39
|
-
else
|
|
40
|
-
YAML.safe_load(content, [], [], false) || {}
|
|
41
|
-
end
|
|
37
|
+
Kdep::YAMLCompat.safe_load(content) || {}
|
|
42
38
|
end
|
|
43
39
|
|
|
44
40
|
def materialized_files
|
|
@@ -75,7 +71,7 @@ module Kdep
|
|
|
75
71
|
|
|
76
72
|
# Start with what's in the old app.yml
|
|
77
73
|
%w[preset namespace name image registry context port replicas
|
|
78
|
-
command args
|
|
74
|
+
command args env_from resources probe domains
|
|
79
75
|
image_pull_secrets image_pull_policy schedule service_port
|
|
80
76
|
ingress_name ingress_annotations ingress_class_field
|
|
81
77
|
tls_secret_name tls_hosts ssl_redirect
|
|
@@ -90,6 +86,9 @@ module Kdep
|
|
|
90
86
|
result[key] = old[key] if old.key?(key)
|
|
91
87
|
end
|
|
92
88
|
|
|
89
|
+
# Migrate old "env" key to "configmap"
|
|
90
|
+
result["configmap"] = old["env"] if old.key?("env")
|
|
91
|
+
|
|
93
92
|
# Old format uses "target" as the preset name
|
|
94
93
|
result["preset"] ||= old["target"]
|
|
95
94
|
|
|
@@ -122,7 +121,7 @@ module Kdep
|
|
|
122
121
|
# Merge env from ConfigMap into config (for rendering)
|
|
123
122
|
manifest_env = extract_env
|
|
124
123
|
unless manifest_env.empty?
|
|
125
|
-
result["
|
|
124
|
+
result["configmap"] = (result["configmap"] || {}).merge(manifest_env)
|
|
126
125
|
end
|
|
127
126
|
|
|
128
127
|
# Ensure name: prefer deploy metadata name > image > app_name
|
|
@@ -724,11 +723,7 @@ module Kdep
|
|
|
724
723
|
# Handle multi-document YAML
|
|
725
724
|
content.split(/^---\s*$/).each do |part|
|
|
726
725
|
next if part.strip.empty?
|
|
727
|
-
doc =
|
|
728
|
-
YAML.safe_load(part, permitted_classes: [], permitted_symbols: [], aliases: false)
|
|
729
|
-
else
|
|
730
|
-
YAML.safe_load(part, [], [], false)
|
|
731
|
-
end
|
|
726
|
+
doc = Kdep::YAMLCompat.safe_load(part)
|
|
732
727
|
yield doc if doc.is_a?(Hash)
|
|
733
728
|
end
|
|
734
729
|
end
|
data/lib/kdep/version.rb
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require "yaml"
|
|
2
|
+
|
|
3
|
+
module Kdep
|
|
4
|
+
# Compatibility shim for YAML.safe_load across Psych versions.
|
|
5
|
+
#
|
|
6
|
+
# Psych 3.0 (Ruby 2.5): positional args only.
|
|
7
|
+
# Psych 3.1+ (Ruby 2.6+): kwargs added, positional still accepted.
|
|
8
|
+
# Psych 4.0+ (Ruby 3.1+): positional removed — kwargs only.
|
|
9
|
+
#
|
|
10
|
+
# We discriminate on Psych::VERSION (NOT RUBY_VERSION) because Psych is a
|
|
11
|
+
# default gem and can be updated independently of the Ruby runtime — e.g.
|
|
12
|
+
# Ruby 3.0 with an upgraded Psych 4+ would break a RUBY_VERSION-based check.
|
|
13
|
+
module YAMLCompat
|
|
14
|
+
module_function
|
|
15
|
+
|
|
16
|
+
def safe_load(content, filename: nil)
|
|
17
|
+
if Gem::Version.new(Psych::VERSION) >= Gem::Version.new("3.1.0")
|
|
18
|
+
YAML.safe_load(content, permitted_classes: [], permitted_symbols: [], aliases: false, filename: filename)
|
|
19
|
+
else
|
|
20
|
+
YAML.safe_load(content, [], [], false, filename)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
data/lib/kdep.rb
CHANGED
data/templates/init/app.yml.erb
CHANGED
|
@@ -42,6 +42,10 @@ registry: <%= registry %>
|
|
|
42
42
|
# path: /api
|
|
43
43
|
# path_type: Prefix
|
|
44
44
|
#
|
|
45
|
+
# configmap: # ConfigMap data (key-value pairs)
|
|
46
|
+
# RAILS_ENV: production
|
|
47
|
+
# LOG_LEVEL: info
|
|
48
|
+
#
|
|
45
49
|
# env_from: # environment variable sources
|
|
46
50
|
# - configmap/my-config # from ConfigMap
|
|
47
51
|
# - secret/my-secret # from Secret
|
|
@@ -3,9 +3,9 @@ kind: ConfigMap
|
|
|
3
3
|
metadata:
|
|
4
4
|
name: <%= @config["configmap_name"] || "config-#{name}" %>
|
|
5
5
|
namespace: <%= namespace %>
|
|
6
|
-
<% if @config["
|
|
6
|
+
<% if @config["configmap"] && !@config["configmap"].empty? -%>
|
|
7
7
|
data:
|
|
8
|
-
<% @config["
|
|
8
|
+
<% @config["configmap"].sort.each do |key, value| -%>
|
|
9
9
|
<%= key %>: "<%= value %>"
|
|
10
10
|
<% end -%>
|
|
11
11
|
<% end -%>
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kdep
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Leadfy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-04-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -107,6 +107,7 @@ files:
|
|
|
107
107
|
- lib/kdep/version.rb
|
|
108
108
|
- lib/kdep/version_tagger.rb
|
|
109
109
|
- lib/kdep/writer.rb
|
|
110
|
+
- lib/kdep/yaml_compat.rb
|
|
110
111
|
- templates/init/app.yml.erb
|
|
111
112
|
- templates/init/gitignore
|
|
112
113
|
- templates/init/secrets.yml
|
|
@@ -145,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
145
146
|
- !ruby/object:Gem::Version
|
|
146
147
|
version: '0'
|
|
147
148
|
requirements: []
|
|
148
|
-
rubygems_version: 3.
|
|
149
|
+
rubygems_version: 3.5.22
|
|
149
150
|
signing_key:
|
|
150
151
|
specification_version: 4
|
|
151
152
|
summary: Kubernetes deployment CLI
|