gitlab-qa 5.15.0 → 5.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32ae85f17e98b415ac5fddd505d5cf9d37462bbcc5b0eabee7584c3a26803542
4
- data.tar.gz: 62ea7475a8d3eddb193a975c440fc19b2177ea612ecf8a02d9bbf9a8c926f177
3
+ metadata.gz: bc79855be61afd8dfaef793cb1a6520bde1f07f6c44a18b9fdd605e26ac947c4
4
+ data.tar.gz: d326f64befb861020097fd55b9772b54d7014509e87c5c13c71e619c11a21a65
5
5
  SHA512:
6
- metadata.gz: 35e187728145ac187fda0dbe3b41b24d44adc52a3cb8718083736ccf0e36f06a089c74e97db983b4b40f2eb432fa847c440208e083df24d8f9a5df76a495b0d7
7
- data.tar.gz: a7e08091352126ada545f61b6d7a940e0eb87f4ec9d9753fa0521244c2f35b209a0474eb158b7e82486ee7fe5ae59047d3748fd6aadd36922d96b9520081b177
6
+ metadata.gz: e497734ed2d4d9d58c2dcdf051eb3a4a6ad02adcfc7954ae54ac83ee912b47ff0d6f8478ea6e272a8a93feb14cdda8d55632fb0f92e97379596a12b67ee25f57
7
+ data.tar.gz: fc927589ca591708a7b61341acf69d48125812642ce9ca87f0183cf11bcf14c55d6bfa8bb04fe1cf3c4685e1d4da0781bab6af15a942c0675ae149fac8b20704
@@ -832,6 +832,44 @@ ee:praefect-quarantine:
832
832
  QA_CAN_TEST_PRAEFECT: "true"
833
833
  QA_RSPEC_TAGS: "--tag quarantine --tag ~orchestrated"
834
834
 
835
+ ce:gitaly-cluster:
836
+ extends:
837
+ - .test
838
+ - .high-capacity
839
+ - .ce-qa
840
+ - .rspec-report-opts
841
+ variables:
842
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
843
+
844
+ ce:gitaly-cluster-quarantine:
845
+ extends:
846
+ - .test
847
+ - .high-capacity
848
+ - .ce-qa
849
+ - .quarantine
850
+ - .rspec-report-opts
851
+ variables:
852
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
853
+
854
+ ee:gitaly-cluster:
855
+ extends:
856
+ - .test
857
+ - .high-capacity
858
+ - .ee-qa
859
+ - .rspec-report-opts
860
+ variables:
861
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
862
+
863
+ ee:gitaly-cluster-quarantine:
864
+ extends:
865
+ - .test
866
+ - .high-capacity
867
+ - .ee-qa
868
+ - .quarantine
869
+ - .rspec-report-opts
870
+ variables:
871
+ QA_SCENARIO: "Test::Integration::GitalyCluster"
872
+
835
873
  ce:smtp:
836
874
  extends:
837
875
  - .test
@@ -893,7 +931,8 @@ ee:jira-quarantine:
893
931
  staging:
894
932
  script:
895
933
  - unset EE_LICENSE
896
- - exe/gitlab-qa Test::Instance::Staging
934
+ - 'echo "Running: exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS"'
935
+ - exe/gitlab-qa Test::Instance::Staging ${RELEASE:=$DEFAULT_RELEASE} -- $QA_TESTS $QA_RSPEC_TAGS
897
936
  extends:
898
937
  - .test
899
938
  - .high-capacity
@@ -54,7 +54,7 @@ module Gitlab
54
54
  autoload :Praefect, 'gitlab/qa/scenario/test/integration/praefect'
55
55
  autoload :Elasticsearch, 'gitlab/qa/scenario/test/integration/elasticsearch'
56
56
  autoload :SMTP, 'gitlab/qa/scenario/test/integration/smtp'
