mkit 0.6.3 → 0.7.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.
@@ -0,0 +1,29 @@
1
+ require "mkit/cmd/shell_client"
2
+
3
+ module MKIt
4
+ class DockerLogListener < MKIt::ShellClient
5
+
6
+ def initialize(pod, ws, options: {})
7
+ @pod = pod
8
+ @ws = ws
9
+ command = "docker logs"
10
+ command += " -f" if options[:follow] == 'true'
11
+ command += " -n #{options[:nr_lines]}" if options[:nr_lines]
12
+ command += " #{@pod.name}"
13
+ super(command: command)
14
+ end
15
+
16
+ def register
17
+ super do |stdout, stdin, pid|
18
+ stdout.each {
19
+ |line| @ws.send(line.strip!)
20
+ }
21
+ end
22
+ end
23
+
24
+ def close
25
+ @ws.close_websocket unless @ws.nil?
26
+ end
27
+ end
28
+ end
29
+
data/lib/mkit/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module MKIt
2
- VERSION = "0.6.3"
2
+ VERSION = "0.7.1"
3
3
  end
4
4
 
data/lib/mkit.rb CHANGED
@@ -9,6 +9,7 @@ require 'ostruct'
9
9
  require 'timeout'
10
10
  require 'net/http'
11
11
  require 'sinatra/base'
12
+ require 'sinatra-websocket'
12
13
  require 'mkit/config/environment'
13
14
  require 'mkit/app/mkit_server'
14
15
  require 'mkit/config/load_default_configs'
data/mkit.gemspec CHANGED
@@ -32,8 +32,10 @@ Gem::Specification.new do |s|
32
32
  s.add_runtime_dependency 'rubydns', '~> 2.0', '>= 2.0.2'
33
33
  s.add_runtime_dependency 'sinatra', '~> 3.0', '>= 3.0.5'
34
34
  s.add_runtime_dependency 'sinatra-activerecord', '~> 2.0', '>= 2.0.26'
35
+ s.add_runtime_dependency 'sinatra-websocket', '~> 0.3', '>= 0.3.1'
35
36
  s.add_runtime_dependency 'sqlite3', '~> 1.5', '>= 1.5.4'
36
- s.add_runtime_dependency 'standalone_migrations', '~> 7.1', '>= 7.1.0'
37
+ s.add_runtime_dependency 'standalone_migrations', '~> 7.1', '< 7.2.0'
37
38
  s.add_runtime_dependency 'thin', '~> 1.8', '>= 1.8.1'
38
39
  s.add_runtime_dependency 'text-table', '~> 1.2', '>= 1.2.4'
40
+ s.add_runtime_dependency 'faye-websocket', '~> 0.11', '>= 0.11.3'
39
41
  end
@@ -11,6 +11,6 @@ service:
11
11
  MINIO_ACCESS_KEY: minio
12
12
  MINIO_SECRET_KEY: minio123
13
13
  volumes:
14
- #- docker://minio_data:/data
15
- - /tmp/minio_data:/data
14
+ - docker://minio_data:/data
15
+ #- /tmp/minio_data:/data
16
16
 
@@ -0,0 +1,32 @@
1
+ service:
2
+ name: soketi
3
+ image: quay.io/soketi/soketi:0.17-16-alpine
4
+ # image: giovannedev/soketi:latest
5
+ ports:
6
+ #- 80:6001:http:round_robin
7
+ - 6001:6001:tcp:round_robin
8
+ - 6002:6001:tcp:round_robin:ssl
9
+ - 9601:9601:tcp:round_robin
10
+ resources:
11
+ max_replicas: 1
12
+ min_replicas: 1
13
+ environment:
14
+ SOKETI_PORT: 6001
15
+ SOKETI_METRICS_SERVER_PORT: 9601
16
+ SOKETI_DEBUG: 1
17
+ SOKETI_MODE: full
18
+ SOKETI_APP_ID: app-id
19
+ SOKETI_APP_KEY: app-key
20
+ SOKETI_APP_SECRET: app-secret
21
+ # PUSHER_HOST: 127.0.0.1
22
+ # PUSHER_PORT: 6001
23
+ # PUSHER_SCHEME: http # or https
24
+ SOKETI_PORT: 6001
25
+ SOKETI_SCHEME: http # or https
26
+ METRICS_SERVER_PORT: 9601
27
+ SOKETI_DEFAULT_APP_ENABLED: true
28
+ SOKETI_DEFAULT_APP_ENABLE_CLIENT_MESSAGES: true
29
+ DEFAULT_APP_ENABLE_CLIENT_MESSAGES: true
30
+ #SOKETI_DB_REDIS_HOST: redis
31
+ #SOKETI_DB_REDIS_PORT: 6379
32
+ #SOKETI_DB_REDIS_PASSWORD: password
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vasco Santos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-24 00:00:00.000000000 Z
11
+ date: 2024-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-dns
@@ -230,6 +230,26 @@ dependencies:
230
230
  - - ">="
