gitlab-qa 15.9.0 → 15.10.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62f35e5b964b9eebe81ee065da70d428ad6a92e42146ece90c99cb058992608d
4
- data.tar.gz: dadb71a13c7fc0d5c16f939d87e004ef70bba72468624ed089fb7b6592f647ff
3
+ metadata.gz: e921902d91ded31ce0003274106b20236f6b71231508fe4236ae926cbae8db26
4
+ data.tar.gz: 23e8702dd725cd0f8cbd3d2105da4b5f6799f9eac1a19093f3d0c277cd957385
5
5
  SHA512:
6
- metadata.gz: e39b28201d0ae2d1f4fce45b6b37960ca2269072ffafdd0d245d35d99f7d69eafc5cd93cf0aed3b253ebf03debd57862709995ca31702ab23e490972879ca334
7
- data.tar.gz: bb8ab755a2fb9edb127bf7c17d8949d000acf3e75a5b1c2fabfc6ef5b0895588836ca8ac0e0c790f9ebd7d21a48665b1ea95c13c7d1b18103bbb97ee58864fec
6
+ metadata.gz: c599a048d4937a6f01c0b5a469f59c2377ead8e85cf301f8d2332efafdbc076779fd245afa74bd6b073fb8e9bd2a87e59c37c0a579e68d6461a509b4bffd6813
7
+ data.tar.gz: 55c98ba9302e97e8c2d1b4f269fe81d0de926be93840cb9b0b0c04389c8d3f8e632c3001eecb2de57060d41ad3e447c5fc81f53aeb75303cb9ec3739ae72255b
data/.gitlab-ci.yml CHANGED
@@ -54,7 +54,6 @@ variables:
54
54
  changes: ["lib/**/version.rb"]
55
55
 
56
56
  test-on-omnibus-env:
57
- image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/alpine:latest
58
57
  stage: .pre
59
58
  variables:
60
59
  BUILD_ENV: build.env
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-qa (15.9.0)
4
+ gitlab-qa (15.10.1)
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.8.1)
30
- public_suffix (>= 2.0.2, < 6.0)
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)
@@ -42,25 +42,27 @@ GEM
42
42
  climate_control (1.0.1)
43
43
  coderay (1.1.3)
44
44
  colored2 (3.1.2)
45
- concurrent-ruby (1.3.5)
45
+ concurrent-ruby (1.3.8)
46
46
  connection_pool (2.5.4)
47
47
  cork (0.3.0)
48
48
  colored2 (~> 3.1)
49
49
  crack (0.4.5)
50
50
  rexml
51
- danger (9.1.0)
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 (~> 3.1)
56
+ colored2 (>= 3.1, < 5)
55
57
  cork (~> 0.1)
56
- faraday (>= 0.9.0, < 2.0)
58
+ faraday (>= 0.9.0, < 3.0)
57
59
  faraday-http-cache (~> 2.0)
58
- git (~> 1.7)
59
- kramdown (~> 2.3)
60
+ git (>= 1.13)
61
+ kramdown (>= 2.5.1, < 3.0)
60
62
  kramdown-parser-gfm (~> 1.0)
61
- no_proxy_fix
62
- octokit (~> 5.0)
63
- terminal-table (>= 1, < 4)
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 (1.10.2)
74
- faraday-em_http (~> 1.0)
75
- faraday-em_synchrony (~> 1.0)
76
- faraday-excon (~> 1.1)
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-httpclient (1.0.1)
91
- faraday-multipart (1.0.4)
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 (1.12.0)
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.20.0)
127
- mime-types (~> 3.0)
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.4.0)
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
- mime-types (3.4.1)
144
- mime-types-data (~> 3.2015)
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
- no_proxy_fix (0.1.2)
152
- nokogiri (1.13.9)
153
- mini_portile2 (~> 2.8.0)
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
- public_suffix (5.0.0)
169
- racc (1.6.0)
170
- rack (3.0.7)
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.8.0)
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.2.5)
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.1.0)
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 (~> 2.1)
279
+ simplecov-cobertura (~> 3.0)
288
280
  solargraph (~> 0.41)
289
281
  timecop (~> 0.9.5)
290
282
  webmock (= 3.7.0)
@@ -137,9 +137,9 @@ Multiple Configurators may be specified and the order will be preserved in which
137
137
  E.g., given the arguments:
138
138
 
