gitlab-qa 15.9.0 → 15.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +47 -55
- data/docs/what_tests_can_be_run.md +1 -28
- data/gitlab-qa.gemspec +1 -1
- data/lib/gitlab/qa/component/{minio.rb → silo.rb} +10 -11
- data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb +6 -6
- data/lib/gitlab/qa/version.rb +1 -1
- metadata +5 -7
- data/lib/gitlab/qa/component/chaos.rb +0 -76
- data/lib/gitlab/qa/scenario/test/integration/chaos.rb +0 -39
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8a010f513b5a21083ffc19a88bd9c462ac94b0a79dc6854a67adb11a62b27158
|
|
4
|
+
data.tar.gz: 3e5984e97c8fd28bed2dd8438f0a3fad1d96c4549fd589ada0320379f1246986
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6be0df446e12c04a6e9c8e36ada004de0fdf56efa8f1df3c7512edad1823da9dcbf31f147a5e8b8a1fd1f986d1e0332694677f4d0f55fedf632242b45293555f
|
|
7
|
+
data.tar.gz: c5330a156dcbeed4c69cc6176b5204418753fa3b6649e8ec67243440bc356cd92ed84fb6bf974730b34c27d288ee62f78b22be4ce0e28cdb1f67c7c16c02ebd2
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
gitlab-qa (15.
|
|
4
|
+
gitlab-qa (15.10.0)
|
|
5
5
|
activesupport (>= 6.1, < 8)
|
|
6
6
|
ffi (~> 1.17)
|
|
7
7
|
gitlab (~> 4.19)
|
|
@@ -26,8 +26,8 @@ GEM
|
|
|
26
26
|
minitest (>= 5.1)
|
|
27
27
|
securerandom (>= 0.3)
|
|
28
28
|
tzinfo (~> 2.0, >= 2.0.5)
|
|
29
|
-
addressable (2.
|
|
30
|
-
public_suffix (>= 2.0.2, <
|
|
29
|
+
addressable (2.9.0)
|
|
30
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
31
31
|
ast (2.4.2)
|
|
32
32
|
backport (1.2.0)
|
|
33
33
|
base64 (0.3.0)
|
|
@@ -48,19 +48,21 @@ GEM
|
|
|
48
48
|
colored2 (~> 3.1)
|
|
49
49
|
crack (0.4.5)
|
|
50
50
|
rexml
|
|
51
|
-
|
|
51
|
+
csv (3.3.6)
|
|
52
|
+
danger (9.6.1)
|
|
53
|
+
base64 (~> 0.2)
|
|
52
54
|
claide (~> 1.0)
|
|
53
55
|
claide-plugins (>= 0.9.2)
|
|
54
|
-
colored2 (
|
|
56
|
+
colored2 (>= 3.1, < 5)
|
|
55
57
|
cork (~> 0.1)
|
|
56
|
-
faraday (>= 0.9.0, <
|
|
58
|
+
faraday (>= 0.9.0, < 3.0)
|
|
57
59
|
faraday-http-cache (~> 2.0)
|
|
58
|
-
git (
|
|
59
|
-
kramdown (
|
|
60
|
+
git (>= 1.13)
|
|
61
|
+
kramdown (>= 2.5.1, < 3.0)
|
|
60
62
|
kramdown-parser-gfm (~> 1.0)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
terminal-table (>= 1, <
|
|
63
|
+
octokit (>= 4.0)
|
|
64
|
+
pstore (~> 0.1)
|
|
65
|
+
terminal-table (>= 1, < 5)
|
|
64
66
|
danger-gitlab (8.0.0)
|
|
65
67
|
danger
|
|
66
68
|
gitlab (~> 4.2, >= 4.2.0)
|
|
@@ -70,37 +72,22 @@ GEM
|
|
|
70
72
|
unf (>= 0.0.5, < 1.0.0)
|
|
71
73
|
drb (2.2.3)
|
|
72
74
|
e2mmap (0.1.0)
|
|
73
|
-
faraday (
|
|
74
|
-
faraday-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
faraday-httpclient (~> 1.0)
|
|
78
|
-
faraday-multipart (~> 1.0)
|
|
79
|
-
faraday-net_http (~> 1.0)
|
|
80
|
-
faraday-net_http_persistent (~> 1.0)
|
|
81
|
-
faraday-patron (~> 1.0)
|
|
82
|
-
faraday-rack (~> 1.0)
|
|
83
|
-
faraday-retry (~> 1.0)
|
|
84
|
-
ruby2_keywords (>= 0.0.4)
|
|
85
|
-
faraday-em_http (1.0.0)
|
|
86
|
-
faraday-em_synchrony (1.0.0)
|
|
87
|
-
faraday-excon (1.1.0)
|
|
75
|
+
faraday (2.14.4)
|
|
76
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
77
|
+
json
|
|
78
|
+
logger
|
|
88
79
|
faraday-http-cache (2.4.1)
|
|
89
80
|
faraday (>= 0.8)
|
|
90
|
-
faraday-
|
|
91
|
-
|
|
92
|
-
multipart-post (~> 2)
|
|
93
|
-
faraday-net_http (1.0.1)
|
|
94
|
-
faraday-net_http_persistent (1.2.0)
|
|
95
|
-
faraday-patron (1.0.0)
|
|
96
|
-
faraday-rack (1.0.0)
|
|
97
|
-
faraday-retry (1.0.3)
|
|
81
|
+
faraday-net_http (3.4.4)
|
|
82
|
+
net-http (~> 0.5)
|
|
98
83
|
ffi (1.17.0)
|
|
99
84
|
ffi-compiler (1.0.1)
|
|
100
85
|
ffi (>= 1.0.0)
|
|
101
86
|
rake
|
|
102
|
-
git (
|
|
87
|
+
git (2.3.3)
|
|
88
|
+
activesupport (>= 5.0)
|
|
103
89
|
addressable (~> 2.8)
|
|
90
|
+
process_executer (~> 1.1)
|
|
104
91
|
rchardet (~> 1.8)
|
|
105
92
|
gitlab (4.19.0)
|
|
106
93
|
httparty (~> 0.20)
|
|
@@ -123,15 +110,16 @@ GEM
|
|
|
123
110
|
http-cookie (1.0.5)
|
|
124
111
|
domain_name (~> 0.5)
|
|
125
112
|
http-form_data (2.3.0)
|
|
126
|
-
httparty (0.
|
|
127
|
-
|
|
113
|
+
httparty (0.24.3)
|
|
114
|
+
csv
|
|
115
|
+
mini_mime (>= 1.0.0)
|
|
128
116
|
multi_xml (>= 0.5.2)
|
|
129
117
|
i18n (1.14.7)
|
|
130
118
|
concurrent-ruby (~> 1.0)
|
|
131
119
|
jaro_winkler (1.5.6)
|
|
132
120
|
json (2.6.3)
|
|
133
|
-
kramdown (2.
|
|
134
|
-
rexml
|
|
121
|
+
kramdown (2.5.2)
|
|
122
|
+
rexml (>= 3.4.4)
|
|
135
123
|
kramdown-parser-gfm (1.1.0)
|
|
136
124
|
kramdown (~> 2.0)
|
|
137
125
|
lefthook (1.2.6)
|
|
@@ -140,17 +128,18 @@ GEM
|
|
|
140
128
|
rake (~> 13.0)
|
|
141
129
|
logger (1.7.0)
|
|
142
130
|
method_source (1.0.0)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
mime-types-data (3.2022.0105)
|
|
146
|
-
mini_portile2 (2.8.0)
|
|
131
|
+
mini_mime (1.1.5)
|
|
132
|
+
mini_portile2 (2.8.9)
|
|
147
133
|
minitest (5.26.1)
|
|
148
134
|
multi_xml (0.6.0)
|
|
149
|
-
multipart-post (2.2.3)
|
|
150
135
|
nap (1.1.0)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
136
|
+
net-http (0.10.0)
|
|
137
|
+
net-protocol (>= 0.3.0)
|
|
138
|
+
uri (>= 0.11.1)
|
|
139
|
+
net-protocol (0.4.0)
|
|
140
|
+
timeout
|
|
141
|
+
nokogiri (1.17.2)
|
|
142
|
+
mini_portile2 (~> 2.8.2)
|
|
154
143
|
racc (~> 1.4)
|
|
155
144
|
octokit (5.6.1)
|
|
156
145
|
faraday (>= 1, < 3)
|
|
@@ -159,23 +148,25 @@ GEM
|
|
|
159
148
|
parallel (1.22.1)
|
|
160
149
|
parser (3.2.2.1)
|
|
161
150
|
ast (~> 2.4.1)
|
|
151
|
+
process_executer (1.1.2)
|
|
162
152
|
pry (0.14.1)
|
|
163
153
|
coderay (~> 1.1)
|
|
164
154
|
method_source (~> 1.0)
|
|
165
155
|
pry-byebug (3.10.1)
|
|
166
156
|
byebug (~> 11.0)
|
|
167
157
|
pry (>= 0.13, < 0.15)
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
158
|
+
pstore (0.2.1)
|
|
159
|
+
public_suffix (6.0.2)
|
|
160
|
+
racc (1.8.1)
|
|
161
|
+
rack (3.2.7)
|
|
171
162
|
rainbow (3.1.1)
|
|
172
163
|
rake (13.0.6)
|
|
173
164
|
rbs (2.8.4)
|
|
174
|
-
rchardet (1.
|
|
165
|
+
rchardet (1.10.2)
|
|
175
166
|
regexp_parser (2.6.1)
|
|
176
167
|
reverse_markdown (2.1.1)
|
|
177
168
|
nokogiri
|
|
178
|
-
rexml (3.
|
|
169
|
+
rexml (3.4.4)
|
|
179
170
|
rspec (3.13.0)
|
|
180
171
|
rspec-core (~> 3.13.0)
|
|
181
172
|
rspec-expectations (~> 3.13.0)
|
|
@@ -219,7 +210,6 @@ GEM
|
|
|
219
210
|
rubocop-capybara (~> 2.17)
|
|
220
211
|
rubocop-factory_bot (~> 2.22)
|
|
221
212
|
ruby-progressbar (1.11.0)
|
|
222
|
-
ruby2_keywords (0.0.5)
|
|
223
213
|
sawyer (0.9.2)
|
|
224
214
|
addressable (>= 2.3.5)
|
|
225
215
|
faraday (>= 0.17.3, < 3)
|
|
@@ -228,7 +218,7 @@ GEM
|
|
|
228
218
|
docile (~> 1.1)
|
|
229
219
|
simplecov-html (~> 0.11)
|
|
230
220
|
simplecov_json_formatter (~> 0.1)
|
|
231
|
-
simplecov-cobertura (2.
|
|
221
|
+
simplecov-cobertura (3.2.0)
|
|
232
222
|
rexml
|
|
233
223
|
simplecov (~> 0.19)
|
|
234
224
|
simplecov-html (0.12.3)
|
|
@@ -255,12 +245,14 @@ GEM
|
|
|
255
245
|
thor (1.2.1)
|
|
256
246
|
tilt (2.0.11)
|
|
257
247
|
timecop (0.9.6)
|
|
248
|
+
timeout (0.6.1)
|
|
258
249
|
tzinfo (2.0.6)
|
|
259
250
|
concurrent-ruby (~> 1.0)
|
|
260
251
|
unf (0.1.4)
|
|
261
252
|
unf_ext
|
|
262
253
|
unf_ext (0.0.8.2)
|
|
263
254
|
unicode-display_width (2.4.2)
|
|
255
|
+
uri (1.1.2)
|
|
264
256
|
webmock (3.7.0)
|
|
265
257
|
addressable (>= 2.3.6)
|
|
266
258
|
crack (>= 0.3.2)
|
|
@@ -284,7 +276,7 @@ DEPENDENCIES
|
|
|
284
276
|
rake (~> 13.0)
|
|
285
277
|
rspec (~> 3.13)
|
|
286
278
|
simplecov (~> 0.22)
|
|
287
|
-
simplecov-cobertura (~>
|
|
279
|
+
simplecov-cobertura (~> 3.0)
|
|
288
280
|
solargraph (~> 0.41)
|
|
289
281
|
timecop (~> 0.9.5)
|
|
290
282
|
webmock (= 3.7.0)
|
|
@@ -1046,7 +1046,7 @@ $ gitlab-qa Test::Instance::Airgapped EE -- --tag smoke
|
|
|
1046
1046
|
|
|
1047
1047
|
### `Test::Instance::Image CE|EE|<full image address> --omnibus-config object_storage`
|
|
1048
1048
|
|
|
1049
|
-
This orchestrated scenario runs tests from the test suite against a GitLab instance which has object storage configured instead of using local storage. The omnibus configuration `object_storage` ([configurator](configuring_omnibus.md)), uses
|
|
1049
|
+
This orchestrated scenario runs tests from the test suite against a GitLab instance which has object storage configured instead of using local storage. The omnibus configuration `object_storage` ([configurator](configuring_omnibus.md)), uses [Silo](https://github.com/pgsty/silo) (a MinIO fork) and `object_storage_aws` uses an AWS S3 account with credentials configured in the pipeline as CI Variables. To use Google Cloud Storage pass `--omnibus-config object_storage_gcp`. According to the storage selected it requires:
|
|
1050
1050
|
|
|
1051
1051
|
| Scenario | Variable | Description |
|
|
1052
1052
|
|-----------------------|---------------------|--------------------------------------|
|
|
@@ -1139,33 +1139,6 @@ $ export GITLAB_PASSWORD="$GITLAB_QA_PASSWORD"
|
|
|
1139
1139
|
$ gitlab-qa Test::Instance::Geo EE https://primary.gitlab.com https://secondary.gitlab.com
|
|
1140
1140
|
```
|
|
1141
1141
|
|
|
1142
|
-
### `Test::Instance::Chaos`
|
|
1143
|
-
|
|
1144
|
-
This scenario will run a limited number of tests that are tagged with `:chaos`.
|
|
1145
|
-
|
|
1146
|
-
These tests are designed to verify that our systems can gracefully handle scenarios which may occur if
|
|
1147
|
-
networking or connectivity type issues occur in various Gitlab components.
|
|
1148
|
-
They make use of [toxiproxy](https://github.com/Shopify/toxiproxy) to act as a proxy allowing us to introduce
|
|
1149
|
-
connectivity issues, via the [toxiproxy ruby client](https://github.com/Shopify/toxiproxy-ruby) in an E2E spec.
|
|
1150
|
-
|
|
1151
|
-
Sample Test:
|
|
1152
|
-
|
|
1153
|
-
```ruby
|
|
1154
|
-
context 'when a gitaly node is experiencing high latency' do
|
|
1155
|
-
it 'can create a project' do
|
|
1156
|
-
Toxiproxy[:gitaly1].toxic(:latency, latency: 30000).apply do
|
|
1157
|
-
expect(create_a_project).to be true
|
|
1158
|
-
end
|
|
1159
|
-
end
|
|
1160
|
-
end
|
|
1161
|
-
```
|
|
1162
|
-
|
|
1163
|
-
Example:
|
|
1164
|
-
|
|
1165
|
-
```shell
|
|
1166
|
-
$ gitlab-qa Test::Instance::Chaos
|
|
1167
|
-
```
|
|
1168
|
-
|
|
1169
1142
|
### `Test::Integration::Import`
|
|
1170
1143
|
|
|
1171
1144
|
This scenario will run specs tagged with `:import` tags.
|
data/gitlab-qa.gemspec
CHANGED
|
@@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
|
|
|
36
36
|
spec.add_development_dependency 'rake', '~> 13.0'
|
|
37
37
|
spec.add_development_dependency 'rspec', '~> 3.13'
|
|
38
38
|
spec.add_development_dependency 'simplecov', '~> 0.22'
|
|
39
|
-
spec.add_development_dependency 'simplecov-cobertura', '~>
|
|
39
|
+
spec.add_development_dependency 'simplecov-cobertura', '~> 3.0'
|
|
40
40
|
spec.add_development_dependency 'solargraph', '~> 0.41'
|
|
41
41
|
spec.add_development_dependency 'timecop', '~> 0.9.5'
|
|
42
42
|
spec.add_development_dependency 'webmock', '3.7.0'
|
|
@@ -4,15 +4,16 @@ require 'securerandom'
|
|
|
4
4
|
require 'fileutils'
|
|
5
5
|
require 'yaml'
|
|
6
6
|
|
|
7
|
-
# This component sets up
|
|
8
|
-
#
|
|
7
|
+
# This component sets up Silo (https://github.com/pgsty/silo), a community-maintained
|
|
8
|
+
# MinIO fork, with the proper configuration for GitLab users to use object storage.
|
|
9
|
+
# The public minio/minio Docker images are no longer published.
|
|
9
10
|
module Gitlab
|
|
10
11
|
module QA
|
|
11
12
|
module Component
|
|
12
|
-
class
|
|
13
|
-
DOCKER_IMAGE = '
|
|
13
|
+
class Silo < Base
|
|
14
|
+
DOCKER_IMAGE = 'pgsty/silo'
|
|
14
15
|
DOCKER_IMAGE_TAG = 'latest'
|
|
15
|
-
# These are secrets used in a local
|
|
16
|
+
# These are secrets used in a local Silo container, they're not used for any online S3 server.
|
|
16
17
|
AWS_ACCESS_KEY = 'AKIAIOSFODNN7EXAMPLE'
|
|
17
18
|
AWS_SECRET_KEY = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
|
|
18
19
|
DATA_DIR = '/data'
|
|
@@ -47,11 +48,11 @@ module Gitlab
|
|
|
47
48
|
def host_data_dir
|
|
48
49
|
base_dir = ENV['CI_PROJECT_DIR'] || '/tmp'
|
|
49
50
|
|
|
50
|
-
File.join(base_dir, '
|
|
51
|
+
File.join(base_dir, 'silo')
|
|
51
52
|
end
|
|
52
53
|
|
|
53
54
|
def name
|
|
54
|
-
@name ||= "
|
|
55
|
+
@name ||= "silo-#{SecureRandom.hex(4)}"
|
|
55
56
|
end
|
|
56
57
|
|
|
57
58
|
def port
|
|
@@ -64,15 +65,13 @@ module Gitlab
|
|
|
64
65
|
FileUtils.mkdir_p(host_data_dir)
|
|
65
66
|
|
|
66
67
|
@buckets.each do |bucket|
|
|
67
|
-
Runtime::Logger.info("Creating
|
|
68
|
+
Runtime::Logger.info("Creating Silo bucket: #{bucket}")
|
|
68
69
|
FileUtils.mkdir_p(File.join(host_data_dir, bucket))
|
|
69
70
|
end
|
|
70
71
|
end
|
|
71
72
|
|
|
72
73
|
def start # rubocop:disable Metrics/AbcSize
|
|
73
|
-
|
|
74
|
-
# is resolved
|
|
75
|
-
docker.run(image: image, tag: tag, args: ["server", "--compat", DATA_DIR]) do |command|
|
|
74
|
+
docker.run(image: image, tag: tag, args: ["server", DATA_DIR]) do |command|
|
|
76
75
|
command << '-d '
|
|
77
76
|
command << "--name #{name}"
|
|
78
77
|
command << "--net #{network}"
|
|
@@ -16,18 +16,18 @@ module Gitlab
|
|
|
16
16
|
config << <<~OMNIBUS
|
|
17
17
|
gitlab_rails['object_store']['enabled'] = true
|
|
18
18
|
gitlab_rails['object_store']['proxy_download'] = true
|
|
19
|
-
gitlab_rails['object_store']['connection'] = #{
|
|
19
|
+
gitlab_rails['object_store']['connection'] = #{silo.to_config}
|
|
20
20
|
OMNIBUS
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def prepare
|
|
24
|
-
|
|
24
|
+
silo.network = Runtime::Env.docker_network
|
|
25
25
|
|
|
26
26
|
TYPES.each do |bucket_name|
|
|
27
|
-
|
|
27
|
+
silo.add_bucket("#{bucket_name}-bucket")
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
silo
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def exec_commands
|
|
@@ -36,8 +36,8 @@ module Gitlab
|
|
|
36
36
|
|
|
37
37
|
private
|
|
38
38
|
|
|
39
|
-
def
|
|
40
|
-
@
|
|
39
|
+
def silo
|
|
40
|
+
@silo ||= Component::Silo.new
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
end
|
data/lib/gitlab/qa/version.rb
CHANGED
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: 15.
|
|
4
|
+
version: 15.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitLab Quality
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-10-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|
|
@@ -142,14 +142,14 @@ dependencies:
|
|
|
142
142
|
requirements:
|
|
143
143
|
- - "~>"
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: '
|
|
145
|
+
version: '3.0'
|
|
146
146
|
type: :development
|
|
147
147
|
prerelease: false
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: '
|
|
152
|
+
version: '3.0'
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
154
|
name: solargraph
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -402,7 +402,6 @@ files:
|
|
|
402
402
|
- lib/gitlab/qa/component/ai_gateway.rb
|
|
403
403
|
- lib/gitlab/qa/component/alpine.rb
|
|
404
404
|
- lib/gitlab/qa/component/base.rb
|
|
405
|
-
- lib/gitlab/qa/component/chaos.rb
|
|
406
405
|
- lib/gitlab/qa/component/duo_workflow_service.rb
|
|
407
406
|
- lib/gitlab/qa/component/elasticsearch.rb
|
|
408
407
|
- lib/gitlab/qa/component/gitaly.rb
|
|
@@ -412,7 +411,6 @@ files:
|
|
|
412
411
|
- lib/gitlab/qa/component/ldap.rb
|
|
413
412
|
- lib/gitlab/qa/component/license_ops.rb
|
|
414
413
|
- lib/gitlab/qa/component/mail_hog.rb
|
|
415
|
-
- lib/gitlab/qa/component/minio.rb
|
|
416
414
|
- lib/gitlab/qa/component/mock_server.rb
|
|
417
415
|
- lib/gitlab/qa/component/opensearch.rb
|
|
418
416
|
- lib/gitlab/qa/component/pipeline_ops.rb
|
|
@@ -425,6 +423,7 @@ files:
|
|
|
425
423
|
- lib/gitlab/qa/component/runner_ops.rb
|
|
426
424
|
- lib/gitlab/qa/component/saml.rb
|
|
427
425
|
- lib/gitlab/qa/component/selenoid.rb
|
|
426
|
+
- lib/gitlab/qa/component/silo.rb
|
|
428
427
|
- lib/gitlab/qa/component/specs.rb
|
|
429
428
|
- lib/gitlab/qa/component/staging.rb
|
|
430
429
|
- lib/gitlab/qa/component/staging_ref.rb
|
|
@@ -468,7 +467,6 @@ files:
|
|
|
468
467
|
- lib/gitlab/qa/scenario/test/integration/ai_gateway_no_add_on.rb
|
|
469
468
|
- lib/gitlab/qa/scenario/test/integration/ai_gateway_no_license.rb
|
|
470
469
|
- lib/gitlab/qa/scenario/test/integration/ai_gateway_no_seat_assigned.rb
|
|
471
|
-
- lib/gitlab/qa/scenario/test/integration/chaos.rb
|
|
472
470
|
- lib/gitlab/qa/scenario/test/integration/client_ssl.rb
|
|
473
471
|
- lib/gitlab/qa/scenario/test/integration/continuous_vulnerability_scanning.rb
|
|
474
472
|
- lib/gitlab/qa/scenario/test/integration/duo_agent_platform.rb
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'json'
|
|
4
|
-
|
|
5
|
-
module Gitlab
|
|
6
|
-
module QA
|
|
7
|
-
module Component
|
|
8
|
-
class Chaos < Base
|
|
9
|
-
DOCKER_IMAGE = 'ghcr.io/shopify/toxiproxy'
|
|
10
|
-
DOCKER_IMAGE_TAG = '2.5.0'
|
|
11
|
-
|
|
12
|
-
def initialize
|
|
13
|
-
super
|
|
14
|
-
@network = Runtime::Env.docker_network
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def name
|
|
18
|
-
@name ||= "chaos"
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def start
|
|
22
|
-
prepare
|
|
23
|
-
docker.run(image: image, tag: tag) do |command|
|
|
24
|
-
command << '-d '
|
|
25
|
-
command << "--name #{name}"
|
|
26
|
-
command << "--network #{@network}"
|
|
27
|
-
command << "--publish 8474:8474"
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
QA::Support::Shellout.shell <<~CMD
|
|
31
|
-
docker run --network #{@network} --rm curlimages/curl:7.85.0 \
|
|
32
|
-
-i -s \
|
|
33
|
-
-X POST http://#{name}:8474/populate \
|
|
34
|
-
-H 'Content-Type: application/json' \
|
|
35
|
-
-d '#{proxies.to_json}'
|
|
36
|
-
CMD
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def proxies
|
|
40
|
-
[
|
|
41
|
-
{
|
|
42
|
-
name: "postgres",
|
|
43
|
-
listen: "[::]:5432",
|
|
44
|
-
upstream: "postgres.test:5432",
|
|
45
|
-
enabled: true
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "praefect",
|
|
49
|
-
listen: "[::]:2305",
|
|
50
|
-
upstream: "praefect.test:2305",
|
|
51
|
-
enabled: true
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "gitaly1",
|
|
55
|
-
listen: "[::]:8076",
|
|
56
|
-
upstream: "gitaly1.test:8076",
|
|
57
|
-
enabled: true
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
name: "gitaly2",
|
|
61
|
-
listen: "[::]:8077",
|
|
62
|
-
upstream: "gitaly2.test:8077",
|
|
63
|
-
enabled: true
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: "gitaly3",
|
|
67
|
-
listen: "[::]:8078",
|
|
68
|
-
upstream: "gitaly3.test:8078",
|
|
69
|
-
enabled: true
|
|
70
|
-
}
|
|
71
|
-
]
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Gitlab
|
|
4
|
-
module QA
|
|
5
|
-
module Scenario
|
|
6
|
-
module Test
|
|
7
|
-
module Integration
|
|
8
|
-
class Chaos < Praefect
|
|
9
|
-
def initialize
|
|
10
|
-
super
|
|
11
|
-
|
|
12
|
-
@praefect_addr = "chaos.test"
|
|
13
|
-
@database_addr = "chaos.test"
|
|
14
|
-
@primary_node_addr = "chaos.test"
|
|
15
|
-
@primary_node_port = 8076
|
|
16
|
-
@secondary_node_addr = "chaos.test"
|
|
17
|
-
@secondary_node_port = 8077
|
|
18
|
-
@tertiary_node_addr = "chaos.test"
|
|
19
|
-
@tertiary_node_port = 8078
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def perform(release, *rspec_args)
|
|
23
|
-
@chaos_node = Component::Chaos.new.tap(&:start)
|
|
24
|
-
|
|
25
|
-
run_gitaly_cluster(release, rspec_args)
|
|
26
|
-
ensure
|
|
27
|
-
@chaos_node&.teardown
|
|
28
|
-
@praefect_node&.teardown
|
|
29
|
-
@sql_node&.teardown
|
|
30
|
-
@gitaly_primary_node&.teardown
|
|
31
|
-
@gitaly_secondary_node&.teardown
|
|
32
|
-
@gitaly_tertiary_node&.teardown
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|