57
- autoload :GitalyHA, 'gitlab/qa/scenario/test/integration/gitaly_ha'
57
+ autoload :GitalyCluster, 'gitlab/qa/scenario/test/integration/gitaly_cluster'
58
58
  autoload :Jira, 'gitlab/qa/scenario/test/integration/jira'
59
59
  end
60
60
 
@@ -42,6 +42,16 @@ module Gitlab
42
42
  end
43
43
 
44
44
  def instance
45
+ instance_no_teardown do
46
+ yield self if block_given?
47
+ end
48
+ ensure
49
+ teardown
50
+ end
51
+
52
+ alias_method :launch_and_teardown_instance, :instance
53
+
54
+ def instance_no_teardown
45
55
  prepare
46
56
  start
47
57
  reconfigure
@@ -49,12 +59,8 @@ module Gitlab
49
59
  process_exec_commands
50
60
 
51
61
  yield self if block_given?
52
- ensure
53
- teardown
54
62
  end
55
63
 
56
- alias_method :launch_and_teardown_instance, :instance
57
-
58
64
  def prepare
59
65
  prepare_docker_image
60
66
  prepare_network
@@ -4,8 +4,9 @@ module Gitlab
4
4
  class Command
5
5
  attr_reader :args
6
6
 
7
- def initialize(cmd = nil)
7
+ def initialize(cmd = nil, mask_secrets: nil)
8
8
  @args = Array(cmd)
9
+ @mask_secrets = Array(mask_secrets)
9
10
  end
10
11
 
11
12
  def <<(*args)
@@ -28,6 +29,17 @@ module Gitlab
28
29
  "docker #{@args.join(' ')}"
29
30
  end
30
31
 
32
+ # Returns a masked string form of a Command
33
+ #
34
+ # @example
35
+ # Command.new('a docker command', mask_secrets: 'command').mask_secrets #=> 'a docker *****'
36
+ # Command.new('a docker command', mask_secrets: %w[docker command]).mask_secrets #=> 'a ***** *****'
37
+ #
38
+ # @return [String] The masked command string
39
+ def mask_secrets
40
+ @mask_secrets.each_with_object(to_s) { |secret, s| s.gsub!(secret, '*****') }
41
+ end
42
+
31
43
  def ==(other)
32
44
  to_s == other.to_s
33
45
  end
@@ -36,8 +48,8 @@ module Gitlab
36
48
  Docker::Shellout.new(self).execute!(&block)
37
49
  end
38
50
 
39
- def self.execute(cmd, &block)
40
- new(cmd).execute!(&block)
51
+ def self.execute(cmd, mask_secrets: nil, &block)
52
+ new(cmd, mask_secrets: mask_secrets).execute!(&block)
41
53
  end
42
54
  end
43
55
  end
@@ -10,7 +10,7 @@ module Gitlab
10
10
  end
11
11
 
12
12
  def login(username:, password:, registry:)
