eien 0.1.2 → 0.1.3
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 +4 -4
- data/README.md +12 -7
- data/lib/eien/cli/cli.rb +8 -0
- data/lib/eien/cli/domains.rb +3 -26
- data/lib/eien/cli/processes.rb +7 -6
- data/lib/eien/cli/routes.rb +4 -2
- data/lib/eien/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 926298e51aca3ac937f7888adf8346aacddfca6275520c5d431709c9bf85ffe1
|
4
|
+
data.tar.gz: 98ee5e2db2148462c333597775ca0bb126769601723f28670dea14756ae5634e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7aa2f5ab91d442c608ca973768a9c54bc3bd738c79854cced2587e1116fe613efdd2ea052fbd73c39577f48e5efb4a14abf523b085e9cfc3b8eef2017ad43365
|
7
|
+
data.tar.gz: 9822c483275c55c7129cc54a07da2e09f54652b0936af384b08daf242ad114ef66e75f9c5dae70135006c1c3f23625c6db7cd0dbb65f4551a390a73a4d5f6aed
|
data/README.md
CHANGED
@@ -7,8 +7,8 @@ concepts from you.
|
|
7
7
|
to manage and deploy the app. `eien` tries to follow all best practices for deploying apps in Kubernetes.
|
8
8
|
|
9
9
|
⚙️ `eien` has simple commands like you are used to
|
10
|
-
from [heroku
|
11
|
-
or [dokku
|
10
|
+
from [heroku](https://devcenter.heroku.com/articles/heroku-cli-commands)
|
11
|
+
or [dokku](https://dokku.com/docs/deployment/application-management) CLI.
|
12
12
|
|
13
13
|
🏗 `eien` uses [Krane](https://github.com/Shopify/krane) gem to deploy Kubernetes resources. This allows you to:
|
14
14
|
|
@@ -24,11 +24,15 @@ For more information visit https://github.com/Shopify/krane.
|
|
24
24
|
|
25
25
|
Install the gem and add to the application's Gemfile by executing:
|
26
26
|
|
27
|
-
|
27
|
+
```
|
28
|
+
$ bundle add eien
|
29
|
+
```
|
28
30
|
|
29
31
|
If bundler is not being used to manage dependencies, install the gem by executing:
|
30
32
|
|
31
|
-
|
33
|
+
```
|
34
|
+
$ gem install eien
|
35
|
+
```
|
32
36
|
|
33
37
|
️⭐️ *Recommendation*: Lock down the version of `eien` gem by adding the gem to `Gemfile` to ensure consistency. If you don't use `bundler` just create `Gemfile` only for `eien` gem version tracking.
|
34
38
|
|
@@ -36,8 +40,9 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
36
40
|
|
37
41
|
1. Initialize Kubernetes cluster for `eien`
|
38
42
|
|
39
|
-
|
43
|
+
```
|
40
44
|
$ eien init <kubernetes context>
|
45
|
+
```
|
41
46
|
|
42
47
|
This will deploy `eien` [Kubernetes Custom Resource Definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources) to store app , processes and other definitions. Those are used to generate Kubernetes resources when depoying the apps.
|
43
48
|
|
@@ -51,7 +56,7 @@ This will deploy `eien` [Kubernetes Custom Resource Definitions](https://kuberne
|
|
51
56
|
3. Create first process (like Procfile process type)
|
52
57
|
|
53
58
|
```
|
54
|
-
$ eien ps create web --
|
59
|
+
$ eien ps create web --image ealen/echo-server:latest --replicas 3 --ports http:80
|
55
60
|
```
|
56
61
|
|
57
62
|
4. Create domain
|
@@ -64,7 +69,7 @@ This will deploy `eien` [Kubernetes Custom Resource Definitions](https://kuberne
|
|
64
69
|
5. Create route to route HTTP request from domain to process port
|
65
70
|
|
66
71
|
```
|
67
|
-
$ eien route create root --
|
72
|
+
$ eien route create root --domains myapp.x.x.x.x.nip.io --path / --process web --port http
|
68
73
|
```
|
69
74
|
|
70
75
|
|
data/lib/eien/cli/cli.rb
CHANGED
@@ -48,6 +48,14 @@ module Eien
|
|
48
48
|
exit(1)
|
49
49
|
end
|
50
50
|
|
51
|
+
def require_options(allowed_options, default_options = {})
|
52
|
+
symbolized_allowed_options = allowed_options.map(&:to_sym)
|
53
|
+
symbolized_default_options = default_options.symbolize_keys
|
54
|
+
symbolized_options = options.to_h.symbolize_keys
|
55
|
+
|
56
|
+
symbolized_default_options.merge(symbolized_options.slice(*symbolized_allowed_options))
|
57
|
+
end
|
58
|
+
|
51
59
|
def colorize_error(error)
|
52
60
|
ColorizedString.new(error).light_red
|
53
61
|
end
|
data/lib/eien/cli/domains.rb
CHANGED
@@ -80,9 +80,9 @@ module Eien
|
|
80
80
|
require_context!(context)
|
81
81
|
require_app!(app)
|
82
82
|
|
83
|
-
|
84
|
-
|
85
|
-
|
83
|
+
attributes = require_options(::Eien::Domains::UpdateTask::ALLOWED_ATTRIBUTES, {
|
84
|
+
enabled: true,
|
85
|
+
})
|
86
86
|
|
87
87
|
::Eien::Domains::CreateTask.new(
|
88
88
|
context,
|
@@ -93,29 +93,6 @@ module Eien
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
# desc "update DOMAIN", "updates domain"
|
97
|
-
#
|
98
|
-
# domain_options
|
99
|
-
#
|
100
|
-
# def update(domain)
|
101
|
-
# rescue_and_exit do
|
102
|
-
# context = ::Eien.context_or_default(options[:context])
|
103
|
-
# app = ::Eien.app_or_default(options[:app])
|
104
|
-
#
|
105
|
-
# require_context!(context)
|
106
|
-
# require_app!(app)
|
107
|
-
#
|
108
|
-
# attributes = options.slice(*::Eien::Domains::UpdateTask::ALLOWED_ATTRIBUTES.map(&:to_s)).symbolize_keys
|
109
|
-
#
|
110
|
-
# ::Eien::Domains::UpdateTask.new(
|
111
|
-
# context,
|
112
|
-
# app,
|
113
|
-
# domain,
|
114
|
-
# **attributes
|
115
|
-
# ).run!
|
116
|
-
# end
|
117
|
-
# end
|
118
|
-
|
119
96
|
desc "delete DOMAIN", "deletes domain"
|
120
97
|
|
121
98
|
def delete(domain)
|
data/lib/eien/cli/processes.rb
CHANGED
@@ -85,9 +85,12 @@ module Eien
|
|
85
85
|
require_context!(context)
|
86
86
|
require_app!(app)
|
87
87
|
|
88
|
-
attributes =
|
89
|
-
|
90
|
-
|
88
|
+
attributes = require_options(::Eien::Processes::UpdateTask::ALLOWED_ATTRIBUTES, {
|
89
|
+
enabled: true,
|
90
|
+
config: "default",
|
91
|
+
secret: "default",
|
92
|
+
ports: {},
|
93
|
+
})
|
91
94
|
|
92
95
|
::Eien::Processes::CreateTask.new(
|
93
96
|
context,
|
@@ -110,10 +113,8 @@ module Eien
|
|
110
113
|
require_context!(context)
|
111
114
|
require_app!(app)
|
112
115
|
|
113
|
-
attributes =
|
116
|
+
attributes = require_options(::Eien::Processes::UpdateTask::ALLOWED_ATTRIBUTES)
|
114
117
|
attributes[:ports] = {} if options[:"no-ports"]
|
115
|
-
attributes[:config] = "default" unless options[:config]
|
116
|
-
attributes[:secret] = "default" unless options[:secret]
|
117
118
|
|
118
119
|
::Eien::Processes::UpdateTask.new(
|
119
120
|
context,
|
data/lib/eien/cli/routes.rb
CHANGED
@@ -82,7 +82,9 @@ module Eien
|
|
82
82
|
require_context!(context)
|
83
83
|
require_app!(app)
|
84
84
|
|
85
|
-
attributes =
|
85
|
+
attributes = require_options(::Eien::Routes::UpdateTask::ALLOWED_ATTRIBUTES, {
|
86
|
+
enabled: true,
|
87
|
+
})
|
86
88
|
|
87
89
|
::Eien::Routes::CreateTask.new(
|
88
90
|
context,
|
@@ -105,7 +107,7 @@ module Eien
|
|
105
107
|
require_context!(context)
|
106
108
|
require_app!(app)
|
107
109
|
|
108
|
-
attributes =
|
110
|
+
attributes = require_options(::Eien::Routes::UpdateTask::ALLOWED_ATTRIBUTES)
|
109
111
|
|
110
112
|
::Eien::Routes::UpdateTask.new(
|
111
113
|
context,
|
data/lib/eien/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eien
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ahmed Al Hafoudh
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-10-
|
11
|
+
date: 2022-10-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -365,7 +365,7 @@ licenses:
|
|
365
365
|
metadata:
|
366
366
|
homepage_uri: https://github.com/alhafoudh/eien
|
367
367
|
source_code_uri: https://github.com/alhafoudh/eien
|
368
|
-
post_install_message:
|
368
|
+
post_install_message:
|
369
369
|
rdoc_options: []
|
370
370
|
require_paths:
|
371
371
|
- lib
|
@@ -380,8 +380,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
380
|
- !ruby/object:Gem::Version
|
381
381
|
version: '0'
|
382
382
|
requirements: []
|
383
|
-
rubygems_version: 3.3.
|
384
|
-
signing_key:
|
383
|
+
rubygems_version: 3.3.7
|
384
|
+
signing_key:
|
385
385
|
specification_version: 4
|
386
386
|
summary: A command line tool that helps you deploy and manage apps in Kubernetes
|
387
387
|
test_files: []
|