231
231
  - !ruby/object:Gem::Version
232
232
  version: 2.0.26
233
+ - !ruby/object:Gem::Dependency
234
+ name: sinatra-websocket
235
+ requirement: !ruby/object:Gem::Requirement
236
+ requirements:
237
+ - - "~>"
238
+ - !ruby/object:Gem::Version
239
+ version: '0.3'
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: 0.3.1
243
+ type: :runtime
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '0.3'
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 0.3.1
233
253
  - !ruby/object:Gem::Dependency
234
254
  name: sqlite3
235
255
  requirement: !ruby/object:Gem::Requirement
@@ -257,9 +277,9 @@ dependencies:
257
277
  - - "~>"
258
278
  - !ruby/object:Gem::Version
259
279
  version: '7.1'
260
- - - ">="
280
+ - - "<"
261
281
  - !ruby/object:Gem::Version
262
- version: 7.1.0
282
+ version: 7.2.0
263
283
  type: :runtime
264
284
  prerelease: false
265
285
  version_requirements: !ruby/object:Gem::Requirement
@@ -267,9 +287,9 @@ dependencies:
267
287
  - - "~>"
268
288
  - !ruby/object:Gem::Version
269
289
  version: '7.1'
270
- - - ">="
290
+ - - "<"
271
291
  - !ruby/object:Gem::Version
272
- version: 7.1.0
292
+ version: 7.2.0
273
293
  - !ruby/object:Gem::Dependency
274
294
  name: thin
275
295
  requirement: !ruby/object:Gem::Requirement
@@ -310,6 +330,26 @@ dependencies:
310
330
  - - ">="
311
331
  - !ruby/object:Gem::Version
312
332
  version: 1.2.4
333
+ - !ruby/object:Gem::Dependency
334
+ name: faye-websocket
335
+ requirement: !ruby/object:Gem::Requirement
336
+ requirements:
337
+ - - "~>"
338
+ - !ruby/object:Gem::Version
339
+ version: '0.11'
340
+ - - ">="
341
+ - !ruby/object:Gem::Version
342
+ version: 0.11.3
343
+ type: :runtime
344
+ prerelease: false
345
+ version_requirements: !ruby/object:Gem::Requirement
346
+ requirements:
347
+ - - "~>"
348
+ - !ruby/object:Gem::Version
349
+ version: '0.11'
350
+ - - ">="
351
+ - !ruby/object:Gem::Version
352
+ version: 0.11.3
313
353
  description: Micro k8s on Ruby - a simple tool to deploy containers to mimic a (very)
314
354
  minimalistic k8 cluster with a nice REST API
315
355
  email:
@@ -323,7 +363,6 @@ files:
323
363
  - ".github/workflows/publish.yml"
324
364
  - ".rubocop.yml"
325
365
  - Gemfile
326
- - Gemfile.lock
327
366
  - LICENSE
328
367
  - README.md
329
368
  - Rakefile
@@ -361,6 +400,12 @@ files:
361
400
  - lib/mkit/app/templates/docker/docker_run.sh.erb
362
401
  - lib/mkit/app/templates/haproxy/0000_defaults.cfg
363
402
  - lib/mkit/app/templates/haproxy/xapp_haproxy.cfg.erb
403
+ - lib/mkit/client/command_parser.rb
404
+ - lib/mkit/client/commands.yaml
405
+ - lib/mkit/client/http_client.rb
406
+ - lib/mkit/client/mkitd_client.rb
407
+ - lib/mkit/client/websocket_client.rb
408
+ - lib/mkit/cmd/shell_client.rb
364
409
  - lib/mkit/cmd_runner.rb
365
410
  - lib/mkit/config/config.rb
366
411
  - lib/mkit/config/environment.rb
@@ -370,6 +415,7 @@ files:
370
415
  - lib/mkit/config/the_config.yml
371
416
  - lib/mkit/ctypes.rb
372
417
  - lib/mkit/docker_listener.rb
418
+ - lib/mkit/docker_log_listener.rb
373
419
  - lib/mkit/exceptions.rb
374
420
  - lib/mkit/job_manager.rb
375
421
  - lib/mkit/mkit_dns.rb
@@ -401,6 +447,7 @@ files:
401
447
  - samples/apps/redis.yml
402
448
  - samples/daemontools/log/run
403
449
  - samples/daemontools/run
450
+ - samples/soketi.yaml
404
451
  - samples/systemd/mkitd.service
405
452
  homepage: https://github.com/valexsantos/mkit
406
453
  licenses:
