mkit 0.9.1 → 0.10.0

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 (42) 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/samples/apps/httpbin.yml +46 -0
  32. data/samples/apps/kafka-cluster.yml +18 -8
  33. data/samples/apps/kafka-magic.yml +27 -10
  34. data/samples/apps/kafka-zookeeper.yml +18 -7
  35. data/samples/apps/minio.yml +33 -7
  36. data/samples/apps/mongo.yml +15 -4
  37. data/samples/apps/nexus.yml +41 -6
  38. data/samples/apps/postgres.yml +17 -7
  39. data/samples/apps/rabbitmq.yml +35 -8
  40. data/samples/apps/redis-sentinel.yml +15 -5
  41. data/samples/apps/redis.yml +15 -5
  42. metadata +14 -2
@@ -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.0
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
@@ -375,6 +375,10 @@ files:
375
375
  - db/migrate/001_setup.rb
376
376
  - db/migrate/002_mkit_jobs.rb
377
377
  - db/migrate/003_service_ports_ssl.rb
378
+ - db/migrate/004_create_ingress.rb
379
+ - db/migrate/005_create_frontend.rb
380
+ - db/migrate/006_create_backend.rb
381
+ - db/migrate/007_migrate_schema.rb
378
382
  - db/schema.rb
379
383
  - lib/mkit.rb
380
384
  - lib/mkit/app/controllers/mkit_controller.rb
@@ -385,11 +389,15 @@ files:
385
389
  - lib/mkit/app/helpers/erb_helper.rb
386
390
  - lib/mkit/app/helpers/haproxy.rb
387
391
  - lib/mkit/app/helpers/interface_helper.rb
392
+ - lib/mkit/app/helpers/migrations_helper.rb
388
393
  - lib/mkit/app/helpers/params_helper.rb
389
394
  - lib/mkit/app/helpers/pods_helper.rb
390
395
  - lib/mkit/app/helpers/services_helper.rb
391
396
  - lib/mkit/app/mkit_server.rb
397
+ - lib/mkit/app/model/backend.rb
392
398
  - lib/mkit/app/model/dns_host.rb
399
+ - lib/mkit/app/model/frontend.rb
400
+ - lib/mkit/app/model/ingress.rb
393
401
  - lib/mkit/app/model/lease.rb
394
402
  - lib/mkit/app/model/mkit_job.rb
395
403
  - lib/mkit/app/model/pod.rb
@@ -401,6 +409,7 @@ files:
401
409
  - lib/mkit/app/model/volume.rb
402
410
  - lib/mkit/app/templates/docker/docker_run.sh.erb
403
411
  - lib/mkit/app/templates/haproxy/0000_defaults.cfg
412
+ - lib/mkit/app/templates/haproxy/app_haproxy.cfg.erb
404
413
  - lib/mkit/app/templates/haproxy/xapp_haproxy.cfg.erb
405
414
  - lib/mkit/client/command_parser.rb
406
415
  - lib/mkit/client/commands.yaml
@@ -415,6 +424,7 @@ files:
415
424
  - lib/mkit/config/environment.rb
416
425
  - lib/mkit/config/initializers/001_hash.rb
417
426
  - lib/mkit/config/initializers/002_openstruct.rb
427
+ - lib/mkit/config/initializers/003_custom_exceptions.rb
418
428
  - lib/mkit/config/load_default_configs.rb
419
429
  - lib/mkit/config/the_config.yml
420
430
  - lib/mkit/ctypes.rb
@@ -427,6 +437,7 @@ files:
427
437
  - lib/mkit/pods/docker_log_listener.rb
428
438
  - lib/mkit/sagas/asaga.rb
429
439
  - lib/mkit/sagas/create_pod_saga.rb
440
+ - lib/mkit/sagas/destroy_pod_saga.rb
430
441
  - lib/mkit/sagas/saga_manager.rb
431
442
  - lib/mkit/ssl/easy_ssl.rb
432
443
  - lib/mkit/status.rb
@@ -440,6 +451,7 @@ files:
440
451
  - mkit
441
452
  - mkit.gemspec
442
453
  - mkitd
454
+ - samples/apps/httpbin.yml
443
455
  - samples/apps/kafka-cluster.yml
444
456
  - samples/apps/kafka-magic.yml
445
457
  - samples/apps/kafka-zookeeper.yml