kuby-core 0.8.1 → 0.9.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -1
  3. data/README.md +11 -1
  4. data/bin/kuby +4 -0
  5. data/kuby-core.gemspec +5 -2
  6. data/lib/kuby.rb +46 -18
  7. data/lib/kuby/basic_logger.rb +13 -0
  8. data/lib/kuby/cli_base.rb +81 -8
  9. data/lib/kuby/commands.rb +220 -0
  10. data/lib/kuby/definition.rb +1 -3
  11. data/lib/kuby/dev_setup.rb +255 -0
  12. data/lib/kuby/docker.rb +1 -0
  13. data/lib/kuby/docker/bundler_phase.rb +3 -3
  14. data/lib/kuby/docker/cli.rb +13 -1
  15. data/lib/kuby/docker/dev_spec.rb +131 -0
  16. data/lib/kuby/docker/dockerfile.rb +16 -1
  17. data/lib/kuby/docker/layer_stack.rb +4 -0
  18. data/lib/kuby/docker/local_tags.rb +4 -0
  19. data/lib/kuby/docker/metadata.rb +0 -22
  20. data/lib/kuby/docker/setup_phase.rb +3 -2
  21. data/lib/kuby/docker/spec.rb +31 -5
  22. data/lib/kuby/environment.rb +10 -1
  23. data/lib/kuby/kubernetes.rb +9 -9
  24. data/lib/kuby/kubernetes/deploy_task.rb +4 -0
  25. data/lib/kuby/kubernetes/deployer.rb +63 -11
  26. data/lib/kuby/kubernetes/{minikube_provider.rb → docker_desktop_provider.rb} +4 -4
  27. data/lib/kuby/kubernetes/provider.rb +8 -4
  28. data/lib/kuby/kubernetes/spec.rb +23 -22
  29. data/lib/kuby/plugin_registry.rb +27 -0
  30. data/lib/kuby/plugins/rails_app/generators/kuby.rb +3 -15
  31. data/lib/kuby/plugins/rails_app/plugin.rb +230 -40
  32. data/lib/kuby/rails_commands.rb +89 -0
  33. data/lib/kuby/railtie.rb +0 -4
  34. data/lib/kuby/tasks.rb +76 -23
  35. data/lib/kuby/version.rb +1 -1
  36. data/spec/docker/metadata_spec.rb +0 -108
  37. data/spec/docker/spec_spec.rb +266 -0
  38. data/spec/spec_helper.rb +8 -1
  39. metadata +44 -9
  40. data/lib/kuby/tasks/kuby.rake +0 -70
@@ -22,6 +22,8 @@ require 'support/docker/fake_cli'
22
22
  #
23
23
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
24
24
 
25
+ Kuby.register_package(:fake_package)
26
+
25
27
  module SpecHelpers
26
28
  extend RSpec::SharedContext
27
29
 
@@ -52,10 +54,15 @@ module SpecHelpers
52
54
  end
53
55
 
54
56
  image_url context.docker_image_url
57
+
58
+ # puma isn't in our gemspec or Gemfile, so we have to manually
59
+ # set the webserver here (this won't be a problem for actual
60
+ # rails apps)
61
+ webserver_phase.webserver = :puma
55
62
  end
56
63
 
57
64
  kubernetes do
58
- provider :minikube
65
+ provider :docker_desktop
59
66
 
60
67
  add_plugin :rails_app do
61
68
  root File.expand_path(File.join(*%w(. dummy)), __dir__)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuby-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Dutro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-31 00:00:00.000000000 Z
11
+ date: 2020-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: gli
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: helm-cli
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.3'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.3'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: krane
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -92,28 +120,28 @@ dependencies:
92
120
  requirements:
93
121
  - - ">="
94
122
  - !ruby/object:Gem::Version
95
- version: '0.5'
123
+ version: '0.6'
96
124
  type: :runtime
97
125
  prerelease: false
98
126
  version_requirements: !ruby/object:Gem::Requirement
99
127
  requirements:
100
128
  - - ">="
101
129
  - !ruby/object:Gem::Version
102
- version: '0.5'
130
+ version: '0.6'
103
131
  - !ruby/object:Gem::Dependency
104
132
  name: kubernetes-cli
105
133
  requirement: !ruby/object:Gem::Requirement
106
134
  requirements:
107
135
  - - "~>"
108
136
  - !ruby/object:Gem::Version
109
- version: '0.2'
137
+ version: '0.3'
110
138
  type: :runtime
111
139
  prerelease: false
112
140
  version_requirements: !ruby/object:Gem::Requirement
113
141
  requirements:
114
142
  - - "~>"
115
143
  - !ruby/object:Gem::Version
116
- version: '0.2'
144
+ version: '0.3'
117
145
  - !ruby/object:Gem::Dependency
118
146
  name: railties
119
147
  requirement: !ruby/object:Gem::Requirement
@@ -159,7 +187,8 @@ dependencies:
159
187
  description: Deploy your Rails app onto Kubernetes the easy way.
