Module: Kuby

Defined in:
lib/kuby.rb,
lib/kuby/tasks.rb,
lib/kuby/docker.rb,
lib/kuby/railtie.rb,
lib/kuby/version.rb,
lib/kuby/cli_base.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/basic_logger.rb,
lib/kuby/docker/phase.rb,
lib/kuby/docker/alpine.rb,
lib/kuby/docker/debian.rb,
lib/kuby/docker/errors.rb,
lib/kuby/trailing_hash.rb,
lib/kuby/docker/metadata.rb,
lib/kuby/docker/packages.rb,
lib/kuby/kubernetes/spec.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/kubernetes/plugin.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/kubernetes/plugins.rb,
lib/kuby/docker/assets_phase.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/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/kubernetes/docker_config.rb,
lib/kuby/kubernetes/registry_secret.rb,
lib/kuby/kubernetes/minikube_provider.rb,
lib/kuby/kubernetes/plugins/rails_app.rb,
lib/kuby/docker/packages/managed_package.rb,
lib/kuby/kubernetes/plugins/nginx_ingress.rb,
lib/kuby/kubernetes/plugins/rails_app/mysql.rb,
lib/kuby/kubernetes/plugins/rails_app/plugin.rb,
lib/kuby/kubernetes/plugins/rails_app/sqlite.rb,
lib/kuby/kubernetes/plugins/rails_app/database.rb,
lib/kuby/kubernetes/plugins/rails_app/postgres.rb,
lib/kuby/docker/packages/simple_managed_package.rb,
lib/kuby/kubernetes/plugins/rails_app/rewrite_db_config.rb

Defined Under Namespace

Modules: Docker, Kubernetes, Middleware Classes: BasicLogger, CLIBase, Definition, Railtie, Tasks, TrailingHash, UndefinedEnvironmentError

Constant Summary collapse

VERSION =
'0.4.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.definition(environment = env) ⇒ Object (readonly)

Returns the value of attribute definition.



21
22
23
# File 'lib/kuby.rb', line 21

def definition
  @definition
end

.loggerObject

Returns the value of attribute logger.



22
23
24
# File 'lib/kuby.rb', line 22

def logger
  @logger
end

Class Method Details

.define(environment, app = Rails.application, &block) ⇒ Object



24
25
26
27
# File 'lib/kuby.rb', line 24

def define(environment, app = Rails.application, &block)
  environment = environment.to_s
  definitions[environment] ||= Definition.new(environment, app, &block)
end

.definitionsObject



29
30
31
# File 'lib/kuby.rb', line 29

def definitions
  @definitions ||= {}
end

.distrosObject



56
57
58
# File 'lib/kuby.rb', line 56

def distros
  @distros ||= {}
end

.envObject



87
88
89
90
91
# File 'lib/kuby.rb', line 87

def env
  ENV.fetch('KUBY_ENV') do
    (definitions.keys.first || Rails.env).to_s
  end
end

.packagesObject



83
84
85
# File 'lib/kuby.rb', line 83

def packages
  @packages ||= {}
end

.pluginsObject



60
61
62
# File 'lib/kuby.rb', line 60

def plugins
  @plugins ||= {}
end

.providersObject



44
45
46
# File 'lib/kuby.rb', line 44

def providers
  @providers ||= {}
end

.register_distro(distro_name, distro_klass) ⇒ Object



52
53
54
# File 'lib/kuby.rb', line 52

def register_distro(distro_name, distro_klass)
  distros[distro_name] = distro_klass
end

.register_package(package_name, package_def = nil) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/kuby.rb', line 64

def register_package(package_name, package_def = nil)
  packages[package_name] = case package_def
    when NilClass
      Kuby::Docker::Packages::SimpleManagedPackage.new(
        package_name
      )
    when String
      Kuby::Docker::Packages::SimpleManagedPackage.new(
        package_def
      )
    when Hash
      Kuby::Docker::Packages::ManagedPackage.new(
        package_name, package_def
      )
    else
      package_def.new(package_name)
  end
end

.register_plugin(plugin_name, plugin_klass) ⇒ Object



48
49
50
# File 'lib/kuby.rb', line 48

def register_plugin(plugin_name, plugin_klass)
  plugins[plugin_name] = plugin_klass
end

.register_provider(provider_name, provider_klass) ⇒ Object



40
41
42
# File 'lib/kuby.rb', line 40

def register_provider(provider_name, provider_klass)
  providers[provider_name] = provider_klass
end