data/Gemfile.lock DELETED
@@ -1,140 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- actionpack (7.0.8)
5
- actionview (= 7.0.8)
6
- activesupport (= 7.0.8)
7
- rack (~> 2.0, >= 2.2.4)
8
- rack-test (>= 0.6.3)
9
- rails-dom-testing (~> 2.0)
10
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
11
- actionview (7.0.8)
12
- activesupport (= 7.0.8)
13
- builder (~> 3.1)
14
- erubi (~> 1.4)
15
- rails-dom-testing (~> 2.0)
16
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
17
- activemodel (7.0.8)
18
- activesupport (= 7.0.8)
19
- activerecord (7.0.8)
20
- activemodel (= 7.0.8)
21
- activesupport (= 7.0.8)
22
- activesupport (7.0.8)
23
- concurrent-ruby (~> 1.0, >= 1.0.2)
24
- i18n (>= 1.6, < 2)
25
- minitest (>= 5.1)
26
- tzinfo (~> 2.0)
27
- async (1.31.0)
28
- console (~> 1.10)
29
- nio4r (~> 2.3)
30
- timers (~> 4.1)
31
- async-dns (1.3.0)
32
- async-io (~> 1.15)
33
- async-io (1.38.0)
34
- async
35
- builder (3.2.4)
36
- coderay (1.1.3)
37
- concurrent-ruby (1.2.2)
38
- console (1.23.2)
39
- fiber-annotation
40
- fiber-local
41
- crass (1.0.6)
42
- daemons (1.4.1)
43
- dry-container (0.11.0)
44
- concurrent-ruby (~> 1.0)
45
- erubi (1.12.0)
46
- eventmachine (1.2.7)
47
- fiber-annotation (0.2.0)
48
- fiber-local (1.0.0)
49
- i18n (1.14.1)
50
- concurrent-ruby (~> 1.0)
51
- loofah (2.21.4)
52
- crass (~> 1.0.2)
53
- nokogiri (>= 1.12.0)
54
- method_source (1.0.0)
55
- minitest (5.20.0)
56
- mustermann (3.0.0)
57
- ruby2_keywords (~> 0.0.1)
58
- net-ping (2.0.8)
59
- net_http_unix (0.2.2)
60
- nio4r (2.7.0)
61
- nokogiri (1.15.4-x86_64-darwin)
62
- racc (~> 1.4)
63
- nokogiri (1.15.4-x86_64-linux)
64
- racc (~> 1.4)
65
- pry (0.14.2)
66
- coderay (~> 1.1)
67
- method_source (~> 1.0)
68
- racc (1.7.3)
69
- rack (2.2.8)
70
- rack-protection (3.1.0)
71
- rack (~> 2.2, >= 2.2.4)
72
- rack-test (2.1.0)
73
- rack (>= 1.3)
74
- rails-dom-testing (2.2.0)
75
- activesupport (>= 5.0.0)
76
- minitest
77
- nokogiri (>= 1.6)
78
- rails-html-sanitizer (1.6.0)
79
- loofah (~> 2.21)
80
- nokogiri (~> 1.14)
81
- railties (7.0.8)
82
- actionpack (= 7.0.8)
83
- activesupport (= 7.0.8)
84
- method_source
85
- rake (>= 12.2)
86
- thor (~> 1.0)
87
- zeitwerk (~> 2.5)
88
- rake (13.1.0)
89
- ruby2_keywords (0.0.5)
90
- rubydns (2.0.2)
91
- async-dns (~> 1.0)
92
- sinatra (3.1.0)
93
- mustermann (~> 3.0)
94
- rack (~> 2.2, >= 2.2.4)
95
- rack-protection (= 3.1.0)
96
- tilt (~> 2.0)
97
- sinatra-activerecord (2.0.27)
98
- activerecord (>= 4.1)
99
- sinatra (>= 1.0)
100
- sqlite3 (1.6.8-x86_64-darwin)
101
- sqlite3 (1.6.8-x86_64-linux)
102
- standalone_migrations (7.1.2)
103
- activerecord (>= 6.0.0, < 7.1.0)
104
- nokogiri (~> 1.14)
105
- railties (>= 6.0.0, < 7.1.0)
106
- rake (>= 10.0)
107
- text-table (1.2.4)
108
- thin (1.8.2)
109
- daemons (~> 1.0, >= 1.0.9)
110
- eventmachine (~> 1.0, >= 1.0.4)
111
- rack (>= 1, < 3)
112
- thor (1.3.0)
113
- tilt (2.3.0)
114
- timers (4.3.5)
115
- tzinfo (2.0.6)
116
- concurrent-ruby (~> 1.0)
117
- zeitwerk (2.6.12)
118
-
119
- PLATFORMS
120
- x86_64-darwin-22
121
- x86_64-linux
122
-
123
- DEPENDENCIES
124
- async-dns
125
- dry-container
126
- net-ping
127
- net_http_unix
128
- pry
129
- rack (>= 2.0.6)
130
- rake
131
- rubydns
132
- sinatra
133
- sinatra-activerecord
134
- sqlite3
135
- standalone_migrations
136
- text-table
137
- thin
138
-
139
- BUNDLED WITH
140
- 2.4.10