139
139
  ```ruby
140
- exe/gitlab-qa Test::Instance::Image EE --omnibus-config packages,registry
140
+ exe/gitlab-qa Test::Instance::Image EE --omnibus-config github_oauth,registry_object_storage
141
141
  # or
142
- exe/gitlab-qa Test::Instance::Image EE --omnibus-config packages --omnibus-config registry
142
+ exe/gitlab-qa Test::Instance::Image EE --omnibus-config github_oauth --omnibus-config registry_object_storage
143
143
  ```
144
144
 
145
145
  Omnibus will be configured in the order they appear.
@@ -147,11 +147,11 @@ Omnibus will be configured in the order they appear.
147
147
  ```ruby
148
148
  # /etc/gitlab/gitlab.rb
149
149
  #=> Runtime::OmnibusConfiguration::Default#configuration
150
- #=> Runtime::OmnibusConfiguration::Packages#configuration
151
- #=> Runtime::OmnibusConfiguration::Registry#configuration
150
+ #=> Runtime::OmnibusConfiguration::GithubOauth#configuration
151
+ #=> Runtime::OmnibusConfiguration::RegistryObjectStorage#configuration
152
152
  ```
153
153
 
154
- The order is also preserved for Sidecar containers. If the `Packages` and `Registry` Configurators each prepare a sidecar container, they will be spun up in order from first to last.
154
+ The order is also preserved for Sidecar containers. If the `GithubOauth` and `RegistryObjectStorage` Configurators each prepare a sidecar container, they will be spun up in order from first to last.
155
155
 
156
156
  ### Adding one-off configurations
157
157
 
@@ -636,41 +636,14 @@ $ export QA_1P_PASSWORD=1password_password
636
636
  $ export QA_1P_SECRET=1password_secret
637
637
  $ export QA_1P_GITHUB_UUID=1password_gitlab-qa-github_item_uuid
638
638
 
639
- $ gitlab-qa Test::Integration::OAuth CE
639
+ $ gitlab-qa Test::Instance::Image CE --omnibus-config github_oauth
640
640
 
641
641
  # For EE
642
642
  $ export EE_LICENSE=$(cat /path/to/gitlab_license)
643
643
 
644
- $ gitlab-qa Test::Integration::OAuth EE
644
+ $ gitlab-qa Test::Instance::Image EE --omnibus-config github_oauth
645
645
  ```
646
646
 
647
- ### `Test::Integration::Packages CE|EE|<full image address>`
648
-
649
- **Note: This Scenario no longer exists. See https://gitlab.com/gitlab-org/gitlab-qa/-/merge_requests/662**
650
-
651
- To run Packages tests, you may [configure Omnibus](configuring_omnibus.md) to use the [Packages](https://gitlab.com/gitlab-org/gitlab-qa/-/blob/master/lib/gitlab/qa/runtime/omnibus_configurations/packages.rb) configurator.
652
-
653
- Example:
654
-
655
- ```shell
656
- $ export EE_LICENSE=$(cat /path/to/Geo.gitlab_license)
657
-
658
- $ gitlab-qa Test::Instance::Image EE --omnibus-config packages
659
- ```
660
-
661
- This tests the GitLab Package Registry feature by setting
662
- `gitlab_rails['packages_enabled'] = true` in the Omnibus configuration
663
- before starting the GitLab container.
664
-
665
- To run tests against the GitLab container, a GitLab QA (`gitlab/gitlab-qa`)
666
- container is spun up and tests are run from it by running the
667
- `Test::Instance::All` scenario with the `--tag packages` RSpec parameter,
668
- which runs only the tests with `:packages` metadata.
669
-
670
- **Required environment variables:**
671
-
672
- - `EE_LICENSE`: A valid EE license.
673
-
674
647
  ### `Test::Integration::Praefect CE|EE|<full image address>`
675
648
 
676
649
  This tests [Praefect](https://docs.gitlab.com/ee/administration/gitaly/praefect.html),
@@ -1046,7 +1019,7 @@ $ gitlab-qa Test::Instance::Airgapped EE -- --tag smoke
1046
1019
 
1047
1020
  ### `Test::Instance::Image CE|EE|<full image address> --omnibus-config object_storage`
1048
1021
 
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 Minio 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:
1022
+ 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_gcs`. According to the storage selected it requires:
1050
1023
 
1051
1024
  | Scenario | Variable | Description |
1052
1025
  |-----------------------|---------------------|--------------------------------------|
