Module: GDK

Defined in:
lib/gdk.rb,
lib/gdk/logo.rb,
lib/gdk/hooks.rb,
lib/gdk/redis.rb,
lib/gdk/vault.rb,
lib/gdk/backup.rb,
lib/gdk/config.rb,
lib/gdk/output.rb,
lib/gdk/command.rb,
lib/gdk/execute.rb,
lib/gdk/machine.rb,
lib/gdk/project.rb,
lib/gdk/open_bao.rb,
lib/gdk/services.rb,
lib/gdk/test_url.rb,
lib/gdk/telemetry.rb,
lib/gdk/templates.rb,
lib/gdk/clickhouse.rb,
lib/gdk/diagnostic.rb,
lib/gdk/postgresql.rb,
lib/gdk/command/bao.rb,
lib/gdk/command/env.rb,
lib/gdk/command/run.rb,
lib/gdk/config_type.rb,
lib/gdk/http_helper.rb,
lib/gdk/announcement.rb,
lib/gdk/command/help.rb,
lib/gdk/command/kill.rb,
lib/gdk/command/open.rb,
lib/gdk/command/psql.rb,
lib/gdk/command/stop.rb,
lib/gdk/command/tail.rb,
lib/gdk/command/thin.rb,
lib/gdk/dependencies.rb,
lib/gdk/execute/rake.rb,
lib/gdk/port_manager.rb,
lib/gdk/project/base.rb,
lib/gdk/task_helpers.rb,
lib/gdk/announcements.rb,
lib/gdk/command/cells.rb,
lib/gdk/command/rails.rb,
lib/gdk/command/start.rb,
lib/gdk/command/trust.rb,
lib/gdk/services/base.rb,
lib/gdk/command/config.rb,
lib/gdk/command/doctor.rb,
lib/gdk/command/status.rb,
lib/gdk/command/update.rb,
lib/gdk/config_example.rb,
lib/gdk/diagnostic/geo.rb,
lib/gdk/postgresql_geo.rb,
lib/gdk/services/minio.rb,
lib/gdk/services/redis.rb,
lib/gdk/services/vault.rb,
lib/gdk/command/cleanup.rb,
lib/gdk/command/install.rb,
lib/gdk/command/restart.rb,
lib/gdk/command/version.rb,
lib/gdk/config_settings.rb,
lib/gdk/diagnostic/asdf.rb,
lib/gdk/diagnostic/base.rb,
lib/gdk/output_buffered.rb,
lib/gdk/package_helpers.rb,
lib/gdk/command/evaluate.rb,
lib/gdk/command/pristine.rb,
lib/gdk/command/psql_geo.rb,
lib/gdk/config_type/base.rb,
lib/gdk/config_type/bool.rb,
lib/gdk/config_type/hash.rb,
lib/gdk/config_type/path.rb,
lib/gdk/config_type/port.rb,
lib/gdk/diagnostic/nginx.rb,
lib/gdk/command/redis_cli.rb,
lib/gdk/command/telemetry.rb,
lib/gdk/config_type/array.rb,
lib/gdk/diagnostic/gitaly.rb,
lib/gdk/diagnostic/gitlab.rb,
lib/gdk/diagnostic/golang.rb,
lib/gdk/diagnostic/pguser.rb,
lib/gdk/diagnostic/status.rb,
lib/gdk/services/open_bao.rb,
lib/gdk/services/required.rb,
lib/gdk/templates/context.rb,
lib/gdk/cells_port_manager.rb,
lib/gdk/command/clickhouse.rb,
lib/gdk/command/debug_info.rb,
lib/gdk/command/reset_data.rb,
lib/gdk/config_type/string.rb,
lib/gdk/diagnostic/bundler.rb,
lib/gdk/diagnostic/version.rb,
lib/gdk/diagnostic/workerd.rb,
lib/gdk/services/open_ldap.rb,
lib/gdk/services/rails_web.rb,
lib/gdk/command/diff_config.rb,
lib/gdk/command/measure_url.rb,
lib/gdk/command/reconfigure.rb,
lib/gdk/config_type/builder.rb,
lib/gdk/config_type/integer.rb,
lib/gdk/diagnostic/hostname.rb,
lib/gdk/diagnostic/praefect.rb,
lib/gdk/postgresql_upgrader.rb,
lib/gdk/services/clickhouse.rb,
lib/gdk/services/postgresql.rb,
lib/gdk/command/base_command.rb,
lib/gdk/command/measure_base.rb,
lib/gdk/config_type/anything.rb,
lib/gdk/config_type/mergable.rb,
lib/gdk/config_type/settings.rb,
lib/gdk/dependencies/checker.rb,
lib/gdk/diagnostic/mac_ports.rb,
lib/gdk/diagnostic/ruby_gems.rb,
lib/gdk/project/git_worktree.rb,
lib/gdk/diagnostic/postgresql.rb,
lib/gdk/diagnostic/stale_data.rb,
lib/gdk/diagnostic/environment.rb,
lib/gdk/services/redis_cluster.rb,
lib/gdk/templates/erb_renderer.rb,
lib/gdk/diagnostic/chromedriver.rb,
lib/gdk/diagnostic/dependencies.rb,
lib/gdk/diagnostic/file_watches.rb,
lib/gdk/diagnostic/rvm_and_asdf.rb,
lib/gdk/command/measure_workflow.rb,
lib/gdk/diagnostic/configuration.rb,
lib/gdk/diagnostic/stale_services.rb,
lib/gdk/services/gitlab_workhorse.rb,
lib/gdk/task_helpers/config_tasks.rb,
lib/gdk/config_type/settings_array.rb,
lib/gdk/diagnostic/git_maintenance.rb,
lib/gdk/services/gitlab_ai_gateway.rb,
lib/gdk/command/reset_praefect_data.rb,
lib/gdk/services/gitlab_http_router.rb,
lib/gdk/services/postgresql_replica.rb,
lib/gdk/dependencies/gitlab_versions.rb,
lib/gdk/task_helpers/rails_migration.rb,
lib/gdk/diagnostic/pending_migrations.rb,
lib/gdk/command/truncate_legacy_tables.rb,
lib/gdk/services/rails_background_jobs.rb,
lib/gdk/services/gitlab_topology_service.rb,
gem/lib/gitlab_development_kit.rb

