Module: Kuby
- Defined in:
- lib/kuby/plugin.rb,
lib/kuby.rb,
lib/kuby/tasks.rb,
lib/kuby/docker.rb,
lib/kuby/plugins.rb,
lib/kuby/railtie.rb,
lib/kuby/version.rb,
lib/kuby/cli_base.rb,
lib/kuby/commands.rb,
lib/kuby/dev_setup.rb,
lib/kuby/definition.rb,
lib/kuby/docker/cli.rb,
lib/kuby/kubernetes.rb,
lib/kuby/middleware.rb,
lib/kuby/docker/spec.rb,
lib/kuby/docker/tags.rb,
lib/kuby/environment.rb,
lib/kuby/basic_logger.rb,
lib/kuby/docker/layer.rb,
lib/kuby/docker/alpine.rb,
lib/kuby/docker/debian.rb,
lib/kuby/docker/distro.rb,
lib/kuby/docker/errors.rb,
lib/kuby/trailing_hash.rb,
lib/kuby/rails_commands.rb,
lib/kuby/docker/dev_spec.rb,
lib/kuby/docker/metadata.rb,
lib/kuby/docker/packages.rb,
lib/kuby/kubernetes/spec.rb,
lib/kuby/plugin_registry.rb,
lib/kuby/docker/copy_phase.rb,
lib/kuby/docker/dockerfile.rb,
lib/kuby/docker/local_tags.rb,
lib/kuby/docker/yarn_phase.rb,
lib/kuby/kubernetes/errors.rb,
lib/kuby/plugins/rails_app.rb,
lib/kuby/docker/credentials.rb,
lib/kuby/docker/layer_stack.rb,
lib/kuby/docker/remote_tags.rb,
lib/kuby/docker/setup_phase.rb,
lib/kuby/docker/assets_phase.rb,
lib/kuby/docker/inline_layer.rb,
lib/kuby/docker/package_list.rb,
lib/kuby/kubernetes/deployer.rb,
lib/kuby/kubernetes/manifest.rb,
lib/kuby/kubernetes/provider.rb,
lib/kuby/docker/bundler_phase.rb,
lib/kuby/docker/package_phase.rb,
lib/kuby/docker/packages/yarn.rb,
lib/kuby/docker/timestamp_tag.rb,
lib/kuby/plugins/nginx_ingress.rb,
lib/kuby/docker/packages/nodejs.rb,
lib/kuby/docker/webserver_phase.rb,
lib/kuby/kubernetes/deploy_task.rb,
lib/kuby/docker/packages/package.rb,
lib/kuby/middleware/health_check.rb,
lib/kuby/plugins/rails_app/mysql.rb,
lib/kuby/kubernetes/docker_config.rb,
lib/kuby/plugins/rails_app/assets.rb,
lib/kuby/plugins/rails_app/plugin.rb,
lib/kuby/plugins/rails_app/sqlite.rb,
lib/kuby/kubernetes/registry_secret.rb,
lib/kuby/plugins/rails_app/database.rb,
lib/kuby/plugins/rails_app/postgres.rb,
lib/kuby/docker/packages/managed_package.rb,
lib/kuby/plugins/rails_app/asset_copy_task.rb,
lib/kuby/kubernetes/docker_desktop_provider.rb,
lib/kuby/plugins/rails_app/rewrite_db_config.rb,
lib/kuby/docker/packages/simple_managed_package.rb
Overview
Defined Under Namespace
Modules: Docker, Kubernetes, Middleware, Plugins
Classes: Args, BasicLogger, CLIBase, Commands, Definition, DevSetup, Environment, MissingConfigError, Pipe, Pipes, Plugin, PluginRegistry, RailsCommands, Railtie, SetupTask, SetupTaskList, Spinner, Tasks, TrailingHash, UndefinedEnvironmentError
Constant Summary
collapse
- DEFAULT_ENV =
'development'.freeze
- DEFAULT_DB_USER =
'root'.freeze
- DEFAULT_DB_PASSWORD =
'password'.freeze
- VERSION =
'0.11.6'.freeze
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.definition ⇒ Object
Returns the value of attribute definition.
36
37
38
|
# File 'lib/kuby.rb', line 36
def definition
@definition
end
|
.logger ⇒ Object
115
116
117
|
# File 'lib/kuby.rb', line 115
def logger
@logger ||= BasicLogger.new(STDERR)
end
|
Class Method Details
.define(name, &block) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/kuby.rb', line 49
def define(name, &block)
raise 'Kuby is already configured' if @definition
@definition = Definition.new(name.to_s)
@definition.instance_eval(&block)
@definition.environment(:development) do
kubernetes do
add_plugin(:rails_app) do
tls_enabled false
database do
if requires_credentials?
user(DEFAULT_DB_USER)
password(DEFAULT_DB_PASSWORD)
end
end
end
provider :docker_desktop
end
end
@definition.environments.each do |_, env|
env.kubernetes.after_configuration
end
@definition.environments.each do |_, env|
env.configured = true
end
@definition
end
|
.distros ⇒ Object
107
108
109
|
# File 'lib/kuby.rb', line 107
def distros
@distros ||= {}
end
|
.env ⇒ Object
146
147
148
149
150
|
# File 'lib/kuby.rb', line 146
def env
ENV.fetch('KUBY_ENV') do
(@env || Rails.env rescue nil || DEFAULT_ENV).to_s
end
end
|
.env=(env_name) ⇒ Object
142
143
144
|
# File 'lib/kuby.rb', line 142
def env=(env_name)
@env = env_name.to_s
end
|
.environment(name = env) ⇒ Object
84
85
86
87
88
89
|
# File 'lib/kuby.rb', line 84
def environment(name = env)
definition.environment(name.to_s) || raise(
UndefinedEnvironmentError, "couldn't find a Kuby environment named "\
"'#{name}'"
)
end
|
.load!(config_file = nil) ⇒ Object
39
40
41
42
43
44
45
46
47
|
# File 'lib/kuby.rb', line 39
def load!(config_file = nil)
config_file ||= ENV['KUBY_CONFIG'] || File.join('.', 'kuby.rb')
unless File.exist?(config_file)
raise MissingConfigError, "couldn't find Kuby config file at #{config_file}"
end
require config_file
end
|
.packages ⇒ Object
138
139
140
|
# File 'lib/kuby.rb', line 138
def packages
@packages ||= {}
end
|
.plugins ⇒ Object
111
112
113
|
# File 'lib/kuby.rb', line 111
def plugins
@plugins ||= PluginRegistry.new
end
|
.providers ⇒ Object
95
96
97
|
# File 'lib/kuby.rb', line 95
def providers
@providers ||= {}
end
|
.register_distro(distro_name, distro_klass) ⇒ Object
103
104
105
|
# File 'lib/kuby.rb', line 103
def register_distro(distro_name, distro_klass)
distros[distro_name] = distro_klass
end
|
.register_package(package_name, package_def = nil) ⇒ Object
.register_plugin(*args, **kwargs) ⇒ Object
99
100
101
|
# File 'lib/kuby.rb', line 99
def register_plugin(*args, **kwargs)
plugins.register(*args, **kwargs)
end
|
.register_provider(provider_name, provider_klass) ⇒ Object
91
92
93
|
# File 'lib/kuby.rb', line 91
def register_provider(provider_name, provider_klass)
providers[provider_name] = provider_klass
end
|