@@ -1054,7 +1027,7 @@ This orchestrated scenario runs tests from the test suite against a GitLab insta
1054
1027
  | AWS S3 Object Storage | AWS_S3_KEY_ID | AWS credentials |
1055
1028
  | AWS S3 Object Storage | AWS_S3_ACCESS_KEY | AWS credentials |
1056
1029
  | AWS S3 Object Storage | AWS_S3_BUCKET_NAME | Name of the bucket set in AWS |
1057
- | GCP Object Storage | GCS_BUCKET_NAME | Name of the bucket set in AWS |
1030
+ | GCP Object Storage | GCS_BUCKET_NAME | Name of the bucket set in GCP |
1058
1031
  | GCP Object Storage | GOOGLE_JSON_KEY | JSON key credential |
1059
1032
  | GCP Object Storage | GOOGLE_CLIENT_EMAIL | Email address of the service account |
1060
1033
  | GCP Object Storage | GOOGLE_PROJECT | GCP project name |
@@ -1139,33 +1112,6 @@ $ export GITLAB_PASSWORD="$GITLAB_QA_PASSWORD"
1139
1112
  $ gitlab-qa Test::Instance::Geo EE https://primary.gitlab.com https://secondary.gitlab.com
1140
1113
  ```
1141
1114
 
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
1115
  ### `Test::Integration::Import`
1170
1116
 
1171
1117
  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', '~> 2.1'
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 the Minio (https://hub.docker.com/r/minio/minio)
8
- # image with the proper configuration for GitLab users to use object storage.
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 Minio < Base
13
- DOCKER_IMAGE = 'minio/minio'
13
+ class Silo < Base
14
+ DOCKER_IMAGE = 'pgsty/silo'
14
15
  DOCKER_IMAGE_TAG = 'latest'
15
- # These are secrets used in a local Minio container, they're not used for any online S3 server.
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, 'minio')
51
+ File.join(base_dir, 'silo')
51
52
  end
52
53
 
53
54
  def name
54
- @name ||= "minio-#{SecureRandom.hex(4)}"
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 Minio bucket: #{bucket}")
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
- # --compat needed until https://gitlab.com/gitlab-org/gitlab-workhorse/issues/210
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'] = #{minio.to_config}
19
+ gitlab_rails['object_store']['connection'] = #{silo.to_config}
20
20
  OMNIBUS
21
21
  end
22
22
 
23
23
  def prepare
24
- minio.network = Runtime::Env.docker_network
24
+ silo.network = Runtime::Env.docker_network
25
25
 
26
26
  TYPES.each do |bucket_name|
27
- minio.add_bucket("#{bucket_name}-bucket")
27
+ silo.add_bucket("#{bucket_name}-bucket")
28
28
  end
29
29
 
30
- minio
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 minio
40
- @minio ||= Component::Minio.new
39
+ def silo
40
+ @silo ||= Component::Silo.new
41
41
  end
42
42
  end
43
43
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Gitlab
4
4
  module QA
5
- VERSION = '15.9.0'
5
+ VERSION = '15.10.1'
6
6
  end
7
7
  end
@@ -83,20 +83,13 @@ class GitlabDuoSetup
83
83
  ENV.fetch(key, default) == 'true'
84
84
  end
85
85
 
86
- def find_add_on_purchase(add_on:)
87
- GitlabSubscriptions::AddOnPurchase.find_by(add_on: add_on)
88
- end
89
-
86
+ # AddOnPurchase#add_on is no longer an ActiveRecord association, so query through the model's scopes
90
87
  def duo_pro_add_on
91
- return nil unless GitlabSubscriptions::AddOn.respond_to?(:code_suggestions)
92
-
93
- find_add_on_purchase(add_on: GitlabSubscriptions::AddOn.code_suggestions.last)
88
+ GitlabSubscriptions::AddOnPurchase.for_gitlab_duo_pro.last
94
89
  end
95
90
 
96
91
  def duo_enterprise_add_on
97
- return nil unless GitlabSubscriptions::AddOn.respond_to?(:duo_enterprise)
98
-
99
- find_add_on_purchase(add_on: GitlabSubscriptions::AddOn.duo_enterprise.last)
92
+ GitlabSubscriptions::AddOnPurchase.for_duo_enterprise.last
100
93
  end
101
94
 
102
95
  def admin
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.9.0
4
+ version: 15.10.1
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-09-23 00:00:00.000000000 Z
11
+ date: 2026-10-27 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: '2.1'
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: '2.1'
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