Overview

GitLab Development Kit

Defined Under Namespace

Modules: Command, ConfigType, Dependencies, Diagnostic, Execute, Hooks, Logo, Machine, Output, Project, Services, TaskHelpers, Telemetry, Templates Classes: Announcement, Announcements, Backup, CellsPortManager, Clickhouse, Config, ConfigExample, ConfigSettings, HTTPHelper, OpenBao, OutputBuffered, PackageHelpers, PortManager, Postgresql, PostgresqlGeo, PostgresqlUpgrader, Redis, TestURL, Vault

Constant Summary collapse

StandardErrorWithMessage =
Class.new(StandardError)
HookCommandError =
Class.new(StandardError)
REQUIRED_GEM_VERSION =

requires ‘gitlab-development-kit` gem to be at least this version

'0.2.18'
PROGNAME =
'gdk'
MAKE =
RUBY_PLATFORM.include?('bsd') ? 'gmake' : 'make'
GEM_VERSION =
'0.2.18'
VERSION =
"GitLab Development Kit #{GEM_VERSION}".freeze

Class Method Summary collapse

Class Method Details

.configObject



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

def self.config
  @config ||= GDK::Config.load_from_file
end

.mainObject

Entry point for the GDK binary.

Do not remove because we need to support that use case where a new GDK binary calls older GDK code.



40
41
42
43
44
# File 'lib/gdk.rb', line 40

def self.main
  setup_rake

  Command.run(ARGV)
end

.make(*targets, env: {}) ⇒ Object



63
64
65
66
67
# File 'lib/gdk.rb', line 63

def self.make(*targets, env: {})
  sh = Shellout.new(MAKE, targets, chdir: GDK.root, env: env)
  sh.stream
  sh
end

.rootPathname

Return the path to the GDK base path

Returns:

  • (Pathname)

    path to GDK base directory



59
60
61
# File 'lib/gdk.rb', line 59

def self.root
  Pathname.new($gdk_root || Pathname.new(__dir__).parent) # rubocop:disable Style/GlobalVars
end

.setup_rakeObject



46
47
48
49
50
# File 'lib/gdk.rb', line 46

def self.setup_rake
  require 'rake'
  Rake.application.init('rake', %W[--rakefile #{GDK.root}/Rakefile])
  Rake.application.load_rakefile
end