Class: Gitlab::QA::Scenario::Test::Integration::Geo
- Inherits:
-
Gitlab::QA::Scenario::Template
- Object
- Gitlab::QA::Scenario::Template
- Gitlab::QA::Scenario::Test::Integration::Geo
- Defined in:
- lib/gitlab/qa/scenario/test/integration/geo.rb
Instance Method Summary collapse
-
#perform(release, *rspec_args) ⇒ Object
rubocop:disable Lint/MissingCopEnableDirective.
Methods inherited from Gitlab::QA::Scenario::Template
Instance Method Details
#perform(release, *rspec_args) ⇒ Object
rubocop:disable Lint/MissingCopEnableDirective
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 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 83 84 85 86 87 |
# File 'lib/gitlab/qa/scenario/test/integration/geo.rb', line 8 def perform(release, *rspec_args) release = QA::Release.new(release) raise ArgumentError, 'Geo is EE only!' unless release.ee? Runtime::Env.require_license! Component::Gitlab.perform do |primary| primary.release = release primary.name = 'gitlab-primary' primary.network = 'geo' primary.omnibus_configuration << " gitlab_rails['db_key_base'] = '4dd58204865eb41bca93bd38131d51cc';\n geo_primary_role['enable'] = true;\n gitlab_rails['db_password'] = 'mypass';\n gitlab_rails['db_pool'] = 5;\n gitlab_rails['geo_node_name'] = '\#{primary.name}';\n gitlab_rails['monitoring_whitelist'] = ['0.0.0.0/0'];\n gitlab_rails['packages_enabled'] = true;\n postgresql['listen_address'] = '0.0.0.0';\n postgresql['max_replication_slots'] = 1;\n postgresql['md5_auth_cidr_addresses'] = ['0.0.0.0/0'];\n postgresql['sql_user_password'] = 'e1d1469ec5f533651918b4567a3ed1ae';\n postgresql['trust_auth_cidr_addresses'] = ['0.0.0.0/0','0.0.0.0/0'];\n sidekiq['concurrency'] = 2;\n puma['worker_processes'] = 2;\n OMNIBUS\n primary.exec_commands = fast_ssh_key_lookup_commands + QA::Scenario::CLICommands.git_lfs_install_commands\n\n primary.instance do\n Component::Gitlab.perform do |secondary|\n secondary.release = release\n secondary.name = 'gitlab-secondary'\n secondary.network = 'geo'\n secondary.omnibus_configuration << <<~OMNIBUS\n geo_secondary['db_fdw'] = true;\n geo_secondary_role['enable'] = true;\n gitlab_rails['db_key_base'] = '4dd58204865eb41bca93bd38131d51cc';\n gitlab_rails['db_password'] = 'mypass';\n gitlab_rails['db_pool'] = 5;\n gitlab_rails['geo_node_name'] = '\#{secondary.name}';\n gitlab_rails['monitoring_whitelist'] = ['0.0.0.0/0'];\n gitlab_rails['packages_enabled'] = true;\n postgresql['listen_address'] = '0.0.0.0';\n postgresql['md5_auth_cidr_addresses'] = ['0.0.0.0/0'];\n postgresql['sql_user_password'] = 'e1d1469ec5f533651918b4567a3ed1ae';\n sidekiq['concurrency'] = 2;\n puma['worker_processes'] = 2;\n OMNIBUS\n secondary.exec_commands = fast_ssh_key_lookup_commands + QA::Scenario::CLICommands.git_lfs_install_commands\n\n secondary.act do\n # TODO, we do not wait for secondary to start because of\n # https://gitlab.com/gitlab-org/gitlab-ee/issues/3999\n #\n # rubocop:disable Style/Semicolon\n prepare; start; reconfigure; process_exec_commands\n\n # shellout to instance specs\n puts 'Running Geo primary / secondary specs!'\n\n Component::Specs.perform do |specs|\n specs.suite = 'QA::EE::Scenario::Test::Geo'\n specs.release = release\n specs.network = 'geo'\n specs.args = [\n '--primary-address', primary.address,\n '--primary-name', primary.name,\n '--secondary-address', secondary.address,\n '--secondary-name', secondary.name,\n *rspec_args\n ]\n end\n\n teardown\n end\n end\n end\n end\nend\n" |