160
188
  email:
161
189
  - camertron@gmail.com
162
- executables: []
190
+ executables:
191
+ - kuby
163
192
  extensions: []
164
193
  extra_rdoc_files: []
165
194
  files:
@@ -168,11 +197,14 @@ files:
168
197
  - LICENSE
169
198
  - README.md
170
199
  - Rakefile
200
+ - bin/kuby
171
201
  - kuby-core.gemspec
172
202
  - lib/kuby.rb
173
203
  - lib/kuby/basic_logger.rb
174
204
  - lib/kuby/cli_base.rb
205
+ - lib/kuby/commands.rb
175
206
  - lib/kuby/definition.rb
207
+ - lib/kuby/dev_setup.rb
176
208
  - lib/kuby/docker.rb
177
209
  - lib/kuby/docker/alpine.rb
178
210
  - lib/kuby/docker/assets_phase.rb
@@ -181,6 +213,7 @@ files:
181
213
  - lib/kuby/docker/copy_phase.rb
182
214
  - lib/kuby/docker/credentials.rb
183
215
  - lib/kuby/docker/debian.rb
216
+ - lib/kuby/docker/dev_spec.rb
184
217
  - lib/kuby/docker/dockerfile.rb
185
218
  - lib/kuby/docker/errors.rb
186
219
  - lib/kuby/docker/inline_layer.rb
@@ -208,15 +241,16 @@ files:
208
241
  - lib/kuby/kubernetes/deploy_task.rb
209
242
  - lib/kuby/kubernetes/deployer.rb
210
243
  - lib/kuby/kubernetes/docker_config.rb
244
+ - lib/kuby/kubernetes/docker_desktop_provider.rb
211
245
  - lib/kuby/kubernetes/errors.rb
212
246
  - lib/kuby/kubernetes/manifest.rb
213
- - lib/kuby/kubernetes/minikube_provider.rb
214
247
  - lib/kuby/kubernetes/provider.rb
215
248
  - lib/kuby/kubernetes/registry_secret.rb
216
249
  - lib/kuby/kubernetes/spec.rb
217
250
  - lib/kuby/middleware.rb
218
251
  - lib/kuby/middleware/health_check.rb
219
252
  - lib/kuby/plugin.rb
253
+ - lib/kuby/plugin_registry.rb
220
254
  - lib/kuby/plugins.rb
221
255
  - lib/kuby/plugins/nginx_ingress.rb
222
256
  - lib/kuby/plugins/rails_app.rb
@@ -230,12 +264,13 @@ files:
230
264
  - lib/kuby/plugins/rails_app/rewrite_db_config.rb
231
265
  - lib/kuby/plugins/rails_app/sqlite.rb
232
266
  - lib/kuby/plugins/rails_app/tasks.rake
267
+ - lib/kuby/rails_commands.rb
233
268
  - lib/kuby/railtie.rb
234
269
  - lib/kuby/tasks.rb
235
- - lib/kuby/tasks/kuby.rake
236
270
  - lib/kuby/trailing_hash.rb
237
271
  - lib/kuby/version.rb
238
272
  - spec/docker/metadata_spec.rb
273
+ - spec/docker/spec_spec.rb
239
274
  - spec/docker/timestamp_tag_spec.rb
240
275
  - spec/dummy/Gemfile
241
276
  - spec/dummy/Gemfile.lock
@@ -1,70 +0,0 @@
1
- require 'shellwords'
2
-
3
- namespace :kuby do
4
- def tasks
5
- Kuby.load!
6
- @tasks ||= Kuby::Tasks.new(Kuby.environment)
7
- end
8
-
9
- task :dockerfile do
10
- tasks.print_dockerfile
11
- end
12
-
13
- task :build do
14
- tasks.build
15
- end
16
-
17
- task :run do
18
- tasks.run
19
- end
20
-
21
- task :push do
22
- tasks.push
23
- end
24
-
25
- task :resources do
26
- tasks.print_resources
27
- end
28
-
29
- task :kubectl, [:cmd] do |_, args|
30
- tasks.kubectl(Shellwords.shellsplit(args[:cmd]))
31
- end
32
-
33
- task :deploy do
34
- tasks.deploy
35
- end
36
-
37
- task :rollback do
38
- tasks.rollback
39
- end
40
-
41
- task :kubeconfig do
42
- tasks.print_kubeconfig
43
- end
44
-
45
- task :setup do
46
- tasks.setup
47
- end
48
-
49
- namespace :remote do
50
- task :logs do
51
- tasks.remote_logs
52
- end
53
-
54
- task :status do
55
- tasks.remote_status
56
- end
57
-
58
- task :shell do
59
- tasks.remote_shell
60
- end
61
-
62
- task :console do
63
- tasks.remote_console
64
- end
65
-
66
- task :dbconsole do
67
- tasks.remote_dbconsole
68
- end
69
- end
70
- end