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.3'
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
113
114
115
|
# File 'lib/kuby.rb', line 113
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
|
# 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
user(DEFAULT_DB_USER) if respond_to?(:user)
password(DEFAULT_DB_PASSWORD) if respond_to?(:password)
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
105
106
107
|
# File 'lib/kuby.rb', line 105
def distros
@distros ||= {}
end
|
.env ⇒ Object
144
145
146
147
148
|
# File 'lib/kuby.rb', line 144
def env
ENV.fetch('KUBY_ENV') do
(@env || Rails.env rescue nil || DEFAULT_ENV).to_s
end
end
|
.env=(env_name) ⇒ Object
140
141
142
|
# File 'lib/kuby.rb', line 140
def env=(env_name)
@env = env_name.to_s
end
|
.environment(name = env) ⇒ Object
82
83
84
85
86
87
|
# File 'lib/kuby.rb', line 82
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
136
137
138
|
# File 'lib/kuby.rb', line 136
def packages
@packages ||= {}
end
|
.plugins ⇒ Object
109
110
111
|
# File 'lib/kuby.rb', line 109
def plugins
@plugins ||= PluginRegistry.new
end
|
.providers ⇒ Object
93
94
95
|
# File 'lib/kuby.rb', line 93
def providers
@providers ||= {}
end
|
.register_distro(distro_name, distro_klass) ⇒ Object
101
102
103
|
# File 'lib/kuby.rb', line 101
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
97
98
99
|
# File 'lib/kuby.rb', line 97
def register_plugin(*args, **kwargs)
plugins.register(*args, **kwargs)
end
|
.register_provider(provider_name, provider_klass) ⇒ Object
89
90
91
|
# File 'lib/kuby.rb', line 89
def register_provider(provider_name, provider_klass)
providers[provider_name] = provider_klass
end
|