mkit 0.9.1 → 0.10.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +50 -15
  3. data/db/migrate/004_create_ingress.rb +12 -0
  4. data/db/migrate/005_create_frontend.rb +20 -0
  5. data/db/migrate/006_create_backend.rb +18 -0
  6. data/db/migrate/007_migrate_schema.rb +59 -0
  7. data/lib/mkit/app/controllers/services_controller.rb +12 -0
  8. data/lib/mkit/app/helpers/migrations_helper.rb +62 -0
  9. data/lib/mkit/app/helpers/services_helper.rb +4 -15
  10. data/lib/mkit/app/model/backend.rb +58 -0
  11. data/lib/mkit/app/model/frontend.rb +63 -0
  12. data/lib/mkit/app/model/ingress.rb +98 -0
  13. data/lib/mkit/app/model/pod.rb +7 -13
  14. data/lib/mkit/app/model/service.rb +21 -23
  15. data/lib/mkit/app/model/service_port.rb +0 -1
  16. data/lib/mkit/app/templates/haproxy/0000_defaults.cfg +2 -2
  17. data/lib/mkit/app/templates/haproxy/app_haproxy.cfg.erb +28 -0
  18. data/lib/mkit/client/commands.yaml +13 -0
  19. data/lib/mkit/config/environment.rb +1 -0
  20. data/lib/mkit/config/initializers/001_hash.rb +14 -0
  21. data/lib/mkit/config/initializers/003_custom_exceptions.rb +10 -0
  22. data/lib/mkit/ctypes.rb +1 -1
  23. data/lib/mkit/exceptions.rb +13 -1
  24. data/lib/mkit/pods/docker_listener.rb +19 -14
  25. data/lib/mkit/sagas/create_pod_saga.rb +9 -7
  26. data/lib/mkit/sagas/destroy_pod_saga.rb +32 -0
  27. data/lib/mkit/sagas/saga_manager.rb +2 -0
  28. data/lib/mkit/version.rb +1 -1
  29. data/lib/mkit/workers/pod_worker.rb +3 -1
  30. data/lib/mkit/workers/service_worker.rb +2 -0
  31. data/mkit.gemspec +2 -1
  32. data/samples/apps/httpbin.yml +46 -0
  33. data/samples/apps/kafka-cluster.yml +18 -8
  34. data/samples/apps/kafka-magic.yml +27 -10
  35. data/samples/apps/kafka-zookeeper.yml +18 -7
  36. data/samples/apps/minio.yml +33 -7
  37. data/samples/apps/mongo.yml +15 -4
  38. data/samples/apps/nexus.yml +41 -6
  39. data/samples/apps/postgres.yml +17 -7
  40. data/samples/apps/rabbitmq.yml +35 -8
  41. data/samples/apps/redis-sentinel.yml +15 -5
  42. data/samples/apps/redis.yml +15 -5
  43. metadata +29 -3
@@ -1,14 +1,49 @@
1
- #
1
+ ---
2
2
  service:
3
3
  name: nexus
4
4
  image: sonatype/nexus3
5
5
  network: bridge
6
- ports:
7
- - 80:8081:http:round_robin
8
- - 443:8081:http:round_robin:ssl
9
6
  resources:
10
7
  max_replicas: 1
11
8
  min_replicas: 1
12
9
  volumes:
13
- - docker://nexus_data:/nexus-data
14
-
10
+ - docker://nexus_data:/nexus-data
11
+ ingress:
12
+ frontend:
13
+ - name: frontend-80
14
+ options: []
15
+ bind:
16
+ port: '80'
17
+ mode: http
18
+ default_backend: backend-80
19
+ - name: frontend-443
20
+ options: []
21
+ bind:
22
+ port: '443'
23
+ mode: http
24
+ ssl: true
25
+ cert:
26
+ default_backend: backend-443
27
+ backend:
28
+ - name: backend-80
29
+ bind:
30
+ port: '8081'
31
+ mode: http
32
+ options:
33
+ - cookie A check
34
+ balance: round_robin
35
+ options:
36
+ - option httpclose
37
+ - option forwardfor
38
+ - cookie JSESSIONID prefix
39
+ - name: backend-443
40
+ bind:
41
+ port: '8081'
42
+ mode: http
43
+ options:
44
+ - cookie A check
45
+ balance: round_robin
46
+ options:
47
+ - option httpclose
48
+ - option forwardfor
49
+ - cookie JSESSIONID prefix
@@ -1,16 +1,14 @@
1
- #
1
+ ---
2
2
  service:
3
3
  name: postgres
