cuber 1.4.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f3c3f1360d10e9b55b0c4f0834d8b63b1ff3c633c6494614be9eca6fd7a5a4d2
4
- data.tar.gz: b86d180914c922da1dea746b4a741b266048a4aa0209ca3c5276e22f2bf901fa
3
+ metadata.gz: 39f690dbfe51c572573fa0bf59c5f43c1b2806576aed7249afafa94d9184f146
4
+ data.tar.gz: 03a35ba128901bb1d2a86a95f517cfeb44383da40b5351914ccdda21e8d21315
5
5
  SHA512:
6
- metadata.gz: 36c76161ea6ec606cb59afc2cd3d8d3c8506579e66520e314f4aff882367a9e736f53b77cc93c1b603af55eef18c78ae04f799c8f2bcd35cdfc3522284ffd54a
7
- data.tar.gz: 56c369603b1780f64b8ec38d335f5628044067875c186f03e930769678fef358e2de8b31dd5c63766b65e8f42ee921b50e5bfd28ec96213758aef779086755c6
6
+ metadata.gz: 1800876c72eac1ad1066cf17bdf139ee3ce204c3d32eff529dad6fd031632a0c1c8b912012fb37ce900d912d76f846bdfd9ffdc505cbbc6e54f1fd80ceecff92
7
+ data.tar.gz: f6a2dc6449e62325d82d988b392b9dd2cea53cc7584701fe7901093c7d6ceef009114f7dda2a95bec25f9426d40fcc56e333bd7240309f3d272341cde8a0a486
@@ -0,0 +1,14 @@
1
+ module Cuber::Commands
2
+ class Ctl
3
+ include Cuber::Utils
4
+
5
+ def initialize options
6
+ @options = options
7
+ end
8
+
9
+ def execute
10
+ kubectl *ARGV
11
+ end
12
+
13
+ end
14
+ end
@@ -109,8 +109,8 @@ module Cuber::Commands
109
109
  name = pod['metadata']['name']
110
110
  created_at = pod['metadata']['creationTimestamp']
111
111
  pod_status = pod['status']['phase']
112
- container_ready = pod['status']['containerStatuses'][0]['ready']
113
- container_status = pod['status']['containerStatuses'][0]['state'].values.first['reason']
112
+ container_ready = pod.dig('status', 'containerStatuses', 0, 'ready')
113
+ container_status = pod.dig('status', 'containerStatuses', 0, 'state')&.values&.first&.[]('reason')
114
114
  if pod_status == 'Succeeded' || (pod_status == 'Running' && container_ready)
115
115
  puts "#{name}: \e[32m#{container_status || pod_status}\e[0m (#{time_ago_in_words created_at})"
116
116
  else
@@ -64,8 +64,8 @@ module Cuber
64
64
  @migrate = { cmd: cmd, check: check }
65
65
  end
66
66
 
67
- def proc name, cmd, scale: 1, term: 60, env: {}
68
- @procs[name] = { cmd: cmd, scale: scale, term: term, env: env }
67
+ def proc name, cmd, scale: 1, cpu: nil, ram: nil, term: 60, env: {}
68
+ @procs[name] = { cmd: cmd, scale: scale, cpu: cpu, ram: ram, term: term, env: env }
69
69
  end
70
70
 
71
71
  def cron name, schedule, cmd
@@ -81,6 +81,8 @@ module Cuber
81
81
  @errors << "proc \"#{procname}\" name can only include lowercase letters" if procname !~ /\A[a-z]+\z/
82
82
  @errors << "proc \"#{procname}\" command must be present" if proc[:cmd].to_s.strip.empty?
83
83
  @errors << "proc \"#{procname}\" scale must be a positive number" unless proc[:scale].is_a?(Integer) && proc[:scale] > 0
84
+ @errors << "proc \"#{procname}\" cpu must be a positive number" unless proc[:cpu].nil? || proc[:cpu].is_a?(Numeric) && proc[:cpu] > 0
85
+ @errors << "proc \"#{procname}\" ram must be a positive number" unless proc[:ram].nil? || proc[:ram].is_a?(Numeric) && proc[:ram] > 0
84
86
  @errors << "proc \"#{procname}\" term must be a positive number" unless proc[:term].is_a?(Integer) && proc[:term] > 0
85
87
  proc[:env].each do |key, value|
86
88
  @errors << "proc \"#{procname}\" env name can only include uppercase letters, digits or underscores" if key !~ /\A[A-Z_]+[A-Z0-9_]*\z/
@@ -137,6 +137,18 @@ spec:
137
137
  <%- else -%>
138
138
  command: <%= proc[:cmd].shellsplit %>
139
139
  <%- end -%>
140
+ resources:
141
+ requests:
142
+ <%- if proc[:cpu] -%>
143
+ cpu: <%= proc[:cpu] %>
144
+ <%- end -%>
145
+ <%- if proc[:ram] -%>
146
+ memory: <%= proc[:ram] %>Gi
147
+ <%- end -%>
148
+ limits:
149
+ <%- if proc[:ram] -%>
150
+ memory: <%= proc[:ram] %>Gi
151
+ <%- end -%>
140
152
  envFrom:
141
153
  - configMapRef:
142
154
  name: env
data/lib/cuber/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cuber
2
- VERSION = '1.4.0'.freeze
2
+ VERSION = '1.6.0'.freeze
3
3
  end
data/lib/cuber.rb CHANGED
@@ -9,6 +9,7 @@ require 'cuber/commands/logs'
9
9
  require 'cuber/commands/restart'
10
10
  require 'cuber/commands/run'
11
11
  require 'cuber/commands/deploy'
12
+ require 'cuber/commands/ctl'
12
13
 
13
14
  module Cuber
14
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cuber
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-31 00:00:00.000000000 Z
11
+ date: 2022-11-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -23,6 +23,7 @@ files:
23
23
  - cuber.gemspec
24
24
  - lib/cuber.rb
25
25
  - lib/cuber/cli.rb
26
+ - lib/cuber/commands/ctl.rb
26
27
  - lib/cuber/commands/deploy.rb
27
28
  - lib/cuber/commands/info.rb
28
29
  - lib/cuber/commands/logs.rb