gitlab-qa 14.10.0 → 14.12.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/.gitlab-ci.yml +5 -7
- data/.rubocop_todo.yml +0 -1
- data/Gemfile.lock +1 -1
- data/docs/what_tests_can_be_run.md +6 -22
- data/lib/gitlab/qa/component/ai_gateway.rb +71 -1
- data/lib/gitlab/qa/component/chaos.rb +1 -1
- data/lib/gitlab/qa/component/gitaly_cluster.rb +1 -1
- data/lib/gitlab/qa/component/gitlab.rb +1 -0
- data/lib/gitlab/qa/runner.rb +0 -13
- data/lib/gitlab/qa/runtime/env.rb +124 -119
- data/lib/gitlab/qa/runtime/omnibus_configurations/object_storage.rb +1 -1
- data/lib/gitlab/qa/scenario/test/instance/airgapped.rb +1 -1
- data/lib/gitlab/qa/scenario/test/instance/image.rb +1 -1
- data/lib/gitlab/qa/scenario/test/instance/relative_url.rb +1 -1
- data/lib/gitlab/qa/scenario/test/instance/repository_storage.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/ai_gateway_base.rb +2 -1
- data/lib/gitlab/qa/scenario/test/integration/client_ssl.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/elasticsearch.rb +2 -2
- data/lib/gitlab/qa/scenario/test/integration/gitlab_pages.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/import.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/integrations.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/jira.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/ldap.rb +3 -3
- data/lib/gitlab/qa/scenario/test/integration/mattermost.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/metrics.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/mtls.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/opensearch.rb +2 -2
- data/lib/gitlab/qa/scenario/test/integration/registry.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/registry_tls.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb +2 -2
- data/lib/gitlab/qa/scenario/test/integration/saml.rb +3 -3
- data/lib/gitlab/qa/scenario/test/integration/service_ping_disabled.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/smtp.rb +1 -1
- data/lib/gitlab/qa/scenario/test/integration/suggested_reviewer.rb +1 -1
- data/lib/gitlab/qa/scenario/test/omnibus/update_from_previous.rb +25 -7
- data/lib/gitlab/qa/support/gitlab_upgrade_path.rb +2 -2
- data/lib/gitlab/qa/version.rb +1 -1
- data/rubocop/cop/gitlab/dangerous_interpolation.rb +0 -1
- metadata +2 -5
- data/lib/gitlab/qa/component/telegraf.rb +0 -175
- data/lib/gitlab/qa/scenario/test/instance/staging_geo.rb +0 -32
- data/lib/gitlab/qa/scenario/test/sanity/version.rb +0 -93
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: bd465ad052ddf27bfec3d32c3223690dc815b71b805443619f01ee2f59a5e598
         | 
| 4 | 
            +
              data.tar.gz: a8624cdb6d986a4db3cb951202e4050906023986e83a5876c30806db0ee4be30
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5e4e1b15180da4d39924afaa31e26ddd7e95b89c69a05f5602ccdc762428091754d97181791824c9c184a3d862bbdb17e0fd7a6579703d5ef5421c96d190bfbc
         | 
| 7 | 
            +
              data.tar.gz: 63ff9aa5f91a6be51968f96322ff607d3769b4b269e71ac7c37712e8526cd8f414b1e25035523d64512819f0ab1cfb8dc1421a14fafcc9373b27853e79ade60d
         | 
    
        data/.gitlab-ci.yml
    CHANGED
    
    | @@ -8,9 +8,10 @@ | |
| 8 8 | 
             
                - vendor/ruby
         | 
| 9 9 |  | 
| 10 10 | 
             
            include:
         | 
| 11 | 
            -
              - component:  | 
| 11 | 
            +
              - component: ${CI_SERVER_FQDN}/gitlab-org/components/danger-review/danger-review@1.4.0
         | 
| 12 12 | 
             
                inputs:
         | 
| 13 | 
            -
                  job_image: "${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION} | 
| 13 | 
            +
                  job_image: "${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}"
         | 
| 14 | 
            +
                  job_stage: "check"
         | 
| 14 15 | 
             
              - component: gitlab.com/gitlab-org/components/gem-release/gem-release@~latest
         | 
| 15 16 |  | 
| 16 17 | 
             
            stages:
         | 
| @@ -20,7 +21,7 @@ stages: | |
| 20 21 | 
             
              - deploy
         | 
| 21 22 |  | 
| 22 23 | 
             
            default:
         | 
| 23 | 
            -
              image: ${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION} | 
| 24 | 
            +
              image: ${CI_REGISTRY}/gitlab-org/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}
         | 
| 24 25 | 
             
              tags:
         | 
| 25 26 | 
             
                - gitlab-org
         | 
| 26 27 | 
             
              cache:
         | 
| @@ -43,8 +44,7 @@ workflow: | |
| 43 44 | 
             
            variables:
         | 
| 44 45 | 
             
              DEBIAN_VERSION: bookworm
         | 
| 45 46 | 
             
              DOCKER_VERSION: "24.0.5"
         | 
| 46 | 
            -
               | 
| 47 | 
            -
              RUBY_VERSION: "3.1"
         | 
| 47 | 
            +
              RUBY_VERSION: "3.1.5"
         | 
| 48 48 | 
             
              BUNDLE_PATH: vendor
         | 
| 49 49 | 
             
              BUNDLE_SILENCE_ROOT_WARNING: "true"
         | 
| 50 50 | 
             
              BUNDLE_SUPPRESS_INSTALL_USING_MESSAGES: "true"
         | 
| @@ -99,7 +99,6 @@ cache-gems: | |
| 99 99 | 
             
                    - Gemfile.lock
         | 
| 100 100 |  | 
| 101 101 | 
             
            danger-review:
         | 
| 102 | 
            -
              stage: check
         | 
| 103 102 | 
             
              needs:
         | 
| 104 103 | 
             
                - job: cache-gems
         | 
| 105 104 | 
             
                  optional: true
         | 
| @@ -145,7 +144,6 @@ package-and-test: | |
| 145 144 | 
             
                  - RUBY_VERSION
         | 
| 146 145 | 
             
                  - DEBIAN_VERSION
         | 
| 147 146 | 
             
                  - DOCKER_VERSION
         | 
| 148 | 
            -
                  - BUNDLER_VERSION
         | 
| 149 147 | 
             
              trigger:
         | 
| 150 148 | 
             
                strategy: depend
         | 
| 151 149 | 
             
                forward:
         | 
    
        data/.rubocop_todo.yml
    CHANGED
    
    | @@ -55,7 +55,6 @@ Metrics/AbcSize: | |
| 55 55 | 
             
                - 'lib/gitlab/qa/scenario/test/integration/registry_with_cdn.rb'
         | 
| 56 56 | 
             
                - 'lib/gitlab/qa/scenario/test/integration/smtp.rb'
         | 
| 57 57 | 
             
                - 'lib/gitlab/qa/scenario/test/integration/suggested_reviewer.rb'
         | 
| 58 | 
            -
                - 'lib/gitlab/qa/scenario/test/sanity/version.rb'
         | 
| 59 58 |  | 
| 60 59 | 
             
            # Offense count: 2
         | 
| 61 60 | 
             
            # Configuration parameters: CheckIdentifiers, CheckConstants, CheckVariables, CheckStrings, CheckSymbols, CheckComments, CheckFilepaths, FlaggedTerms.
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
| @@ -63,6 +63,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa | |
| 63 63 | 
             
            | `QA_EE_ACTIVATION_CODE` |-  | Cloud activation code to enable Enterprise Edition features. | No|
         | 
| 64 64 | 
             
            | `QA_ARTIFACTS_DIR` |`/tmp/gitlab-qa`| Path to a directory where artifacts (logs and screenshots) for failing tests will be saved. | No|
         | 
| 65 65 | 
             
            | `DOCKER_HOST` |`http://localhost`| Docker host to run tests against. | No|
         | 
| 66 | 
            +
            | `QA_DOCKER_NETWORK` | `test` | Name of the Docker network that is created to allow connectivity between GitLab and other containers. | No |
         | 
