gitlab-qa 7.5.0 → 7.7.2
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/.gitlab-ci.yml +60 -112
- data/bin/notify_upstream_commit +8 -1
- data/docs/what_tests_can_be_run.md +9 -0
- data/lib/gitlab/qa/report/generate_test_session.rb +4 -1
- data/lib/gitlab/qa/runtime/env.rb +28 -5
- data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage_aws.rb +30 -0
- data/lib/gitlab/qa/scenario/test/integration/gitaly_cluster.rb +16 -16
- data/lib/gitlab/qa/scenario/test/integration/praefect.rb +1 -0
- data/lib/gitlab/qa/scenario/test/integration/registry.rb +44 -0
- data/lib/gitlab/qa/version.rb +1 -1
- data/lib/gitlab/qa.rb +2 -0
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b1e06262f75fd783ad520f9187ef99905ba0395b37c6c8b14c3f774568711f5f
|
|
4
|
+
data.tar.gz: 6af8e95ef6e1accb3c21d215c7431dba87277d0d20482a70e2218d2091d49ce8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 48a9b41ef7f2d877f3056858d143ec93ba38f40776e3acede90e1349585d6abb3f36f2fd28e1b88e5c9b7b67f64142efe9687ce86570f174ca69b96c0046f40c
|
|
7
|
+
data.tar.gz: 82107ef081d53ed4b7e3d3ae7716d21be8189c7d3339a7998b91b912a43e1622d00e8e1b8f4c8433e4a395805af36379c920480e54be1cdf94999286a88a61b7
|
data/.gitlab-ci.yml
CHANGED
|
@@ -640,57 +640,16 @@ ee:group_saml-quarantine:
|
|
|
640
640
|
variables:
|
|
641
641
|
QA_SCENARIO: "Test::Integration::GroupSAML"
|
|
642
642
|
|
|
643
|
-
ce:
|
|
644
|
-
extends:
|
|
645
|
-
- .test
|
|
646
|
-
- .high-capacity
|
|
647
|
-
- .ce-qa
|
|
648
|
-
- .rspec-report-opts
|
|
649
|
-
allow_failure: true
|
|
650
|
-
variables:
|
|
651
|
-
QA_SCENARIO: "Test::Integration::Kubernetes"
|
|
652
|
-
|
|
653
|
-
ce:kubernetes-quarantine:
|
|
654
|
-
extends:
|
|
655
|
-
- .test
|
|
656
|
-
- .high-capacity
|
|
657
|
-
- .ce-qa
|
|
658
|
-
- .quarantine
|
|
659
|
-
- .rspec-report-opts
|
|
660
|
-
variables:
|
|
661
|
-
QA_SCENARIO: "Test::Integration::Kubernetes"
|
|
662
|
-
|
|
663
|
-
ee:kubernetes:
|
|
664
|
-
extends:
|
|
665
|
-
- .test
|
|
666
|
-
- .high-capacity
|
|
667
|
-
- .ee-qa
|
|
668
|
-
- .rspec-report-opts
|
|
669
|
-
allow_failure: true
|
|
670
|
-
variables:
|
|
671
|
-
QA_SCENARIO: "Test::Integration::Kubernetes"
|
|
672
|
-
|
|
673
|
-
ee:kubernetes-quarantine:
|
|
674
|
-
extends:
|
|
675
|
-
- .test
|
|
676
|
-
- .high-capacity
|
|
677
|
-
- .ee-qa
|
|
678
|
-
- .quarantine
|
|
679
|
-
- .rspec-report-opts
|
|
680
|
-
variables:
|
|
681
|
-
QA_SCENARIO: "Test::Integration::Kubernetes"
|
|
682
|
-
|
|
683
|
-
ce:ssh_tunnel:
|
|
643
|
+
ce:object_storage:
|
|
684
644
|
extends:
|
|
685
645
|
- .test
|
|
686
646
|
- .high-capacity
|
|
687
647
|
- .ce-qa
|
|
688
648
|
- .rspec-report-opts
|
|
689
|
-
allow_failure: true
|
|
690
649
|
variables:
|
|
691
|
-
|
|
650
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
|
692
651
|
|
|
693
|
-
ce:
|
|
652
|
+
ce:object_storage-quarantine:
|
|
694
653
|
extends:
|
|
695
654
|
- .test
|
|
696
655
|
- .high-capacity
|
|
@@ -698,19 +657,19 @@ ce:ssh_tunnel-quarantine:
|
|
|
698
657
|
- .quarantine
|
|
699
658
|
- .rspec-report-opts
|
|
700
659
|
variables:
|
|
701
|
-
|
|
660
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
|
702
661
|
|
|
703
|
-
ee:
|
|
662
|
+
ee:object_storage_aws:
|
|
704
663
|
extends:
|
|
705
664
|
- .test
|
|
706
665
|
- .high-capacity
|
|
707
666
|
- .ee-qa
|
|
708
667
|
- .rspec-report-opts
|
|
709
|
-
allow_failure: true
|
|
710
668
|
variables:
|
|
711
|
-
|
|
669
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage_aws"
|
|
670
|
+
QA_RSPEC_TAGS: "--tag object_storage"
|
|
712
671
|
|
|
713
|
-
ee:
|
|
672
|
+
ee:object_storage_aws-quarantine:
|
|
714
673
|
extends:
|
|
715
674
|
- .test
|
|
716
675
|
- .high-capacity
|
|
@@ -718,26 +677,8 @@ ee:ssh_tunnel-quarantine:
|
|
|
718
677
|
- .quarantine
|
|
719
678
|
- .rspec-report-opts
|
|
720
679
|
variables:
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
ce:object_storage:
|
|
724
|
-
extends:
|
|
725
|
-
- .test
|
|
726
|
-
- .high-capacity
|
|
727
|
-
- .ce-qa
|
|
728
|
-
- .rspec-report-opts
|
|
729
|
-
variables:
|
|
730
|
-
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
|
731
|
-
|
|
732
|
-
ce:object_storage-quarantine:
|
|
733
|
-
extends:
|
|
734
|
-
- .test
|
|
735
|
-
- .high-capacity
|
|
736
|
-
- .ce-qa
|
|
737
|
-
- .quarantine
|
|
738
|
-
- .rspec-report-opts
|
|
739
|
-
variables:
|
|
740
|
-
GITLAB_QA_OPTS: "--omnibus-config object_storage"
|
|
680
|
+
GITLAB_QA_OPTS: "--omnibus-config object_storage_aws"
|
|
681
|
+
QA_RSPEC_TAGS: "--tag quarantine --tag object_storage"
|
|
741
682
|
|
|
742
683
|
ee:object_storage:
|
|
743
684
|
extends:
|
|
@@ -1036,50 +977,23 @@ ee:jira-quarantine:
|
|
|
1036
977
|
variables:
|
|
1037
978
|
QA_SCENARIO: "Test::Integration::Jira"
|
|
1038
979
|
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
980
|
+
ce:large-setup:
|
|
981
|
+
extends:
|
|
982
|
+
- .test
|
|
983
|
+
- .high-capacity
|
|
984
|
+
- .ce-qa
|
|
985
|
+
- .rspec-report-opts
|
|
1044
986
|
variables:
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
before_script:
|
|
1056
|
-
- echo "Generating and publishing allure test report"
|
|
1057
|
-
script:
|
|
1058
|
-
- |
|
|
1059
|
-
allure-report-publisher upload gcs \
|
|
1060
|
-
--results-glob="gitlab-qa-run-*/**/allure-results/*" \
|
|
1061
|
-
--bucket="gitlab-qa-allure-reports" \
|
|
1062
|
-
--prefix="${ALLURE_JOB_NAME}/${TOP_UPSTREAM_SOURCE_REF:=$CI_COMMIT_REF_SLUG}" \
|
|
1063
|
-
--update-pr="comment" \
|
|
1064
|
-
--copy-latest \
|
|
1065
|
-
--ignore-missing-results \
|
|
1066
|
-
--color
|
|
1067
|
-
allow_failure: true
|
|
1068
|
-
rules:
|
|
1069
|
-
# Don't run report generation on release pipelines
|
|
1070
|
-
- if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null'
|
|
1071
|
-
changes: ["lib/**/version.rb"]
|
|
1072
|
-
when: never
|
|
1073
|
-
- if: '$CI_COMMIT_TAG'
|
|
1074
|
-
when: never
|
|
1075
|
-
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" || ($CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH)'
|
|
1076
|
-
variables:
|
|
1077
|
-
ALLURE_JOB_NAME: gitlab-qa
|
|
1078
|
-
when: always
|
|
1079
|
-
- if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
|
|
1080
|
-
variables:
|
|
1081
|
-
ALLURE_JOB_NAME: package-and-qa
|
|
1082
|
-
when: always
|
|
987
|
+
QA_RSPEC_TAGS: "--tag can_use_large_setup"
|
|
988
|
+
|
|
989
|
+
ee:large-setup:
|
|
990
|
+
extends:
|
|
991
|
+
- .test
|
|
992
|
+
- .high-capacity
|
|
993
|
+
- .ee-qa
|
|
994
|
+
- .rspec-report-opts
|
|
995
|
+
variables:
|
|
996
|
+
QA_RSPEC_TAGS: "--tag can_use_large_setup"
|
|
1083
997
|
|
|
1084
998
|
# This job requires the `GITLAB_QA_ACCESS_TOKEN` and `GITLAB_QA_DEV_ACCESS_TOKEN`
|
|
1085
999
|
# variable to be passed when triggered.
|
|
@@ -1177,3 +1091,37 @@ notify_slack:
|
|
|
1177
1091
|
include:
|
|
1178
1092
|
- project: 'gitlab-org/quality/pipeline-common'
|
|
1179
1093
|
file: '/ci/gem-release.yml'
|
|
1094
|
+
- project: 'gitlab-org/quality/pipeline-common'
|
|
1095
|
+
file: '/ci/allure-report.yml'
|
|
1096
|
+
|
|
1097
|
+
generate-allure-report:
|
|
1098
|
+
extends: .generate-allure-report-base
|
|
1099
|
+
stage: report
|
|
1100
|
+
variables:
|
|
1101
|
+
STORAGE_CREDENTIALS: $QA_ALLURE_REPORT_GCS_CREDENTIALS
|
|
1102
|
+
GITLAB_AUTH_TOKEN: $GITLAB_QA_MR_ALLURE_REPORT_TOKEN
|
|
1103
|
+
ALLURE_RESULTS_GLOB: gitlab-qa-run-*/**/allure-results/*
|
|
1104
|
+
# Override allure variables for upstream triggers
|
|
1105
|
+
ALLURE_PROJECT_PATH: $TOP_UPSTREAM_SOURCE_PROJECT
|
|
1106
|
+
ALLURE_MERGE_REQUEST_IID: $TOP_UPSTREAM_MERGE_REQUEST_IID
|
|
1107
|
+
ALLURE_COMMIT_SHA: $TOP_UPSTREAM_SOURCE_SHA
|
|
1108
|
+
# Override default before script and don't push cache
|
|
1109
|
+
cache:
|
|
1110
|
+
policy: pull
|
|
1111
|
+
before_script:
|
|
1112
|
+
- echo "Generating and publishing allure test report"
|
|
1113
|
+
rules:
|
|
1114
|
+
# Don't run report generation on release pipelines
|
|
1115
|
+
- if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab-qa" && $RELEASE == null'
|
|
1116
|
+
changes: ["lib/**/version.rb"]
|
|
1117
|
+
when: never
|
|
1118
|
+
- if: '$CI_COMMIT_TAG'
|
|
1119
|
+
when: never
|
|
1120
|
+
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" || ($CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH)'
|
|
1121
|
+
variables:
|
|
1122
|
+
ALLURE_JOB_NAME: gitlab-qa
|
|
1123
|
+
when: always
|
|
1124
|
+
- if: '$TOP_UPSTREAM_SOURCE_PROJECT && $TOP_UPSTREAM_SOURCE_SHA'
|
|
1125
|
+
variables:
|
|
1126
|
+
ALLURE_JOB_NAME: package-and-qa
|
|
1127
|
+
when: always
|
data/bin/notify_upstream_commit
CHANGED
|
@@ -3,10 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
require 'gitlab'
|
|
5
5
|
|
|
6
|
+
# Default to "Multi-pipeline (from 'gitlab-org/gitlab-qa' 'notify_upstream_commit:*' jobs)" from current project
|
|
7
|
+
api_token = ENV.fetch('GITLAB_QA_PROJECT_ACCESS_TOKEN') do
|
|
8
|
+
puts "The $GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN variable is deprecated in favor of a dedicated project access token: $GITLAB_QA_PROJECT_ACCESS_TOKEN."
|
|
9
|
+
puts "See https://gitlab.com/groups/gitlab-org/quality/-/epics/17 for more details."
|
|
10
|
+
ENV['GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN']
|
|
11
|
+
end
|
|
12
|
+
|
|
6
13
|
# Configure credentials to be used with gitlab gem
|
|
7
14
|
Gitlab.configure do |config|
|
|
8
15
|
config.endpoint = 'https://gitlab.com/api/v4'
|
|
9
|
-
config.private_token =
|
|
16
|
+
config.private_token = api_token
|
|
10
17
|
end
|
|
11
18
|
|
|
12
19
|
class CommitComment
|
|
@@ -813,6 +813,15 @@ $ export EE_LICENSE=$(cat /path/to/gitlab_license)
|
|
|
813
813
|
$ gitlab-qa Test::Instance::Airgapped EE -- --tag smoke
|
|
814
814
|
```
|
|
815
815
|
|
|
816
|
+
### `Test::Instance::Image CE|EE|<full image address> --omnibus-config object_storage`
|
|
817
|
+
|
|
818
|
+
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 (available on 1Password). Requires:
|
|
819
|
+
|
|
820
|
+
* `AWS_S3_REGION` - Region where the bucket is created. To optimize latency, minimize costs, or address regulatory requirements, choose any AWS Region that is geographically close to you.
|
|
821
|
+
* `AWS_S3_KEY_ID` - Key ID for the user accessing the bucket.
|
|
822
|
+
* `AWS_S3_ACCESS_KEY` - Access Key for the user accessing the bucket.
|
|
823
|
+
* `AWS_S3_BUCKET_NAME` - The name of the bucket where objects are stored. After a bucket is created, the name of that bucket cannot be used by another AWS account in any AWS Region until the bucket is deleted.
|
|
824
|
+
|
|
816
825
|
### `Test::Instance::Geo EE|<full image address>:nightly|latest|any_tag http://geo-primary.gitlab http://geo-secondary.gitlab`
|
|
817
826
|
|
|
818
827
|
This scenario will run tests tagged `:geo` against a live Geo deployment, by spinning up a GitLab QA (`gitlab/gitlab-qa`)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'erb'
|
|
4
|
+
|
|
3
5
|
module Gitlab
|
|
4
6
|
module QA
|
|
5
7
|
module Report
|
|
@@ -189,11 +191,12 @@ module Gitlab
|
|
|
189
191
|
|
|
190
192
|
def generate_test_text(testcase, tests_with_same_testcase, passed)
|
|
191
193
|
text = tests_with_same_testcase.map(&:name).uniq.join(', ')
|
|
194
|
+
encoded_text = ERB::Util.url_encode(text)
|
|
192
195
|
|
|
193
196
|
if testcase && !passed
|
|
194
197
|
# Workaround for reducing system notes on testcase issues
|
|
195
198
|
# The first regex extracts the link to the issues list page from a link to a single issue show page by removing the issue id.
|
|
196
|
-
"[#{text}](#{testcase.match(%r{[\s\S]+\/[^\/\d]+})}?state=opened&search=#{
|
|
199
|
+
"[#{text}](#{testcase.match(%r{[\s\S]+\/[^\/\d]+})}?state=opened&search=#{encoded_text}) (testcase_id=#{testcase.match(/\d+/)})"
|
|
197
200
|
else
|
|
198
201
|
text
|
|
199
202
|
end
|
|
@@ -92,7 +92,12 @@ module Gitlab
|
|
|
92
92
|
'DEPLOY_VERSION' => :deploy_version,
|
|
93
93
|
'GITLAB_QA_USER_AGENT' => :gitlab_qa_user_agent,
|
|
94
94
|
'GEO_FAILOVER' => :geo_failover,
|
|
95
|
-
'GITLAB_INITIAL_ROOT_PASSWORD' => :initial_root_password
|
|
95
|
+
'GITLAB_INITIAL_ROOT_PASSWORD' => :initial_root_password,
|
|
96
|
+
'GITLAB_TLS_CERTIFICATE' => :gitlab_tls_certificate,
|
|
97
|
+
'AWS_S3_REGION' => :aws_s3_region,
|
|
98
|
+
'AWS_S3_KEY_ID' => :aws_s3_key_id,
|
|
99
|
+
'AWS_S3_ACCESS_KEY' => :aws_s3_access_key,
|
|
100
|
+
'AWS_S3_BUCKET_NAME' => :aws_s3_bucket_name
|
|
96
101
|
}.freeze
|
|
97
102
|
|
|
98
103
|
ENV_VARIABLES.each do |env_name, method_name|
|
|
@@ -126,10 +131,6 @@ module Gitlab
|
|
|
126
131
|
ENV['GITLAB_API_BASE'] || 'https://gitlab.com/api/v4'
|
|
127
132
|
end
|
|
128
133
|
|
|
129
|
-
def gitlab_bot_multi_project_pipeline_polling_token
|
|
130
|
-
ENV['GITLAB_BOT_MULTI_PROJECT_PIPELINE_POLLING_TOKEN']
|
|
131
|
-
end
|
|
132
|
-
|
|
133
134
|
def gitlab_ci_api_token
|
|
134
135
|
ENV['GITLAB_CI_API_TOKEN']
|
|
135
136
|
end
|
|
@@ -214,6 +215,22 @@ module Gitlab
|
|
|
214
215
|
ENV['ELASTIC_VERSION'] || '6.4.2'.freeze
|
|
215
216
|
end
|
|
216
217
|
|
|
218
|
+
def aws_s3_region
|
|
219
|
+
ENV['AWS_S3_REGION']
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
def aws_s3_key_id
|
|
223
|
+
ENV['AWS_S3_KEY_ID']
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
def aws_s3_access_key
|
|
227
|
+
ENV['AWS_S3_ACCESS_KEY']
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
def aws_s3_bucket_name
|
|
231
|
+
ENV['AWS_S3_BUCKET_NAME']
|
|
232
|
+
end
|
|
233
|
+
|
|
217
234
|
def variables
|
|
218
235
|
vars = {}
|
|
219
236
|
|
|
@@ -269,6 +286,12 @@ module Gitlab
|
|
|
269
286
|
end
|
|
270
287
|
end
|
|
271
288
|
|
|
289
|
+
def require_aws_s3_environment!
|
|
290
|
+
%w[AWS_S3_REGION AWS_S3_KEY_ID AWS_S3_ACCESS_KEY AWS_S3_BUCKET_NAME].each do |env_key|
|
|
291
|
+
raise ArgumentError, "Environment variable #{env_key} must be set to run AWS S3 object storage specs" unless ENV.key?(env_key)
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
|
|
272
295
|
def require_initial_password!
|
|
273
296
|
return unless ENV['GITLAB_INITIAL_ROOT_PASSWORD'].to_s.strip.empty?
|
|
274
297
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module Runtime
|
|
6
|
+
module OmnibusConfigurations
|
|
7
|
+
class ObjectStorageAws < Default
|
|
8
|
+
def configuration
|
|
9
|
+
Runtime::Env.require_aws_s3_environment!
|
|
10
|
+
|
|
11
|
+
<<~OMNIBUS
|
|
12
|
+
gitlab_rails['object_store']['enabled'] = true
|
|
13
|
+
gitlab_rails['object_store']['proxy_download'] = true
|
|
14
|
+
gitlab_rails['object_store']['connection'] = { 'provider' => 'AWS', 'region' => '#{Runtime::Env.aws_s3_region}', 'aws_access_key_id' => '#{Runtime::Env.aws_s3_key_id}', 'aws_secret_access_key' => '#{Runtime::Env.aws_s3_access_key}' }
|
|
15
|
+
|
|
16
|
+
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
17
|
+
gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
18
|
+
gitlab_rails['object_store']['objects']['lfs']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
19
|
+
gitlab_rails['object_store']['objects']['uploads']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
20
|
+
gitlab_rails['object_store']['objects']['packages']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
21
|
+
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
22
|
+
gitlab_rails['object_store']['objects']['pages']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
23
|
+
gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = '#{Runtime::Env.aws_s3_bucket_name}'
|
|
24
|
+
OMNIBUS
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -107,23 +107,23 @@ module Gitlab
|
|
|
107
107
|
praefect['database_password'] = 'SQL_PASSWORD';
|
|
108
108
|
praefect['database_dbname'] = 'praefect_production';
|
|
109
109
|
praefect['database_sslmode'] = 'disable';
|
|
110
|
-
praefect['
|
|
111
|
-
praefect['
|
|
112
|
-
praefect['failover_election_strategy'] = 'per_repository';
|
|
110
|
+
praefect['database_direct_host'] = '#{@database}.#{@network}';
|
|
111
|
+
praefect['database_direct_port'] = 5432;
|
|
113
112
|
praefect['virtual_storages'] = {
|
|
114
113
|
'default' => {
|
|
115
|
-
'
|
|
116
|
-
'
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
114
|
+
'nodes' => {
|
|
115
|
+
'#{@primary_node_name}' => {
|
|
116
|
+
'address' => 'tcp://#{@primary_node_name}.#{@network}:8075',
|
|
117
|
+
'token' => 'PRAEFECT_INTERNAL_TOKEN'
|
|
118
|
+
},
|
|
119
|
+
'#{@secondary_node_name}' => {
|
|
120
|
+
'address' => 'tcp://#{@secondary_node_name}.#{@network}:8075',
|
|
121
|
+
'token' => 'PRAEFECT_INTERNAL_TOKEN'
|
|
122
|
+
},
|
|
123
|
+
'#{@tertiary_node_name}' => {
|
|
124
|
+
'address' => 'tcp://#{@tertiary_node_name}.#{@network}:8075',
|
|
125
|
+
'token' => 'PRAEFECT_INTERNAL_TOKEN'
|
|
126
|
+
}
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
};
|
|
@@ -164,7 +164,7 @@ module Gitlab
|
|
|
164
164
|
'gitaly_token' => 'PRAEFECT_EXTERNAL_TOKEN'
|
|
165
165
|
}
|
|
166
166
|
});
|
|
167
|
-
gitaly['
|
|
167
|
+
gitaly['enable'] = false;
|
|
168
168
|
gitlab_shell['secret_token'] = 'GITLAB_SHELL_SECRET_TOKEN';
|
|
169
169
|
prometheus['scrape_configs'] = [
|
|
170
170
|
{
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Gitlab
|
|
4
|
+
module QA
|
|
5
|
+
module Scenario
|
|
6
|
+
module Test
|
|
7
|
+
module Integration
|
|
8
|
+
class Registry < Scenario::Template
|
|
9
|
+
def perform(release, *rspec_args)
|
|
10
|
+
Component::Gitlab.perform do |gitlab|
|
|
11
|
+
gitlab.release = release
|
|
12
|
+
gitlab.network = 'test'
|
|
13
|
+
gitlab.name = 'gitlab'
|
|
14
|
+
gitlab.tls = true
|
|
15
|
+
|
|
16
|
+
gitlab.omnibus_configuration << <<~OMNIBUS
|
|
17
|
+
external_url 'https://#{gitlab.name}.#{gitlab.network}';
|
|
18
|
+
registry_external_url 'https://#{gitlab.name}.#{gitlab.network}:5050';
|
|
19
|
+
|
|
20
|
+
letsencrypt['enable'] = false;
|
|
21
|
+
|
|
22
|
+
nginx['redirect_http_to_https'] = true;
|
|
23
|
+
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.test.crt";
|
|
24
|
+
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.test.key";
|
|
25
|
+
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.test.crt";
|
|
26
|
+
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.test.key";
|
|
27
|
+
OMNIBUS
|
|
28
|
+
|
|
29
|
+
gitlab.instance do
|
|
30
|
+
Component::Specs.perform do |specs|
|
|
31
|
+
specs.suite = 'Test::Integration::Registry'
|
|
32
|
+
specs.release = gitlab.release
|
|
33
|
+
specs.network = gitlab.network
|
|
34
|
+
specs.args = [gitlab.address, *rspec_args]
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
data/lib/gitlab/qa/version.rb
CHANGED
data/lib/gitlab/qa.rb
CHANGED
|
@@ -14,6 +14,7 @@ module Gitlab
|
|
|
14
14
|
autoload :Default, 'gitlab/qa/runtime/omnibus_configurations/default'
|
|
15
15
|
autoload :Packages, 'gitlab/qa/runtime/omnibus_configurations/packages'
|
|
16
16
|
autoload :ObjectStorage, 'gitlab/qa/runtime/omnibus_configurations/object_storage'
|
|
17
|
+
autoload :ObjectStorageAws, 'gitlab/qa/runtime/omnibus_configurations/object_storage_aws'
|
|
17
18
|
autoload :LicenseMode, 'gitlab/qa/runtime/omnibus_configurations/license_mode'
|
|
18
19
|
end
|
|
19
20
|
end
|
|
@@ -66,6 +67,7 @@ module Gitlab
|
|
|
66
67
|
autoload :SSHTunnel, 'gitlab/qa/scenario/test/integration/ssh_tunnel'
|
|
67
68
|
autoload :MTLS, 'gitlab/qa/scenario/test/integration/mtls'
|
|
68
69
|
autoload :ClientSSL, 'gitlab/qa/scenario/test/integration/client_ssl'
|
|
70
|
+
autoload :Registry, 'gitlab/qa/scenario/test/integration/registry'
|
|
69
71
|
end
|
|
70
72
|
|
|
71
73
|
module Sanity
|
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: 7.
|
|
4
|
+
version: 7.7.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- GitLab Quality
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-08-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: climate_control
|
|
@@ -293,6 +293,7 @@ files:
|
|
|
293
293
|
- lib/gitlab/qa/runtime/omnibus_configurations/default.rb
|
|
294
294
|
- lib/gitlab/qa/runtime/omnibus_configurations/license_mode.rb
|
|
295
295
|
- lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb
|
|
296
|
+
- lib/gitlab/qa/runtime/omnibus_configurations/object_storage_aws.rb
|
|
296
297
|
- lib/gitlab/qa/runtime/omnibus_configurations/packages.rb
|
|
297
298
|
- lib/gitlab/qa/runtime/scenario.rb
|
|
298
299
|
- lib/gitlab/qa/runtime/token_finder.rb
|
|
@@ -328,6 +329,7 @@ files:
|
|
|
328
329
|
- lib/gitlab/qa/scenario/test/integration/mattermost.rb
|
|
329
330
|
- lib/gitlab/qa/scenario/test/integration/mtls.rb
|
|
330
331
|
- lib/gitlab/qa/scenario/test/integration/praefect.rb
|
|
332
|
+
- lib/gitlab/qa/scenario/test/integration/registry.rb
|
|
331
333
|
- lib/gitlab/qa/scenario/test/integration/saml.rb
|
|
332
334
|
- lib/gitlab/qa/scenario/test/integration/smtp.rb
|
|
333
335
|
- lib/gitlab/qa/scenario/test/integration/ssh_tunnel.rb
|