4
4
  network: bridge
5
- image: "postgres:14"
6
- ports:
7
- - 5432:5432:tcp:round_robin
5
+ image: postgres:14
8
6
  environment:
9
7
  POSTGRES_USER: postgres
10
8
  POSTGRES_PASSWORD: postgres
11
9
  POSTGRES_DB: postgres
12
10
  volumes:
13
- - docker://postgresql_14_data:/var/lib/postgresql/data
11
+ - docker://postgresql_14_data:/var/lib/postgresql/data
14
12
  restart: always
15
13
  resources:
16
14
  max_replicas: 1
@@ -18,5 +16,17 @@ service:
18
16
  limits:
19
17
  cpu: 1000m
20
18
  ram: 1Gi
21
-
22
-
19
+ ingress:
20
+ frontend:
21
+ - name: frontend-5432
22
+ options: []
23
+ bind:
24
+ port: '5432'
25
+ mode: tcp
26
+ default_backend: backend-5432
27
+ backend:
28
+ - name: backend-5432
29
+ bind:
30
+ port: '5432'
31
+ mode: tcp
32
+ balance: round_robin
@@ -1,19 +1,46 @@
1
- #
1
+ ---
2
2
  service:
3
3
  name: rabbitmq
4
4
  image: rabbitmq:3-management-alpine
5
- network: bridge # docker network
6
- ports:
7
- - 5672:5672:tcp:round_robin
8
- - 80:15672:http:round_robin
5
+ network: bridge
9
6
  resources:
10
7
  max_replicas: 1
11
8
  min_replicas: 1
12
9
  volumes:
13
- - docker://mkit_rabbitmq_data:/var/lib/rabbitmq
14
- - docker://mkit_rabbitmq_logs:/var/log/rabbitmq
10
+ - docker://mkit_rabbitmq_data:/var/lib/rabbitmq
11
+ - docker://mkit_rabbitmq_logs:/var/log/rabbitmq
15
12
  environment:
16
13
  RABBITMQ_DEFAULT_USER: admin
17
14
  RABBITMQ_DEFAULT_PASS: admin
18
15
  RABBITMQ_DEFAULT_VHOST: mkit
19
-
16
+ ingress:
17
+ frontend:
18
+ - name: frontend-5672
19
+ options: []
20
+ bind:
21
+ port: '5672'
22
+ mode: tcp
23
+ default_backend: backend-5672
24
+ - name: frontend-80
25
+ options: []
26
+ bind:
27
+ port: '80'
28
+ mode: http
29
+ default_backend: backend-80
30
+ backend:
31
+ - name: backend-5672
32
+ bind:
33
+ port: '5672'
34
+ mode: tcp
35
+ balance: round_robin
36
+ - name: backend-80
37
+ bind:
38
+ port: '15672'
39
+ mode: http
40
+ options:
41
+ - cookie A check
42
+ balance: round_robin
43
+ options:
44
+ - option httpclose
45
+ - option forwardfor
46
+ - cookie JSESSIONID prefix
@@ -1,11 +1,21 @@
1
- #
1
+ ---
2
2
  service:
3
3
  name: redis-sentinel
4
4
  image: bitnami/redis-sentinel:latest
5
5
  network: bridge
6
- ports:
7
- - 26379:26379:tcp:round_robin
8
6
  environment:
9
7
  REDIS_MASTER_HOST: redis
10
-
11
-
8
+ ingress:
9
+ frontend:
10
+ - name: frontend-26379
11
+ options: []
12
+ bind:
13
+ port: '26379'
14
+ mode: tcp
15
+ default_backend: backend-26379
16
+ backend:
17
+ - name: backend-26379
18
+ bind:
19
+ port: '26379'
20
+ mode: tcp
21
+ balance: round_robin
@@ -1,9 +1,19 @@
1
- #
1
+ ---
2
2
  service:
3
3
  name: redis
4
4
  image: redis:4.0-alpine
5
5
  network: bridge
6
- ports:
7
- - 6379:6379:tcp:round_robin
8
-
9
-
6
+ ingress:
7
+ frontend:
8
+ - name: frontend-6379
9
+ options: []
10
+ bind:
11
+ port: '6379'
12
+ mode: tcp
13
+ default_backend: backend-6379
14
+ backend:
15
+ - name: backend-6379
16
+ bind:
17
+ port: '6379'
18
+ mode: tcp
19
+ balance: round_robin
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.9.1
4
+ version: 0.10.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: 2025-02-02 00:00:00.000000000 Z
11
+ date: 2025-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-dns
@@ -350,10 +350,24 @@ dependencies:
350
350
  - - ">="