| 66 67 | 
             
            | `WEBDRIVER_HEADLESS` |-  | When running locally, set to `false` to allow Chrome tests to be visible - watch your tests being run. | No|
         | 
| 67 68 | 
             
            | `CHROME_DISABLE_DEV_SHM` | `false` | Set to `true` to disable `/dev/shm` usage in Chrome on Linux. | No|
         | 
| 68 69 | 
             
            | `QA_ADDITIONAL_REPOSITORY_STORAGE` |-  | The name of additional, non-default storage to be used with tests tagged `repository_storage`, run via the `Test::Instance::RepositoryStorage` scenario.  Note: Admin access is required to change repository storage. | No|
         | 
| @@ -85,7 +86,7 @@ All environment variables used by GitLab QA should be defined in [`lib/gitlab/qa | |
| 85 86 | 
             
            | `QA_INFLUXDB_TOKEN` |- | InfluxDB token for test metrics reporting | No|
         | 
| 86 87 | 
             
            | `QA_RUN_TYPE` |- | QA run type like `staging-full`, `canary`, `production` etc. Used in test metrics reporting | No|
         | 
| 87 88 | 
             
            | `QA_VALIDATE_RESOURCE_REUSE` | `false` | Set to `true` to [validate resource reuse](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/resources.html#reusable-resources) after a test suite | No |
         | 
| 88 | 
            -
            | `QA_USE_PUBLIC_IP_API` | `false` | When performing Instance tests against a remote/pre-existing instance, use an API to detect the public API for requests coming from gitlab-qa.  Used by tests that exercise IP-address restrictions and similar
         | 
| 89 | 
            +
            | `QA_USE_PUBLIC_IP_API` | `false` | When performing Instance tests against a remote/pre-existing instance, use an API to detect the public API for requests coming from gitlab-qa.  Used by tests that exercise IP-address restrictions and similar | No |
         | 
| 89 90 | 
             
            | `QA_GITHUB_USERNAME` |-  | Username for authenticating with GitHub. | No|
         | 
| 90 91 | 
             
            | `QA_GITHUB_PASSWORD` |-  | Password for authenticating with GitHub. | No|
         | 
| 91 92 | 
             
            | `GITLAB_QA_LOOP_RUNNER_MINUTES` | `1` | Minutes to run and repeat a spec while using the '--loop' option; default value is 1 minute. | No|
         | 
| @@ -333,7 +334,7 @@ Scenario verifies upgrade from previous (major|minor) version to current release | |
| 333 334 | 
             
            - Deploys previous (major|minor) version and runs Smoke test suite
         | 
| 334 335 | 
             
              to populate data in database before upgrade
         | 
| 335 336 | 
             
            - Generates upgrade path following current GitLab recommendations
         | 
| 336 | 
            -
              from ['gitlab | 
| 337 | 
            +
              from ['gitlab.com/gitlab-org/gitlab'](https://gitlab.com/gitlab-org/gitlab/-/raw/master/config/upgrade_path.yml) project
         | 
| 337 338 | 
             
            - Gradually upgrades GitLab instances to `<current_version>`
         | 
| 338 339 | 
             
              associated with provided `<full image address>` and runs tests against it
         | 
| 339 340 |  | 
| @@ -883,9 +884,9 @@ $ export GITLAB_PASSWORD="$GITLAB_QA_PASSWORD" | |
| 883 884 | 
             
            $ gitlab-qa Test::Instance::StagingRef
         | 
| 884 885 | 
             
            ```
         | 
| 885 886 |  | 
| 886 | 
            -
            ### `Test::Instance:: | 
| 887 | 
            +
            ### `Test::Instance::StagingRefGeo`
         | 
| 887 888 |  | 
| 888 | 
            -
            This scenario tests that the Geo staging deployment (with [`staging.gitlab.com`](https://staging.gitlab.com) as the primary site and [`geo.staging.gitlab.com`](https://geo.staging.gitlab.com) as the secondary site) works as expected by running tests tagged `:geo` against it. This is done by spinning up a GitLab QA (`gitlab/gitlab-qa`) container and running the `QA::EE::Scenario::Test::Geo` scenario. Note that the Geo setup steps in the `QA::EE::Scenario::Test::Geo` scenario are skipped when testing a live Geo deployment.
         | 
| 889 | 
            +
            This scenario tests that the Geo staging deployment (with [`staging-ref.gitlab.com`](https://staging-ref.gitlab.com) as the primary site and [`geo.staging-ref.gitlab.com`](https://geo.staging-ref.gitlab.com) as the secondary site) works as expected by running tests tagged `:geo` against it. This is done by spinning up a GitLab QA (`gitlab/gitlab-qa`) container and running the `QA::EE::Scenario::Test::Geo` scenario. Note that the Geo setup steps in the `QA::EE::Scenario::Test::Geo` scenario are skipped when testing a live Geo deployment.
         | 
| 889 890 |  | 
| 890 891 | 
             
            **Required user properties:**
         | 
| 891 892 |  | 
| @@ -907,23 +908,6 @@ This scenario tests that the Geo staging deployment (with [`staging.gitlab.com`] | |
| 907 908 | 
             
              If the variable isn't present, the QA image from Docker Hub will be used.
         | 
| 908 909 | 
             
              This can be found in the shared 1Password vault.
         | 
| 909 910 |  | 
| 910 | 
            -
            Example:
         | 
| 911 | 
            -
             | 
| 912 | 
            -
            ```shell
         | 
| 913 | 
            -
            $ export GITLAB_QA_ACCESS_TOKEN=your_api_access_token
         | 
| 914 | 
            -
            $ export GITLAB_QA_DEV_ACCESS_TOKEN=your_dev_registry_access_token
         | 
| 915 | 
            -
            $ export GITLAB_USERNAME="gitlab-qa"
         | 
| 916 | 
            -
            $ export GITLAB_PASSWORD="$GITLAB_QA_PASSWORD"
         | 
| 917 | 
            -
             | 
| 918 | 
            -
            $ gitlab-qa Test::Instance::StagingGeo
         | 
| 919 | 
            -
            ```
         | 
| 920 | 
            -
             | 
| 921 | 
            -
            ### `Test::Instance::StagingRefGeo`
         | 
| 922 | 
            -
             | 
| 923 | 
            -
            This scenario tests that the Geo staging deployment (with [`staging-ref.gitlab.com`](https://staging-ref.gitlab.com) as the primary site and [`geo.staging-ref.gitlab.com`](https://geo.staging-ref.gitlab.com) as the secondary site) works as expected by running tests tagged `:geo` against it. This is done by spinning up a GitLab QA (`gitlab/gitlab-qa`) container and running the `QA::EE::Scenario::Test::Geo` scenario. Note that the Geo setup steps in the `QA::EE::Scenario::Test::Geo` scenario are skipped when testing a live Geo deployment.
         | 
| 924 | 
            -
             | 
| 925 | 
            -
            Scenario requirements are the same as [`Test::Instance::StagingGeo`](#testinstancestaginggeo) described above.
         | 
| 926 | 
            -
             | 
| 927 911 | 
             
            ```shell
         | 
| 928 912 | 
             
            $ export GITLAB_QA_ACCESS_TOKEN=your_api_access_token
         | 
| 929 913 | 
             
            $ export GITLAB_QA_DEV_ACCESS_TOKEN=your_dev_registry_access_token
         | 
| @@ -1034,7 +1018,7 @@ These tests verify features related to multiple repository storages. | |
| 1034 1018 | 
             
            Example:
         | 
| 1035 1019 |  | 
| 1036 1020 | 
             
            ```shell
         | 
| 1037 | 
            -
            $ export QA_ADDITIONAL_REPOSITORY_STORAGE=secondary | 
| 1021 | 
            +
            $ export QA_ADDITIONAL_REPOSITORY_STORAGE=secondary
         | 
| 1038 1022 | 
             
            $ export QA_GITALY_NON_CLUSTER_STORAGE=gitaly
         | 
| 1039 1023 | 
             
            $ export QA_PRAEFECT_REPOSITORY_STORAGE=praefect
         | 
| 1040 1024 |  | 
| @@ -8,6 +8,74 @@ module Gitlab | |
| 8 8 | 
             
                    DOCKER_IMAGE_TAG = 'latest'
         | 
| 9 9 | 
             
                    LOG_DIR = '/var/log'
         | 
| 10 10 |  | 
| 11 | 
            +
                    # Test signing key to enable direct connection code completions
         | 
| 12 | 
            +
                    # https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/97f54f4b7e43258a39bba7f29f38fe44bd316ce5/example.env#L79
         | 
| 13 | 
            +
                    TEST_SIGNING_KEY =
         | 
| 14 | 
            +
                      <<~SIGNING_KEY
         | 
| 15 | 
            +
                        -----BEGIN PRIVATE KEY-----
         | 
| 16 | 
            +
                        MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD35X6SQq7VuIV8
         | 
| 17 | 
            +
                        jRNta9yfQJzVLqfYOFwSqismmvR1/2y/pO7HWsXo1HhkQdzF7U1zJLh8b0PiSkDE
         | 
| 18 | 
            +
                        dpUzkt5b4mPIit7khx7/wMi+t+gi1dpP+gTXxqOB8A/UzvQxBEKhizoGw/hG7vzT
         | 
| 19 | 
            +
                        MYqJRO1xHCYsMNU2TfWuoGR/7RXIidXzXmEShZ6bFeEWqupV7D0X6n8WVMd+NrZZ
         | 
| 20 | 
            +
                        lCNP0O67kCZGpABHcQ/uDUcRhyHYFkGHoSwp7KS2416PXMiRs01VRUG7fnOkgo4C
         | 
| 21 | 
            +
                        zyPWfuzSMjkKPm9gr9P0qYGsNrOBmV0guyLg4JWcVhDvkuh32r/kHrwxwUDYSLyI
         | 
| 22 | 
            +
                        GfAKKmZDAgMBAAECggEAKLfCEdVw0PCywayNKQdIgRf51W0JFhOGfBewvXHs/ty/
         | 
| 23 | 
            +
                        nhLsmEN+sn8DxLlUwWX4YhYBVN8UcBJGOn7yhDrML0eA9asUcBu0VHSer0TslPGP
         | 
| 24 | 
            +
                        dFzazXPL3kdHh8BJN9aSozoyg8ijT/NoBRXkGCasNvdVWyOCQfM4NutoK+MOFZbL
         | 
| 25 | 
            +
                        krtGPWfjTPByaZnV1PDJq95wz6LQeSdNwZLABE4YIrBxg0V1zu1gb0paltHZjPaM
         | 
| 26 | 
            +
                        68rm6Hp78CqI/5v9/RqQaso8aYVdjBaEkEI40CgKZY8Jm04NE4EcQM4Z4IYFc8I/
         | 
| 27 | 
            +
                        Ewj0giQIkZrGuucOA9S8TNqDjerv+8NoLMRCRcTk8QKBgQD9nHZGdW+2+IjShTal
         | 
| 28 | 
            +
                        EzjHH37APQKXYi0R9IESdzRnkUrL/8Rnxe5f7VxmDXJys0+IGo+8JoqGRUWJD8WZ
         | 
| 29 | 
            +
                        oBNW8oqJ4OH/dH07v2W0a0L0Z0Fcq6lv6tFcq1inSLPlk6EW3h4vTlrknuQ6QaKq
         | 
| 30 | 
            +
                        74SksBB4dCGDLlOaL8jldg9YVwKBgQD6O0CciiL3xVdnx4cGHDEjs9UU10z0EeVs
         | 
| 31 | 
            +
                        0gNxdAdkQEdgj9wI1yzNywFXtI+UA26j7207vYcU0hQ029roJN5ogTOkcCuf9WPQ
         | 
| 32 | 
            +
                        RV/+BQhiEJGYmZF8KlWiCB1HTxvc3p04EmIsp1N6yuqoE0jUFIS3A4GYYHPDZwDa
         | 
| 33 | 
            +
                        G8Y+W68d9QKBgQC7aFxqcqusDPqmfrRDxfGGC7sRecQpc+4UP5cFuzrpcY9RMl7D
         | 
| 34 | 
            +
                        xJsDHhbSfwtcwS57SA2BHwXsdNIOl64QeR7xeGdxvdGjgURt22DfsweWLZs6TMv3
         | 
| 35 | 
            +
                        nRE7Jo9rhqkRdEds65RopsE6AkRq3EfFgxuEy2pQaJi/JIO5A6i0D8sFHwKBgQCI
         | 
| 36 | 
            +
                        rtDuMO5E1QCXaX+xsLiOve5IggpAz324YUcMM8rN0earMimIkrCggKDtHW3H9c/7
         | 
| 37 | 
            +
                        sA7EsRQWJWJwNR9v6qOqBdkFm1fY+htZamuyv2EC3/YHmurDHgTEixYjG20mylqq
         | 
| 38 | 
            +
                        hDAoIAYTbr+aq13+qm6L4VhquVTCiYMHoGA7M62F+QKBgQCfTv5XVu+bEEBKyTkf
         | 
| 39 | 
            +
                        oVWjaLbO99zrgRYmZ9zhiRtlYFKefQ4kKxr+SRcia2dxQiNVPh5qUkX6ukvgCEVl
         | 
| 40 | 
            +
                        GoFTlopsX/CbilNarkwa/nvgQQeZAlrFpONifrtfZffV2Cs6wcwYAL8W5qFtl6iy
         | 
| 41 | 
            +
                        ZpLGJZdEWAPTxB6ppnDC75/KOg==
         | 
| 42 | 
            +
                        -----END PRIVATE KEY-----
         | 
| 43 | 
            +
                      SIGNING_KEY
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                    # Test validation key to enable direct connection code completions
         | 
| 46 | 
            +
                    # https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/97f54f4b7e43258a39bba7f29f38fe44bd316ce5/example.env#L79
         | 
| 47 | 
            +
                    TEST_VALIDATION_KEY =
         | 
| 48 | 
            +
                      <<~VALIDATION_KEY
         | 
| 49 | 
            +
                        -----BEGIN PRIVATE KEY-----
         | 
| 50 | 
            +
                        MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOAJNEB8EoyCAk
         | 
| 51 | 
            +
                        acSevXg5md0/JJGxBrHpIHqDuSf5FEENU0eGCc3PLZh5IjFcijGThMy0r/OMQn/n
         | 
| 52 | 
            +
                        /KAVCLlyPBaLEGsxqXJcW2CmNM24A3zyR4b7ghB+POKJY9lD2JoUWe57+B0IgZuz
         | 
| 53 | 
            +
                        PQbwRvuO7ULsw4xgGoLcoiscYMzKEWuFKDrteim+2vjCif5DDohKZQc3Ic8dwOtL
         | 
| 54 | 
            +
                        2C6+dV2TdyK0JPD7Kc1ONnH3S/VWJ8W5DDO1q5MrwJ+CQMaofHRqpbZrc66i5v2y
         | 
| 55 | 
            +
                        6/ooB0W14D1Qy4GmMIkLnkdP9UcYRHL7cVDv0D+bHs0xIyTXgbZaL78VFUyqeq23
         | 
| 56 | 
            +
                        qR4opOmFAgMBAAECggEABiJ5lZFkN4ew1VoaUzPclwfgUSy7SKSkuwbkPx9OHm/I
         | 
| 57 | 
            +
                        +XxHvqkfaj0MXlxzUIiDrhtKpqgwE4w4wjrWtZRQmXif9JI6RFIB0thHH4v7rbAv
         | 
| 58 | 
            +
                        kgjT7zzSAEBl6qYrkTFWcqa0Sxgkx90RkEaP+gB90KV7fxDaZv5DHrjsRGhpkNbi
         | 
| 59 | 
            +
                        8qtJOrvY6we6nx/YaD3iK69qQk6ktRg1AYUDH3xjBIIzo6brqlL2NJ+Q4VerrHFU
         | 
| 60 | 
            +
                        2EhTXto+4Y51Qjpas5B7DHmEhghZtYsMceuqFNvDQgGg1IsBPB4icTIREzHJ0rj3
         | 
| 61 | 
            +
                        Xgh5DMJGYb0p7Ktm74jciTdFIHeDMUCLoxxSPTZavQKBgQDs1njL0VR1hZKiGihO
         | 
| 62 | 
            +
                        fP0L3BwNL0H6uqKOlPP+DwdnNv7Q99xMKe9qcGWeiFXrLDkVMkd0M2LfU4SH5XUO
         | 
| 63 | 
            +
                        mt0YSC7Fn/pwozbk61k9+oEnL9cwDpwFwr46ccY6hmp3iihLTrgDuAi0CMSurZrC
         | 
| 64 | 
            +
                        mnqOOAxuSq6D7a/yhNKdEvckqwKBgQDeq2tIXlWVPXBY6CgIhUakq0oqHn35lhx4
         | 
| 65 | 
            +
                        CJuc1cujm1C68/UiZvxRK1LLAcFlDLl7+lnCSKnNn6fwK+jCsEsGT8ZuCJ2FznGH
         | 
| 66 | 
            +
                        wN6B3qrgEsB+FgC6qLir/o83E8I0tSOITaWHHvIc/l1PuXHJbwfCd2yB1sdeshID
         | 
| 67 | 
            +
                        x9o38/pKjwKBgH1YQRQ11IpiSCnMyDpKAi7Nrnb35OaK8k+d28hBMfzZaWE1XP1e
         | 
| 68 | 
            +
                        UFy34cBWjYpqnEdwlcqVC6YAcKrvsNUq9wrL4R0svwHwD7R2LoQT2VjhA/VmNgMC
         | 
| 69 | 
            +
                        f2U1I+GDlENx9kNtBQzK0Khf36BHNxn5YhV06ndQxS4DlNQ4obMJ/40DAoGBAIWm
         | 
| 70 | 
            +
                        DfaZ6HRzNAOpFJ5IoGYmCZXOR36PAvdo8z3ndRr2FjagRvonJjrx7fe7TgEA6jPn
         | 
| 71 | 
            +
                        yAg85O5ubbZSJJr2hZF8QHW65hFyH+KDeQoqRBXKK4+CVV2z92QEnqFIUsCgGHuv
         | 
| 72 | 
            +
                        XzMC9/8/DXLUs99brSSj2ZT0/SVxbC6ovennnssxAoGALtm2AUBMgsU6b9B+Fp2L
         | 
| 73 | 
            +
                        ZBQSwkyd3bOD7sFJHhbmiRE/ag2lsaE+dNg9H42fhOV0MXfPkEBWCIaGt931T5+q
         | 
| 74 | 
            +
                        FVATlTTDAx2CRmJCOyXkQ6mGBFTkQPqDwmWvwjbK9B5r0SnGfCpk4uEYWoYYsX05
         | 
| 75 | 
            +
                        t14Huwf9VVUTCfEi0+wWcko=
         | 
| 76 | 
            +
                        -----END PRIVATE KEY-----
         | 
| 77 | 
            +
                      VALIDATION_KEY
         | 
| 78 | 
            +
             | 
| 11 79 | 
             
                    def name
         | 
| 12 80 | 
             
                      @name ||= 'ai-gateway'
         | 
| 13 81 | 
             
                    end
         | 
| @@ -26,7 +94,9 @@ module Gitlab | |
| 26 94 | 
             
                        'AIGW_CUSTOMER_PORTAL_URL' => Runtime::Env.customer_portal_url,
         | 
| 27 95 | 
             
                        'AIGW_MOCK_MODEL_RESPONSES' => true,
         | 
| 28 96 | 
             
                        'AIGW_LOGGING__LEVEL' => 'debug',
         | 
| 29 | 
            -
                        'AIGW_LOGGING__TO_FILE' => "..#{LOG_DIR}/modelgateway_debug.log"
         | 
| 97 | 
            +
                        'AIGW_LOGGING__TO_FILE' => "..#{LOG_DIR}/modelgateway_debug.log",
         | 
| 98 | 
            +
                        'AIGW_SELF_SIGNED_JWT__SIGNING_KEY' => TEST_SIGNING_KEY,
         | 
| 99 | 
            +
                        'AIGW_SELF_SIGNED_JWT__VALIDATION_KEY' => TEST_VALIDATION_KEY
         | 
| 30 100 | 
             
                      }
         | 
| 31 101 | 
             
                    end
         | 
| 32 102 | 
             
                  end
         | 
| @@ -16,7 +16,7 @@ module Gitlab | |
| 16 16 |  | 
| 17 17 | 
             
                      def initialize(params = {}) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
         | 
| 18 18 | 
             
                        @gitlab_name = params[:gitlab_name] || 'gitlab-gitaly-cluster'
         | 
| 19 | 
            -
                        @network = params[:network] ||  | 
| 19 | 
            +
                        @network = params[:network] || Runtime::Env.docker_network
         | 
| 20 20 | 
             
                        @airgapped_network = params[:airgapped_network] || false
         | 
| 21 21 |  | 
| 22 22 | 
             
                        @praefect_node_name = params[:praefect_node_name] || 'praefect'
         | 
    
        data/lib/gitlab/qa/runner.rb
    CHANGED
    
    | @@ -93,7 +93,6 @@ module Gitlab | |
| 93 93 | 
             
                      scenario = Scenario.const_get(args.shift)
         | 
| 94 94 |  | 
| 95 95 | 
             
                      load_omnibus_configurations
         | 
| 96 | 
            -
                      load_telegraf(scenario)
         | 
| 97 96 |  | 
| 98 97 | 
             
                      begin
         | 
| 99 98 | 
             
                        @active_configurators.compact.each do |configurator|
         | 
| @@ -129,18 +128,6 @@ module Gitlab | |
| 129 128 | 
             
                    end.compact
         | 
| 130 129 | 
             
                  end
         | 
| 131 130 |  | 
| 132 | 
            -
                  # Start telegraf agent for metrics collection
         | 
| 133 | 
            -
                  #
         | 
| 134 | 
            -
                  # Do not load when running against external instance
         | 
| 135 | 
            -
                  #
         | 
| 136 | 
            -
                  # @param [Class] scenario
         | 
| 137 | 
            -
                  # @return [void]
         | 
| 138 | 
            -
                  def self.load_telegraf(scenario)
         | 
| 139 | 
            -
                    return if scenario <= Scenario::Test::Instance::DeploymentBase || scenario == Scenario::Test::Instance::Any
         | 
| 140 | 
            -
             | 
| 141 | 
            -
                    @active_configurators << Component::Telegraf.new
         | 
| 142 | 
            -
                  end
         | 
| 143 | 
            -
             | 
| 144 131 | 
             
                  def self.load_omnibus_configurations
         | 
| 145 132 | 
             
                    # OmnibusConfiguration::Test       => --test
         | 
| 146 133 | 
             
                    # OmnibusConfiguration::HelloThere => --hello_there
         | 
| @@ -17,156 +17,156 @@ module Gitlab | |
| 17 17 | 
             
                    # Any new key-value pairs should also be added to the hash at /rubocop/cop/gitlab/dangerous_interpolation.rb
         | 
| 18 18 | 
             
                    # to prevent Rubocop errors.
         | 
| 19 19 | 
             
                    ENV_VARIABLES = {
         | 
| 20 | 
            -
                      'QA_IMAGE' => :qa_image,
         | 
| 21 | 
            -
                      'QA_REMOTE_GRID' => :remote_grid,
         | 
| 22 | 
            -
                      'QA_REMOTE_GRID_USERNAME' => :remote_grid_username,
         | 
| 23 | 
            -
                      'QA_REMOTE_GRID_ACCESS_KEY' => :remote_grid_access_key,
         | 
| 24 | 
            -
                      'QA_REMOTE_GRID_PROTOCOL' => :remote_grid_protocol,
         | 
| 25 | 
            -
                      'QA_REMOTE_MOBILE_DEVICE_NAME' => :remote_mobile_device_name,
         | 
| 26 | 
            -
                      'QA_REMOTE_TUNNEL_ID' => :remote_tunnel_id,
         | 
| 27 | 
            -
                      'QA_BROWSER' => :browser,
         | 
| 28 | 
            -
                      'QA_SELENOID_BROWSER_VERSION' => :selenoid_browser_version,
         | 
| 29 | 
            -
                      'QA_RECORD_VIDEO' => :record_video,
         | 
| 30 | 
            -
                      'QA_LAYOUT' => :layout,
         | 
| 31 | 
            -
                      'QA_VIDEO_RECORDER_IMAGE' => :video_recorder_image,
         | 
| 32 | 
            -
                      'QA_VIDEO_RECORDER_VERSION' => :video_recorder_version,
         | 
| 33 | 
            -
                      'QA_SELENOID_BROWSER_IMAGE' => :selenoid_browser_image,
         | 
| 34 | 
            -
                      'QA_ADDITIONAL_REPOSITORY_STORAGE' => :qa_additional_repository_storage,
         | 
| 35 | 
            -
                      'QA_PRAEFECT_REPOSITORY_STORAGE' => :qa_praefect_repository_storage,
         | 
| 36 | 
            -
                      'QA_GITALY_NON_CLUSTER_STORAGE' => :qa_gitaly_non_cluster_storage,
         | 
| 37 | 
            -
                      'QA_COOKIES' => :qa_cookie,
         | 
| 38 | 
            -
                      'QA_DEBUG' => :qa_debug,
         | 
| 39 | 
            -
                      'QA_CAN_TEST_ADMIN_FEATURES' => :qa_can_test_admin_features,
         | 
| 40 | 
            -
                      'QA_CAN_TEST_GIT_PROTOCOL_V2' => :qa_can_test_git_protocol_v2,
         | 
| 41 | 
            -
                      'QA_CAN_TEST_PRAEFECT' => :qa_can_test_praefect,
         | 
| 42 | 
            -
                      'QA_SIMULATE_SLOW_CONNECTION' => :qa_simulate_slow_connection,
         | 
| 43 | 
            -
                      'QA_SLOW_CONNECTION_LATENCY_MS' => :qa_slow_connection_latency_ms,
         | 
| 44 | 
            -
                      'QA_SLOW_CONNECTION_THROUGHPUT_KBPS' => :qa_slow_connection_throughput_kbps,
         | 
| 45 | 
            -
                      'QA_GENERATE_ALLURE_REPORT' => :generate_allure_report,
         | 
| 46 | 
            -
                      'QA_EXPORT_TEST_METRICS' => :qa_export_test_metrics,
         | 
| 47 | 
            -
                      'QA_INFLUXDB_URL' => :qa_influxdb_url,
         | 
| 48 | 
            -
                      'QA_INFLUXDB_TOKEN' => :qa_influxdb_token,
         | 
| 49 | 
            -
                      'QA_SKIP_PULL' => :qa_skip_pull,
         | 
| 50 | 
            -
                      'QA_VALIDATE_RESOURCE_REUSE' => :qa_validate_resource_reuse,
         | 
| 51 | 
            -
                      'WEBDRIVER_HEADLESS' => :webdriver_headless,
         | 
| 52 | 
            -
                      'GITLAB_ADMIN_USERNAME' => :admin_username,
         | 
| 53 | 
            -
                      'GITLAB_ADMIN_PASSWORD' => :admin_password,
         | 
| 54 | 
            -
                      'GITLAB_USERNAME' => :user_username,
         | 
| 55 | 
            -
                      'GITLAB_PASSWORD' => :user_password,
         | 
| 56 | 
            -
                      'GITLAB_LDAP_USERNAME' => :ldap_username,
         | 
| 57 | 
            -
                      'GITLAB_LDAP_PASSWORD' => :ldap_password,
         | 
| 58 | 
            -
                      'GITLAB_FORKER_USERNAME' => :forker_username,
         | 
| 59 | 
            -
                      'GITLAB_FORKER_PASSWORD' => :forker_password,
         | 
| 60 | 
            -
                      'GITLAB_USER_TYPE' => :user_type,
         | 
| 61 | 
            -
                      'GITLAB_SANDBOX_NAME' => :gitlab_sandbox_name,
         | 
| 62 | 
            -
                      'GITLAB_QA_ACCESS_TOKEN' => :qa_access_token,
         | 
| 63 | 
            -
                      'GITLAB_QA_ADMIN_ACCESS_TOKEN' => :qa_admin_access_token,
         | 
| 64 | 
            -
                      'GITLAB_QA_DEV_ACCESS_TOKEN' => :qa_dev_access_token,
         | 
| 65 | 
            -
                      'GITLAB_QA_CONTAINER_REGISTRY_ACCESS_TOKEN' => :qa_container_registry_access_token,
         | 
| 66 | 
            -
                      'GITHUB_ACCESS_TOKEN' => :github_access_token,
         | 
| 67 | 
            -
                      'GITLAB_URL' => :gitlab_url,
         | 
| 68 | 
            -
                      'SIMPLE_SAML_HOSTNAME' => :simple_saml_hostname,
         | 
| 69 | 
            -
                      'SIMPLE_SAML_FINGERPRINT' => :simple_saml_fingerprint,
         | 
| 70 20 | 
             
                      'ACCEPT_INSECURE_CERTS' => :accept_insecure_certs,
         | 
| 71 | 
            -
                      ' | 
| 72 | 
            -
                      ' | 
| 73 | 
            -
                      ' | 
| 74 | 
            -
                      ' | 
| 75 | 
            -
                      ' | 
| 76 | 
            -
                      ' | 
| 77 | 
            -
                      'GITLAB_QA_USERNAME_1' => :gitlab_qa_username_1,
         | 
| 78 | 
            -
                      'GITLAB_QA_PASSWORD_1' => :gitlab_qa_password_1,
         | 
| 79 | 
            -
                      'GITLAB_QA_USERNAME_2' => :gitlab_qa_username_2,
         | 
| 80 | 
            -
                      'GITLAB_QA_PASSWORD_2' => :gitlab_qa_password_2,
         | 
| 81 | 
            -
                      'QA_GITHUB_USERNAME' => :qa_github_username,
         | 
| 82 | 
            -
                      'QA_GITHUB_PASSWORD' => :qa_github_password,
         | 
| 83 | 
            -
                      'QA_GITLAB_HOSTNAME' => :qa_gitlab_hostname,
         | 
| 84 | 
            -
                      'QA_GITLAB_USE_TLS' => :qa_gitlab_use_tls,
         | 
| 85 | 
            -
                      'KNAPSACK_GENERATE_REPORT' => :knapsack_generate_report,
         | 
| 86 | 
            -
                      'KNAPSACK_REPORT_PATH' => :knapsack_report_path,
         | 
| 87 | 
            -
                      'KNAPSACK_TEST_FILE_PATTERN' => :knapsack_test_file_pattern,
         | 
| 88 | 
            -
                      'KNAPSACK_TEST_DIR' => :knapsack_test_dir,
         | 
| 89 | 
            -
                      'NO_KNAPSACK' => :no_knapsack,
         | 
| 90 | 
            -
                      'QA_KNAPSACK_REPORT_GCS_CREDENTIALS' => :qa_knapsack_report_gcs_credentials,
         | 
| 91 | 
            -
                      'QA_KNAPSACK_REPORT_PATH' => :qa_knapsack_report_path,
         | 
| 92 | 
            -
                      'QA_RSPEC_REPORT_PATH' => :qa_rspec_report_path,
         | 
| 93 | 
            -
                      'RSPEC_FAST_QUARANTINE_PATH' => :rspec_fast_quarantine_path,
         | 
| 94 | 
            -
                      'RSPEC_SKIPPED_TESTS_REPORT_PATH' => :skipped_tests_report_path,
         | 
| 21 | 
            +
                      'AWS_S3_ACCESS_KEY' => :aws_s3_access_key,
         | 
| 22 | 
            +
                      'AWS_S3_BUCKET_NAME' => :aws_s3_bucket_name,
         | 
| 23 | 
            +
                      'AWS_S3_KEY_ID' => :aws_s3_key_id,
         | 
| 24 | 
            +
                      'AWS_S3_REGION' => :aws_s3_region,
         | 
| 25 | 
            +
                      'CACHE_NAMESPACE_NAME' => :cache_namespace_name,
         | 
| 26 | 
            +
                      'CHROME_DISABLE_DEV_SHM' => :chrome_disable_dev_shm,
         | 
| 95 27 | 
             
                      'CI' => :ci,
         | 
| 28 | 
            +
                      'CI_JOB_ID' => :ci_job_id,
         | 
| 96 29 | 
             
                      'CI_JOB_NAME' => :ci_job_name,
         | 
| 97 30 | 
             
                      'CI_JOB_NAME_SLUG' => :ci_job_name_slug,
         | 
| 98 | 
            -
                      'CI_JOB_ID' => :ci_job_id,
         | 
| 99 | 
            -
                      'CI_JOB_URL' => :ci_job_url,
         | 
| 100 31 | 
             
                      'CI_JOB_TOKEN' => :ci_job_token,
         | 
| 101 | 
            -
                      ' | 
| 102 | 
            -
                      ' | 
| 103 | 
            -
                      'CI_SERVER_PERSONAL_ACCESS_TOKEN' => :ci_server_personal_access_token,
         | 
| 32 | 
            +
                      'CI_JOB_URL' => :ci_job_url,
         | 
| 33 | 
            +
                      'CI_MERGE_REQUEST_IID' => :ci_merge_request_iid,
         | 
| 104 34 | 
             
                      'CI_NODE_INDEX' => :ci_node_index,
         | 
| 105 35 | 
             
                      'CI_NODE_TOTAL' => :ci_node_total,
         | 
| 36 | 
            +
                      'CI_PIPELINE_CREATED_AT' => :ci_pipeline_created_at,
         | 
| 37 | 
            +
                      'CI_PIPELINE_ID' => :ci_pipeline_id,
         | 
| 38 | 
            +
                      'CI_PIPELINE_SOURCE' => :ci_pipeline_source,
         | 
| 39 | 
            +
                      'CI_PIPELINE_URL' => :ci_pipeline_url,
         | 
| 106 40 | 
             
                      'CI_PROJECT_NAME' => :ci_project_name,
         | 
| 107 41 | 
             
                      'CI_PROJECT_PATH' => :ci_project_path,
         | 
| 108 42 | 
             
                      'CI_PROJECT_PATH_SLUG' => :ci_project_path_slug,
         | 
| 109 | 
            -
                      ' | 
| 110 | 
            -
                      ' | 
| 111 | 
            -
                      ' | 
| 112 | 
            -
                      ' | 
| 113 | 
            -
                      ' | 
| 114 | 
            -
                      ' | 
| 43 | 
            +
                      'CI_RUNNER_ID' => :ci_runner_id,
         | 
| 44 | 
            +
                      'CI_SERVER_HOST' => :ci_server_host,
         | 
| 45 | 
            +
                      'CI_SERVER_PERSONAL_ACCESS_TOKEN' => :ci_server_personal_access_token,
         | 
| 46 | 
            +
                      'COLORIZED_LOGS' => :colorized_logs,
         | 
| 47 | 
            +
                      'CLOUDSDK_CORE_PROJECT' => :cloudsdk_core_project,
         | 
| 48 | 
            +
                      'EE_LICENSE' => :ee_license,
         | 
| 115 49 | 
             
                      'ELASTIC_URL' => :elastic_url,
         | 
| 116 | 
            -
                      ' | 
| 117 | 
            -
                      ' | 
| 118 | 
            -
                      ' | 
| 119 | 
            -
                      ' | 
| 120 | 
            -
                      ' | 
| 121 | 
            -
                      ' | 
| 122 | 
            -
                      'JIRA_ADMIN_USERNAME' => :jira_admin_username,
         | 
| 123 | 
            -
                      'JIRA_ADMIN_PASSWORD' => :jira_admin_password,
         | 
| 124 | 
            -
                      'CACHE_NAMESPACE_NAME' => :cache_namespace_name,
         | 
| 125 | 
            -
                      'GITLAB_QA_USER_AGENT' => :gitlab_qa_user_agent,
         | 
| 50 | 
            +
                      'FIPS' => :fips,
         | 
| 51 | 
            +
                      'GCS_BUCKET_NAME' => :gcs_bucket_name,
         | 
| 52 | 
            +
                      'GCS_CDN_BUCKET_NAME' => :gcs_cdn_bucket_name,
         | 
| 53 | 
            +
                      'GCLOUD_ACCOUNT_EMAIL' => :gcloud_account_email,
         | 
| 54 | 
            +
                      'GCLOUD_ACCOUNT_KEY' => :gcloud_account_key,
         | 
| 55 | 
            +
                      'GCLOUD_REGION' => :gcloud_region,
         | 
| 126 56 | 
             
                      'GEO_FAILOVER' => :geo_failover,
         | 
| 57 | 
            +
                      'GEO_MAX_DB_REPLICATION_TIME' => :geo_max_db_replication_time,
         | 
| 58 | 
            +
                      'GEO_MAX_FILE_REPLICATION_TIME' => :geo_max_file_replication_time,
         | 
| 59 | 
            +
                      'GITLAB_ADMIN_PASSWORD' => :admin_password,
         | 
| 60 | 
            +
                      'GITLAB_ADMIN_USERNAME' => :admin_username,
         | 
| 61 | 
            +
                      'GITLAB_FORKER_PASSWORD' => :forker_password,
         | 
| 62 | 
            +
                      'GITLAB_FORKER_USERNAME' => :forker_username,
         | 
| 127 63 | 
             
                      'GITLAB_INITIAL_ROOT_PASSWORD' => :initial_root_password,
         | 
| 64 | 
            +
                      'GITLAB_LDAP_PASSWORD' => :ldap_password,
         | 
| 65 | 
            +
                      'GITLAB_LDAP_USERNAME' => :ldap_username,
         | 
| 66 | 
            +
                      'GITLAB_PASSWORD' => :user_password,
         | 
| 67 | 
            +
                      'GITLAB_QA_ACCESS_TOKEN' => :qa_access_token,
         | 
| 68 | 
            +
                      'GITLAB_QA_ADMIN_ACCESS_TOKEN' => :qa_admin_access_token,
         | 
| 69 | 
            +
                      'GITLAB_QA_CONTAINER_REGISTRY_ACCESS_TOKEN' => :qa_container_registry_access_token,
         | 
| 70 | 
            +
                      'GITLAB_QA_DEV_ACCESS_TOKEN' => :qa_dev_access_token,
         | 
| 71 | 
            +
                      'GITLAB_QA_FORMLESS_LOGIN_TOKEN' => :gitlab_qa_formless_login_token,
         | 
| 72 | 
            +
                      'GITLAB_QA_LOOP_RUNNER_MINUTES' => :gitlab_qa_loop_runner_minutes,
         | 
| 73 | 
            +
                      'GITLAB_QA_PASSWORD_1' => :gitlab_qa_password_1,
         | 
| 74 | 
            +
                      'GITLAB_QA_PASSWORD_2' => :gitlab_qa_password_2,
         | 
| 75 | 
            +
                      'GITLAB_QA_USER_AGENT' => :gitlab_qa_user_agent,
         | 
| 76 | 
            +
                      'GITLAB_QA_USERNAME_1' => :gitlab_qa_username_1,
         | 
| 77 | 
            +
                      'GITLAB_QA_USERNAME_2' => :gitlab_qa_username_2,
         | 
| 78 | 
            +
                      'GITLAB_SANDBOX_NAME' => :gitlab_sandbox_name,
         | 
| 128 79 | 
             
                      'GITLAB_TLS_CERTIFICATE' => :gitlab_tls_certificate,
         | 
| 129 | 
            -
                      ' | 
| 130 | 
            -
                      ' | 
| 131 | 
            -
                      ' | 
| 132 | 
            -
                      ' | 
| 133 | 
            -
                      ' | 
| 134 | 
            -
                      'GOOGLE_PROJECT' => :google_project,
         | 
| 135 | 
            -
                      'GOOGLE_CLIENT_EMAIL' => :google_client_email,
         | 
| 136 | 
            -
                      'GOOGLE_JSON_KEY' => :google_json_key,
         | 
| 80 | 
            +
                      'GITLAB_URL' => :gitlab_url,
         | 
| 81 | 
            +
                      'GITLAB_USER_TYPE' => :user_type,
         | 
| 82 | 
            +
                      'GITLAB_USERNAME' => :user_username,
         | 
| 83 | 
            +
                      'GITLAB_CI' => :gitlab_ci,
         | 
| 84 | 
            +
                      'GITHUB_ACCESS_TOKEN' => :github_access_token,
         | 
| 137 85 | 
             
                      'GOOGLE_CDN_JSON_KEY' => :google_cdn_json_key,
         | 
| 138 86 | 
             
                      'GOOGLE_CDN_LB' => :google_cdn_load_balancer,
         | 
| 139 87 | 
             
                      'GOOGLE_CDN_SIGNURL_KEY' => :google_cdn_signurl_key,
         | 
| 140 88 | 
             
                      'GOOGLE_CDN_SIGNURL_KEY_NAME' => :google_cdn_signurl_key_name,
         | 
| 141 | 
            -
                      ' | 
| 142 | 
            -
                      ' | 
| 143 | 
            -
                      ' | 
| 144 | 
            -
                      'NO_ADMIN' => :no_admin,
         | 
| 145 | 
            -
                      'CHROME_DISABLE_DEV_SHM' => :chrome_disable_dev_shm,
         | 
| 146 | 
            -
                      'COLORIZED_LOGS' => :colorized_logs,
         | 
| 147 | 
            -
                      'FIPS' => :fips,
         | 
| 89 | 
            +
                      'GOOGLE_CLIENT_EMAIL' => :google_client_email,
         | 
| 90 | 
            +
                      'GOOGLE_JSON_KEY' => :google_json_key,
         | 
| 91 | 
            +
                      'GOOGLE_PROJECT' => :google_project,
         | 
| 148 92 | 
             
                      'JH_ENV' => :jh_env,
         | 
| 93 | 
            +
                      'JIRA_ADMIN_PASSWORD' => :jira_admin_password,
         | 
| 94 | 
            +
                      'JIRA_ADMIN_USERNAME' => :jira_admin_username,
         | 
| 95 | 
            +
                      'JIRA_HOSTNAME' => :jira_hostname,
         | 
| 96 | 
            +
                      'KNAPSACK_GENERATE_REPORT' => :knapsack_generate_report,
         | 
| 97 | 
            +
                      'KNAPSACK_REPORT_PATH' => :knapsack_report_path,
         | 
| 98 | 
            +
                      'KNAPSACK_TEST_DIR' => :knapsack_test_dir,
         | 
| 99 | 
            +
                      'KNAPSACK_TEST_FILE_PATTERN' => :knapsack_test_file_pattern,
         | 
| 100 | 
            +
                      'MAILHOG_HOSTNAME' => :mailhog_hostname,
         | 
| 101 | 
            +
                      'NO_KNAPSACK' => :no_knapsack,
         | 
| 102 | 
            +
                      'QA_ADDITIONAL_REPOSITORY_STORAGE' => :qa_additional_repository_storage,
         | 
| 103 | 
            +
                      'QA_BROWSER' => :browser,
         | 
| 104 | 
            +
                      'QA_CAN_TEST_ADMIN_FEATURES' => :qa_can_test_admin_features,
         | 
| 105 | 
            +
                      'QA_CAN_TEST_GIT_PROTOCOL_V2' => :qa_can_test_git_protocol_v2,
         | 
| 106 | 
            +
                      'QA_CAN_TEST_PRAEFECT' => :qa_can_test_praefect,
         | 
| 107 | 
            +
                      'QA_COOKIES' => :qa_cookie,
         | 
| 108 | 
            +
                      'QA_DEBUG' => :qa_debug,
         | 
| 109 | 
            +
                      'QA_DOCKER_NETWORK' => :docker_network,
         | 
| 110 | 
            +
                      'QA_EXPORT_TEST_METRICS' => :qa_export_test_metrics,
         | 
| 111 | 
            +
                      'QA_GITALY_NON_CLUSTER_STORAGE' => :qa_gitaly_non_cluster_storage,
         | 
| 149 112 | 
             
                      'QA_GITHUB_OAUTH_APP_ID' => :github_oauth_app_id,
         | 
| 150 113 | 
             
                      'QA_GITHUB_OAUTH_APP_SECRET' => :github_oauth_app_secret,
         | 
| 114 | 
            +
                      'QA_GITHUB_PASSWORD' => :qa_github_password,
         | 
| 115 | 
            +
                      'QA_GITHUB_USERNAME' => :qa_github_username,
         | 
| 116 | 
            +
                      'QA_GITLAB_HOSTNAME' => :qa_gitlab_hostname,
         | 
| 117 | 
            +
                      'QA_GITLAB_USE_TLS' => :qa_gitlab_use_tls,
         | 
| 118 | 
            +
                      'QA_IMAGE' => :qa_image,
         | 
| 119 | 
            +
                      'QA_INFLUXDB_TOKEN' => :qa_influxdb_token,
         | 
| 120 | 
            +
                      'QA_INFLUXDB_URL' => :qa_influxdb_url,
         | 
| 121 | 
            +
                      'QA_KNAPSACK_REPORT_GCS_CREDENTIALS' => :qa_knapsack_report_gcs_credentials,
         | 
| 122 | 
            +
                      'QA_KNAPSACK_REPORT_PATH' => :qa_knapsack_report_path,
         | 
| 123 | 
            +
                      'QA_LAYOUT' => :layout,
         | 
| 124 | 
            +
                      'QA_PRAEFECT_REPOSITORY_STORAGE' => :qa_praefect_repository_storage,
         | 
| 125 | 
            +
                      'QA_RECORD_VIDEO' => :record_video,
         | 
| 126 | 
            +
                      'QA_REMOTE_GRID' => :remote_grid,
         | 
| 127 | 
            +
                      'QA_REMOTE_GRID_ACCESS_KEY' => :remote_grid_access_key,
         | 
| 128 | 
            +
                      'QA_REMOTE_GRID_PROTOCOL' => :remote_grid_protocol,
         | 
| 129 | 
            +
                      'QA_REMOTE_GRID_USERNAME' => :remote_grid_username,
         | 
| 130 | 
            +
                      'QA_REMOTE_MOBILE_DEVICE_NAME' => :remote_mobile_device_name,
         | 
| 131 | 
            +
                      'QA_REMOTE_TUNNEL_ID' => :remote_tunnel_id,
         | 
| 132 | 
            +
                      'QA_RSPEC_REPORT_PATH' => :qa_rspec_report_path,
         | 
| 133 | 
            +
                      'QA_SELENOID_BROWSER_IMAGE' => :selenoid_browser_image,
         | 
| 134 | 
            +
                      'QA_SELENOID_BROWSER_VERSION' => :selenoid_browser_version,
         | 
| 135 | 
            +
                      'QA_SIMULATE_SLOW_CONNECTION' => :qa_simulate_slow_connection,
         | 
| 136 | 
            +
                      'QA_SKIP_PULL' => :qa_skip_pull,
         | 
| 137 | 
            +
                      'QA_SLOW_CONNECTION_LATENCY_MS' => :qa_slow_connection_latency_ms,
         | 
| 138 | 
            +
                      'QA_SLOW_CONNECTION_THROUGHPUT_KBPS' => :qa_slow_connection_throughput_kbps,
         | 
| 139 | 
            +
                      'QA_VALIDATE_RESOURCE_REUSE' => :qa_validate_resource_reuse,
         | 
| 140 | 
            +
                      'QA_VIDEO_RECORDER_IMAGE' => :video_recorder_image,
         | 
| 141 | 
            +
                      'QA_VIDEO_RECORDER_VERSION' => :video_recorder_version,
         | 
| 151 142 | 
             
                      'QA_1P_EMAIL' => :qa_1p_email,
         | 
| 143 | 
            +
                      'QA_1P_GITHUB_UUID' => :qa_1p_github_uuid,
         | 
| 152 144 | 
             
                      'QA_1P_PASSWORD' => :qa_1p_password,
         | 
| 153 145 | 
             
                      'QA_1P_SECRET' => :qa_1p_secret,
         | 
| 154 | 
            -
                      'QA_1P_GITHUB_UUID' => :qa_1p_github_uuid,
         | 
| 155 146 | 
             
                      'RELEASE' => :release,
         | 
| 147 | 
            +
                      'RELEASE_REGISTRY_PASSWORD' => :release_registry_password,
         | 
| 156 148 | 
             
                      'RELEASE_REGISTRY_URL' => :release_registry_url,
         | 
| 157 149 | 
             
                      'RELEASE_REGISTRY_USERNAME' => :release_registry_username,
         | 
| 158 | 
            -
                      ' | 
| 150 | 
            +
                      'RSPEC_FAST_QUARANTINE_PATH' => :rspec_fast_quarantine_path,
         | 
| 151 | 
            +
                      'RSPEC_SKIPPED_TESTS_REPORT_PATH' => :skipped_tests_report_path,
         | 
| 152 | 
            +
                      'SCHEDULE_TYPE' => :schedule_type,
         | 
| 159 153 | 
             
                      'SELENOID_DIRECTORY' => :selenoid_directory,
         | 
| 154 | 
            +
                      'SIGNUP_DISABLED' => :signup_disabled,
         | 
| 155 | 
            +
                      'SIMPLE_SAML_FINGERPRINT' => :simple_saml_fingerprint,
         | 
| 156 | 
            +
                      'SIMPLE_SAML_HOSTNAME' => :simple_saml_hostname,
         | 
| 157 | 
            +
                      'SMOKE_ONLY' => :smoke_only,
         | 
| 158 | 
            +
                      'TOP_UPSTREAM_MERGE_REQUEST_IID' => :top_upstream_merge_request_iid,
         | 
| 160 159 | 
             
                      'USE_SELENOID' => :use_selenoid,
         | 
| 161 | 
            -
                      ' | 
| 160 | 
            +
                      'WEBDRIVER_HEADLESS' => :webdriver_headless,
         | 
| 161 | 
            +
                      'WORKSPACES_DOMAIN_CERT' => { name: :workspaces_domain_cert, type: :file },
         | 
| 162 | 
            +
                      'WORKSPACES_DOMAIN_KEY' => { name: :workspaces_domain_key, type: :file },
         | 
| 162 163 | 
             
                      'WORKSPACES_OAUTH_APP_ID' => :workspaces_oauth_app_id,
         | 
| 163 164 | 
             
                      'WORKSPACES_OAUTH_APP_SECRET' => :workspaces_oauth_app_secret,
         | 
| 164 165 | 
             
                      'WORKSPACES_OAUTH_SIGNING_KEY' => :workspaces_oauth_signing_key,
         | 
| 165 166 | 
             
                      'WORKSPACES_PROXY_DOMAIN' => :workspaces_proxy_domain,
         | 
| 166 | 
            -
                      'WORKSPACES_DOMAIN_CERT' => { name: :workspaces_domain_cert, type: :file },
         | 
| 167 | 
            -
                      'WORKSPACES_DOMAIN_KEY' => { name: :workspaces_domain_key, type: :file },
         | 
| 168 167 | 
             
                      'WORKSPACES_WILDCARD_CERT' => { name: :workspaces_wildcard_cert, type: :file },
         | 
| 169 | 
            -
                      'WORKSPACES_WILDCARD_KEY' => { name: :workspaces_wildcard_key, type: :file }
         | 
| 168 | 
            +
                      'WORKSPACES_WILDCARD_KEY' => { name: :workspaces_wildcard_key, type: :file },
         | 
| 169 | 
            +
                      'EPIC_SYNC_TEST' => :epic_sync_test
         | 
| 170 170 | 
             
                    }.freeze
         | 
| 171 171 |  | 
| 172 172 | 
             
                    def variables
         | 
| @@ -392,9 +392,7 @@ module Gitlab | |
| 392 392 | 
             
                      live_envs = %w[staging staging-canary staging-ref canary preprod production]
         | 
| 393 393 | 
             
                      return unless live_envs.include?(ci_project_name)
         | 
| 394 394 |  | 
| 395 | 
            -
                      test_subset = if env_var_value_if_defined(' | 
| 396 | 
            -
                                      'sanity-no-admin'
         | 
| 397 | 
            -
                                    elsif env_var_value_if_defined('SMOKE_ONLY') == 'true'
         | 
| 395 | 
            +
                      test_subset = if env_var_value_if_defined('SMOKE_ONLY') == 'true'
         | 
| 398 396 | 
             
                                      'sanity'
         | 
| 399 397 | 
             
                                    else
         | 
| 400 398 | 
             
                                      'full'
         | 
| @@ -403,6 +401,13 @@ module Gitlab | |
| 403 401 | 
             
                      "#{ci_project_name}-#{test_subset}"
         | 
| 404 402 | 
             
                    end
         | 
| 405 403 |  | 
| 404 | 
            +
                    # The default network for the Docker containers
         | 
| 405 | 
            +
                    #
         | 
| 406 | 
            +
                    # @example <component>.test
         | 
| 407 | 
            +
                    def docker_network
         | 
| 408 | 
            +
                      env_var_value_if_defined('QA_DOCKER_NETWORK') || 'test'
         | 
| 409 | 
            +
                    end
         | 
| 410 | 
            +
             | 
| 406 411 | 
             
                    def docker_add_hosts
         | 
| 407 412 | 
             
                      (env_var_value_if_defined('QA_DOCKER_ADD_HOSTS') || '').split(',')
         | 
| 408 413 | 
             
                    end
         | 
| @@ -13,7 +13,7 @@ module Gitlab | |
| 13 13 | 
             
                          # Uses https://docs.docker.com/engine/reference/commandline/network_create/#network-internal-mode
         | 
| 14 14 | 
             
                          @airgapped_network_name = 'airgapped'
         | 
| 15 15 | 
             
                          # Uses iptables to deny all network traffic, with a number of exceptions for required ports and IPs
         | 
| 16 | 
            -
                          @iptables_restricted_network =  | 
| 16 | 
            +
                          @iptables_restricted_network = Runtime::Env.docker_network
         | 
| 17 17 | 
             
                          @config = Component::GitalyCluster::GitalyClusterConfig.new(
         | 
| 18 18 | 
             
                            gitlab_name: "gitlab-airgapped-#{SecureRandom.hex(4)}",
         | 
| 19 19 | 
             
                            airgapped_network: true,
         | 
| @@ -17,7 +17,7 @@ module Gitlab | |
| 17 17 | 
             
                          Component::Gitlab.perform do |gitlab|
         | 
| 18 18 | 
             
                            gitlab.release = release
         | 
| 19 19 | 
             
                            gitlab.volumes = @volumes
         | 
| 20 | 
            -
                            gitlab.network =  | 
| 20 | 
            +
                            gitlab.network = Runtime::Env.docker_network
         | 
| 21 21 | 
             
                            gitlab.name = Runtime::Env.qa_gitlab_hostname
         | 
| 22 22 | 
             
                            gitlab.seed_admin_token = @seed_admin_token
         | 
| 23 23 | 
             
                            gitlab.tls = Runtime::Env.qa_gitlab_use_tls?
         | 
| @@ -9,7 +9,7 @@ module Gitlab | |
| 9 9 | 
             
                        def perform(release, *rspec_args)
         | 
| 10 10 | 
             
                          Component::Gitlab.perform do |gitlab|
         | 
| 11 11 | 
             
                            gitlab.release = release
         | 
| 12 | 
            -
                            gitlab.network =  | 
| 12 | 
            +
                            gitlab.network = Runtime::Env.docker_network
         | 
| 13 13 | 
             
                            gitlab.relative_path = '/relative'
         | 
| 14 14 |  | 
| 15 15 | 
             
                            gitlab.omnibus_configuration << "external_url '#{gitlab.address}'"
         |