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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f971ace54be5f10abde07364654600377be07f9f77c1b7afb5bb9f73e5b3ddfe
4
- data.tar.gz: f2040905cec594653386a4a5f9049e6217628a29925d5f7fcc8aa0724eb873dc
3
+ metadata.gz: d962875f073779d83a18069ff777a107db39ff7ac8cdd922d14492972c24288b
4
+ data.tar.gz: 1dc2947fe2e82b34b40dcc0355394f4983d2ca0095cc49eb8030eef2cb5229fc
5
5
  SHA512:
6
- metadata.gz: 0cb2245173f84ca39286e957c7fce8a83491f403adc8c591c40da30cbe0f3ee26bf48ce432fa7c5deac669a43fdaa328212d3e1e00ec8266248164d76779957e
7
- data.tar.gz: b4cbb931a8a08250b1489ad22e9020a4642650330b1efbf79329294f777f2f1cfeb85b9b02c97bd1a0901318efa0b6f2deaa3ee5791b05eaf7a4cf02339a4a69
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
- if RUBY_VERSION >= "3.1"
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)
@@ -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
- if RUBY_VERSION >= "3.1"
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 env env_from resources probe domains
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["env"] = (result["env"] || {}).merge(manifest_env)
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 = if RUBY_VERSION >= "3.1"
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
@@ -1,3 +1,3 @@
1
1
  module Kdep
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -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
@@ -1,5 +1,6 @@
1
1
  require "kdep/version"
2
2
  require "kdep/ui"
3
+ require "kdep/yaml_compat"
3
4
  require "kdep/defaults"
4
5
  require "kdep/config"
5
6
  require "kdep/preset"
@@ -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["env"] && !@config["env"].empty? -%>
6
+ <% if @config["configmap"] && !@config["configmap"].empty? -%>
7
7
  data:
8
- <% @config["env"].sort.each do |key, value| -%>
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.2.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-03-22 00:00:00.000000000 Z
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.2.32
149
+ rubygems_version: 3.5.22
149
150
  signing_key:
150
151
  specification_version: 4
151
152
  summary: Kubernetes deployment CLI