13
- Docker::Command.execute(%(login --username "#{username}" --password "#{password}" #{registry}))
13
+ Docker::Command.execute(%(login --username "#{username}" --password "#{password}" #{registry}), mask_secrets: password)
14
14
  end
15
15
 
16
16
  def pull(image, tag)
@@ -10,7 +10,7 @@ module Gitlab
10
10
  @command = command
11
11
  @output = []
12
12
 
13
- puts "Docker shell command: `#{@command}`"
13
+ puts "Docker shell command: `#{@command.mask_secrets}`"
14
14
  end
15
15
 
16
16
  def execute!
@@ -28,7 +28,7 @@ module Gitlab
28
28
  end
29
29
 
30
30
  if wait.value.exited? && wait.value.exitstatus.nonzero?
31
- raise StatusError, "Docker command `#{@command}` failed!"
31
+ raise StatusError, "Docker command `#{@command.mask_secrets}` failed!"
32
32
  end
33
33
  end
34
34
 
@@ -147,14 +147,15 @@ module Gitlab
147
147
  registry: DEV_REGISTRY
148
148
  }
149
149
  elsif omnibus_mirror?
150
- username, password = if Runtime::Env.ci_job_token
150
+ username, password = if Runtime::Env.ci_job_token && Runtime::Env.ci_pipeline_source == 'pipeline'
151
151
  ['gitlab-ci-token', Runtime::Env.ci_job_token]
152
+ elsif Runtime::Env.qa_container_registry_access_token
153
+ [Runtime::Env.gitlab_username, Runtime::Env.qa_container_registry_access_token]
152
154
  else
153
155
  Runtime::Env.require_qa_access_token!
154
156
 
155
157
  [Runtime::Env.gitlab_username, Runtime::Env.qa_access_token]
156
158
  end
157
-
158
159
  {
159
160
  username: username,
160
161
  password: password,
@@ -38,6 +38,7 @@ module Gitlab
38
38
  'SIGNUP_DISABLED' => :signup_disabled,
39
39
  'QA_ADDITIONAL_REPOSITORY_STORAGE' => :qa_additional_repository_storage,
40
40
  'QA_PRAEFECT_REPOSITORY_STORAGE' => :qa_praefect_repository_storage,
41
+ 'QA_GITALY_NON_CLUSTER_STORAGE' => :qa_gitaly_non_cluster_storage,
41
42
  'QA_COOKIES' => :qa_cookie,
42
43
  'QA_DEBUG' => :qa_debug,
43
44
  'QA_LOG_PATH' => :qa_log_path,
@@ -112,6 +113,10 @@ module Gitlab
112
113
  ENV['CI_JOB_URL']
113
114
  end
114
115
 
116
+ def ci_pipeline_source
117
+ ENV['CI_PIPELINE_SOURCE']
118
+ end
119
+
115
120
  def ci_project_name
116
121
  ENV['CI_PROJECT_NAME']
117
122
  end
@@ -148,6 +153,10 @@ module Gitlab
148
153
  ENV['GITLAB_QA_DEV_ACCESS_TOKEN']
149
154
  end
150
155
 
156
+ def qa_container_registry_access_token
157
+ ENV['GITLAB_QA_CONTAINER_REGISTRY_ACCESS_TOKEN']
158
+ end
159
+
151
160
  def host_artifacts_dir
152
161
  @host_artifacts_dir ||= File.join(ENV['QA_ARTIFACTS_DIR'] || '/tmp/gitlab-qa', Runtime::Env.run_id)
153
162
  end
@@ -27,13 +27,14 @@ module Gitlab
27
27
  gitlab_rails['db_pool'] = 5;
28
28
  gitlab_rails['geo_node_name'] = '#{primary.name}';
29
29
  gitlab_rails['monitoring_whitelist'] = ['0.0.0.0/0'];
30
+ gitlab_rails['packages_enabled'] = true;
30
31
  postgresql['listen_address'] = '0.0.0.0';
31
32
  postgresql['max_replication_slots'] = 1;
32
33
  postgresql['md5_auth_cidr_addresses'] = ['0.0.0.0/0'];
33
34
  postgresql['sql_user_password'] = 'e1d1469ec5f533651918b4567a3ed1ae';
34
35
  postgresql['trust_auth_cidr_addresses'] = ['0.0.0.0/0','0.0.0.0/0'];
35
36
  sidekiq['concurrency'] = 2;
36
- unicorn['worker_processes'] = 2;
37
+ puma['worker_processes'] = 2;
37
38
  OMNIBUS
38
39
  primary.exec_commands = fast_ssh_key_lookup_commands + git_lfs_install_commands
39
40
 
@@ -50,11 +51,12 @@ module Gitlab
50
51
  gitlab_rails['db_pool'] = 5;
51
52
  gitlab_rails['geo_node_name'] = '#{secondary.name}';
52
53
  gitlab_rails['monitoring_whitelist'] = ['0.0.0.0/0'];
54
+ gitlab_rails['packages_enabled'] = true;
53
55
  postgresql['listen_address'] = '0.0.0.0';
54
56
  postgresql['md5_auth_cidr_addresses'] = ['0.0.0.0/0'];
55
57
  postgresql['sql_user_password'] = 'e1d1469ec5f533651918b4567a3ed1ae';
56
58
  sidekiq['concurrency'] = 2;
57
- unicorn['worker_processes'] = 2;
59
+ puma['worker_processes'] = 2;
58
60
  OMNIBUS
59
61
  secondary.exec_commands = fast_ssh_key_lookup_commands + git_lfs_install_commands
60
62
 
@@ -0,0 +1,201 @@
1
+ module Gitlab
2
+ module QA
3
+ module Scenario
4
+ module Test
5
+ module Integration
6
+ class GitalyCluster < Scenario::Template
7
+ attr_reader :gitlab_name, :spec_suite
8
+
9
+ def initialize
10
+ @gitlab_name = 'gitlab-gitaly-ha'
11
+ @primary_node_name = 'gitaly1'
12
+ @secondary_node_name = 'gitaly2'
13
+ @tertiary_node_name = 'gitaly3'
14
+ @praefect_node_name = 'praefect'
15
+ @database = 'postgres'
16
+ @spec_suite = 'Test::Integration::GitalyHA'
17
+ @network = 'test'
18
+ end
19
+
20
+ # rubocop:disable Metrics/AbcSize
21
+ def perform(release, *rspec_args)
22
+ gitaly_primary_node = gitaly(@primary_node_name, release)
23
+ gitaly_secondary_node = gitaly(@secondary_node_name, release)
24
+ gitaly_tertiary_node = gitaly(@tertiary_node_name, release)
25
+
26
+ sql_node = Component::PostgreSQL.new.tap do |sql|
27
+ sql.name = @database
28
+ sql.network = @network
29
+ sql.instance_no_teardown do
30
+ sql.run_psql '-d template1 -c "CREATE DATABASE praefect_production OWNER postgres"'
31
+ end
32
+ end
33
+
34
+ praefect_node = Component::Gitlab.new.tap do |praefect|
35
+ praefect.release = QA::Release.new(release)
36
+ praefect.name = @praefect_node_name
37
+ praefect.network = @network
38
+ praefect.skip_availability_check = true
39
+
40
+ praefect.omnibus_config = praefect_omnibus_configuration
41
+
42
+ praefect.instance_no_teardown
43
+ end
44
+
45
+ Component::Gitlab.perform do |gitlab|
46
+ gitlab.release = QA::Release.new(release)
47
+ gitlab.name = gitlab_name
48
+ gitlab.network = @network
49
+
50
+ gitlab.omnibus_config = gitlab_omnibus_configuration
51
+ gitlab.instance do
52
+ puts "Running Gitaly HA specs!"
53
+
54
+ Component::Specs.perform do |specs|
55
+ specs.suite = spec_suite
56
+ specs.release = gitlab.release
57
+ specs.network = gitlab.network
58
+ specs.args = [gitlab.address, *rspec_args]
59
+ end
60
+ end
61
+ end
62
+ ensure
63
+ praefect_node&.teardown
64
+ sql_node&.teardown
65
+ gitaly_primary_node&.teardown
66
+ gitaly_secondary_node&.teardown
67
+ gitaly_tertiary_node&.teardown
68
+ end
69
+ # rubocop:enable Metrics/AbcSize
70
+
71
+ private
72
+
73
+ def disable_other_services
74
+ <<~OMNIBUS
75
+ postgresql['enable'] = false;
76
+ redis['enable'] = false;
77
+ nginx['enable'] = false;
78
+ prometheus['enable'] = false;
79
+ grafana['enable'] = false;
80
+ puma['enable'] = false;
81
+ sidekiq['enable'] = false;
82
+ gitlab_workhorse['enable'] = false;
83
+ gitlab_rails['rake_cache_clear'] = false;
84
+ gitlab_rails['auto_migrate'] = false;
85
+ OMNIBUS
86
+ end
87
+
88
+ def praefect_omnibus_configuration
89
+ <<~OMNIBUS
90
+ #{disable_other_services}
91
+ gitaly['enable'] = false;
92
+ praefect['enable'] = true;
93
+ praefect['listen_addr'] = '0.0.0.0:2305';
94
+ praefect['prometheus_listen_addr'] = '0.0.0.0:9652';
95
+ praefect['auth_token'] = 'PRAEFECT_EXTERNAL_TOKEN';
96
+ praefect['database_host'] = '#{@database}.#{@network}';
97
+ praefect['database_user'] = 'postgres';
98
+ praefect['database_port'] = 5432;
99
+ praefect['database_password'] = 'SQL_PASSWORD';
100
+ praefect['database_dbname'] = 'praefect_production';
101
+ praefect['database_sslmode'] = 'disable';
102
+ praefect['postgres_queue_enabled'] = true;
103
+ praefect['failover_enabled'] = true;
104
+ praefect['virtual_storages'] = {
105
+ 'default' => {
106
+ '#{@primary_node_name}' => {
107
+ 'address' => 'tcp://#{@primary_node_name}.#{@network}:8075',
108
+ 'token' => 'PRAEFECT_INTERNAL_TOKEN',
109
+ 'primary' => true
110
+ },
111
+ '#{@secondary_node_name}' => {
112
+ 'address' => 'tcp://#{@secondary_node_name}.#{@network}:8075',
113
+ 'token' => 'PRAEFECT_INTERNAL_TOKEN'
114
+ },
115
+ '#{@tertiary_node_name}' => {
116
+ 'address' => 'tcp://#{@tertiary_node_name}.#{@network}:8075',
117
+ 'token' => 'PRAEFECT_INTERNAL_TOKEN'
118
+ }
119
+ }
120
+ };
121
+ OMNIBUS
122
+ end
123
+
124
+ def gitaly_omnibus_configuration
125
+ <<~OMNIBUS
126
+ #{disable_other_services}
127
+ prometheus['enable'] = true;
128
+ prometheus_monitoring['enable'] = false;
129
+ gitaly['enable'] = true;
130
+ gitaly['listen_addr'] = '0.0.0.0:8075';
131
+ gitaly['prometheus_listen_addr'] = '0.0.0.0:9236';
132
+ gitaly['auth_token'] = 'PRAEFECT_INTERNAL_TOKEN';
133
+ gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
134
+ gitlab_rails['internal_api_url'] = 'http://#{@gitlab_name}.#{@network}';
135
+ git_data_dirs({
136
+ '#{@primary_node_name}' => {
137
+ 'path' => '/var/opt/gitlab/git-data'
138
+ },
139
+ '#{@secondary_node_name}' => {
140
+ 'path' => '/var/opt/gitlab/git-data'
141
+ },
142
+ '#{@tertiary_node_name}' => {
143
+ 'path' => '/var/opt/gitlab/git-data'
144
+ }
145
+ });
146
+ OMNIBUS
147
+ end
148
+
149
+ def gitlab_omnibus_configuration
150
+ <<~OMNIBUS
151
+ external_url 'http://#{@gitlab_name}.#{@network}';
152
+
153
+ git_data_dirs({
154
+ 'default' => {
155
+ 'gitaly_address' => 'tcp://#{@praefect_node_name}.#{@network}:2305',
156
+ 'gitaly_token' => 'PRAEFECT_EXTERNAL_TOKEN'
157
+ }
158
+ });
159
+ gitaly['listen_addr'] = '0.0.0.0:8075';
160
+ gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
161
+ prometheus['scrape_configs'] = [
162
+ {
163
+ 'job_name' => 'praefect',
164
+ 'static_configs' => [
165
+ 'targets' => [
166
+ '#{@praefect_node_name}.#{@network}:9652'
167
+ ]
168
+ ]
169
+ },
170
+ {
171
+ 'job_name' => 'praefect-gitaly',
172
+ 'static_configs' => [
173
+ 'targets' => [
174
+ '#{@primary_node_name}.#{@network}:9236',
175
+ '#{@secondary_node_name}.#{@network}:9236',
176
+ '#{@tertiary_node_name}.#{@network}:9236'
177
+ ]
178
+ ]
179
+ }
180
+ ];
181
+ grafana['disable_login_form'] = false;
182
+ grafana['admin_password'] = 'GRAFANA_ADMIN_PASSWORD';
183
+ OMNIBUS
184
+ end
185
+
186
+ def gitaly(name, release)
187
+ Component::Gitlab.new.tap do |gitaly|
188
+ gitaly.release = QA::Release.new(release)
189
+ gitaly.name = name
190
+ gitaly.network = @network
191
+ gitaly.skip_availability_check = true
192
+ gitaly.omnibus_config = gitaly_omnibus_configuration
193
+ gitaly.instance_no_teardown
194
+ end
195
+ end
196
+ end
197
+ end
198
+ end
199
+ end
200
+ end
201
+ end
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module QA
3
- VERSION = '5.15.0'.freeze
3
+ VERSION = '5.16.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-qa
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.15.0
4
+ version: 5.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grzegorz Bizon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-06 00:00:00.000000000 Z
11
+ date: 2020-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -284,7 +284,7 @@ files:
284
284
  - lib/gitlab/qa/scenario/test/instance/staging_geo.rb
285
285
  - lib/gitlab/qa/scenario/test/integration/elasticsearch.rb
286
286
  - lib/gitlab/qa/scenario/test/integration/geo.rb
287
- - lib/gitlab/qa/scenario/test/integration/gitaly_ha.rb
287
+ - lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb
288
288
  - lib/gitlab/qa/scenario/test/integration/group_saml.rb
289
289
  - lib/gitlab/qa/scenario/test/integration/instance_saml.rb
290
290
  - lib/gitlab/qa/scenario/test/integration/jira.rb
@@ -1,166 +0,0 @@
1
- module Gitlab
2
- module QA
3
- module Scenario
4
- module Test
5
- module Integration
6
- class GitalyHA < Scenario::Template
7
- attr_reader :gitlab_name, :spec_suite
8
-
9
- def initialize
10
- @gitlab_name = 'gitlab-gitaly-ha'
11
- @primary_node = 'gitaly1'
12
- @secondary_node = 'gitaly2'
13
- @praefect_node = 'praefect'
14
- @database = 'postgres'
15
- @spec_suite = 'Test::Integration::GitalyHA'
16
- @network = 'test'
17
- end
18
-
19
- # rubocop:disable Metrics/AbcSize
20
- def perform(release, *rspec_args)
21
- gitaly(@primary_node, release) do
22
- gitaly(@secondary_node, release) do
23
- Component::PostgreSQL.perform do |sql|
24
- sql.name = @database
25
- sql.network = @network
26
-
27
- sql.instance do
28
- sql.run_psql '-d template1 -c "CREATE DATABASE praefect_production OWNER postgres"'
29
-
30
- Component::Gitlab.perform do |praefect|
31
- praefect.release = QA::Release.new(release)
32
- praefect.name = @praefect_node
33
- praefect.network = @network
34
- praefect.skip_availability_check = true
35
-
36
- praefect.omnibus_config = praefect_omnibus_configuration
37
-
38
- praefect.instance do
39
- Component::Gitlab.perform do |gitlab|
40
- gitlab.release = QA::Release.new(release)
41
- gitlab.name = gitlab_name
42
- gitlab.network = @network
43
-
44
- gitlab.omnibus_config = gitlab_omnibus_configuration
45
- gitlab.instance do
46
- puts "Running Gitaly HA specs!"
47
-
48
- Component::Specs.perform do |specs|
49
- specs.suite = spec_suite
50
- specs.release = gitlab.release
51
- specs.network = gitlab.network
52
- specs.args = [gitlab.address, *rspec_args]
53
- end
54
- end
55
- end
56
- end
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
63
- # rubocop:enable Metrics/AbcSize
64
-
65
- private
66
-
67
- def disable_other_services
68
- <<~OMNIBUS
69
- postgresql['enable'] = false;
70
- redis['enable'] = false;
71
- nginx['enable'] = false;
72
- prometheus['enable'] = false;
73
- grafana['enable'] = false;
74
- unicorn['enable'] = false;
75
- sidekiq['enable'] = false;
76
- gitlab_workhorse['enable'] = false;
77
- gitlab_rails['rake_cache_clear'] = false;
78
- gitlab_rails['auto_migrate'] = false;
79
- OMNIBUS
80
- end
81
-
82
- def praefect_omnibus_configuration
83
- <<~OMNIBUS
84
- #{disable_other_services}
85
- gitaly['enable'] = false;
86
- praefect['enable'] = true;
87
- praefect['listen_addr'] = '0.0.0.0:2305';
88
- praefect['prometheus_listen_addr'] = '0.0.0.0:9652';
89
- praefect['auth_token'] = 'PRAEFECT_EXTERNAL_TOKEN';
90
- praefect['database_host'] = '#{@database}.#{@network}';
91
- praefect['database_user'] = 'postgres';
92
- praefect['database_port'] = 5432;
93
- praefect['database_password'] = 'SQL_PASSWORD';
94
- praefect['database_dbname'] = 'praefect_production';
95
- praefect['database_sslmode'] = 'disable';
96
- praefect['postgres_queue_enabled'] = true;
97
- praefect['failover_enabled'] = true;
98
- praefect['virtual_storages'] = {
99
- 'default' => {
100
- '#{@primary_node}' => {
101
- 'address' => 'tcp://#{@primary_node}.#{@network}:8075',
102
- 'token' => 'PRAEFECT_INTERNAL_TOKEN',
103
- 'primary' => true
104
- },
105
- '#{@secondary_node}' => {
106
- 'address' => 'tcp://#{@secondary_node}.#{@network}:8075',
107
- 'token' => 'PRAEFECT_INTERNAL_TOKEN'
108
- }
109
- }
110
- };
111
- OMNIBUS
112
- end
113
-
114
- def gitaly_omnibus_configuration
115
- <<~OMNIBUS
116
- #{disable_other_services}
117
- prometheus_monitoring['enable'] = false;
118
- gitaly['enable'] = true;
119
- gitaly['listen_addr'] = '0.0.0.0:8075';
120
- gitaly['prometheus_listen_addr'] = '0.0.0.0:9236';
121
- gitaly['auth_token'] = 'PRAEFECT_INTERNAL_TOKEN';
122
- gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
123
- gitlab_rails['internal_api_url'] = 'http://#{@gitlab_name}.#{@network}';
124
- git_data_dirs({
125
- '#{@primary_node}' => {
126
- 'path' => '/var/opt/gitlab/git-data'
127
- },
128
- '#{@secondary_node}' => {
129
- 'path' => '/var/opt/gitlab/git-data'
130
- }
131
- });
132
- OMNIBUS
133
- end
134
-
135
- def gitlab_omnibus_configuration
136
- <<~OMNIBUS
137
- git_data_dirs({
138
- 'default' => {
139
- 'gitaly_address' => 'tcp://#{@praefect_node}.#{@network}:2305',
140
- 'gitaly_token' => 'PRAEFECT_EXTERNAL_TOKEN'
141
- }
142
- });
143
- gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
144
- OMNIBUS
145
- end
146
-
147
- def gitaly(name, release)
148
- Component::Gitlab.perform do |gitaly|
149
- gitaly.release = QA::Release.new(release)
150
- gitaly.name = name
151
- gitaly.network = @network
152
- gitaly.skip_availability_check = true
153
-
154
- gitaly.omnibus_config = gitaly_omnibus_configuration
155
-
156
- gitaly.instance do
157
- yield self
158
- end
159
- end
160
- end
161
- end
162
- end
163
- end
164
- end
165
- end
166
- end