351
351
  - !ruby/object:Gem::Version
352
352
  version: 0.11.3
353
+ - !ruby/object:Gem::Dependency
354
+ name: rubocop
355
+ requirement: !ruby/object:Gem::Requirement
356
+ requirements:
357
+ - - "~>"
358
+ - !ruby/object:Gem::Version
359
+ version: '1.0'
360
+ type: :development
361
+ prerelease: false
362
+ version_requirements: !ruby/object:Gem::Requirement
363
+ requirements:
364
+ - - "~>"
365
+ - !ruby/object:Gem::Version
366
+ version: '1.0'
353
367
  description: Micro k8s on Ruby - a simple tool to deploy containers to mimic a (very)
354
368
  minimalistic k8 cluster with a nice REST API
355
369
  email:
356
- - valexsantos@gmail.com
370
+ - valexsantos - gmail - com
357
371
  executables:
358
372
  - mkitd
359
373
  - mkit
@@ -375,6 +389,10 @@ files:
375
389
  - db/migrate/001_setup.rb
376
390
  - db/migrate/002_mkit_jobs.rb
377
391
  - db/migrate/003_service_ports_ssl.rb
392
+ - db/migrate/004_create_ingress.rb
393
+ - db/migrate/005_create_frontend.rb
394
+ - db/migrate/006_create_backend.rb
395
+ - db/migrate/007_migrate_schema.rb
378
396
  - db/schema.rb
379
397
  - lib/mkit.rb
380
398
  - lib/mkit/app/controllers/mkit_controller.rb
@@ -385,11 +403,15 @@ files:
385
403
  - lib/mkit/app/helpers/erb_helper.rb
386
404
  - lib/mkit/app/helpers/haproxy.rb
387
405
  - lib/mkit/app/helpers/interface_helper.rb
406
+ - lib/mkit/app/helpers/migrations_helper.rb
388
407
  - lib/mkit/app/helpers/params_helper.rb
389
408
  - lib/mkit/app/helpers/pods_helper.rb
390
409
  - lib/mkit/app/helpers/services_helper.rb
391
410
  - lib/mkit/app/mkit_server.rb
411
+ - lib/mkit/app/model/backend.rb
392
412
  - lib/mkit/app/model/dns_host.rb
413
+ - lib/mkit/app/model/frontend.rb
414
+ - lib/mkit/app/model/ingress.rb
393
415
  - lib/mkit/app/model/lease.rb
394
416
  - lib/mkit/app/model/mkit_job.rb
395
417
  - lib/mkit/app/model/pod.rb
@@ -401,6 +423,7 @@ files:
401
423
  - lib/mkit/app/model/volume.rb
402
424
  - lib/mkit/app/templates/docker/docker_run.sh.erb
403
425
  - lib/mkit/app/templates/haproxy/0000_defaults.cfg
426
+ - lib/mkit/app/templates/haproxy/app_haproxy.cfg.erb
404
427
  - lib/mkit/app/templates/haproxy/xapp_haproxy.cfg.erb
405
428
  - lib/mkit/client/command_parser.rb
406
429
  - lib/mkit/client/commands.yaml
@@ -415,6 +438,7 @@ files:
415
438
  - lib/mkit/config/environment.rb
416
439
  - lib/mkit/config/initializers/001_hash.rb
417
440
  - lib/mkit/config/initializers/002_openstruct.rb
441
+ - lib/mkit/config/initializers/003_custom_exceptions.rb
418
442
  - lib/mkit/config/load_default_configs.rb
419
443
  - lib/mkit/config/the_config.yml
420
444
  - lib/mkit/ctypes.rb
@@ -427,6 +451,7 @@ files:
427
451
  - lib/mkit/pods/docker_log_listener.rb
428
452
  - lib/mkit/sagas/asaga.rb
429
453
  - lib/mkit/sagas/create_pod_saga.rb
454
+ - lib/mkit/sagas/destroy_pod_saga.rb
430
455
  - lib/mkit/sagas/saga_manager.rb
431
456
  - lib/mkit/ssl/easy_ssl.rb
432
457
  - lib/mkit/status.rb
@@ -440,6 +465,7 @@ files:
440
465
  - mkit
441
466
  - mkit.gemspec
442
467
  - mkitd
468
+ - samples/apps/httpbin.yml
443
469
  - samples/apps/kafka-cluster.yml
444
470
  - samples/apps/kafka-magic.yml
445
471
  - samples/apps/kafka-zookeeper.yml