diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-05 00:08:59 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-03-05 00:08:59 +0300 |
commit | 6609e5ea75a9e119651e19574c30c11ce19c62d0 (patch) | |
tree | 81a6e3b927ca6278983129e670a0ece1fce8c059 /doc | |
parent | 60bb1b9734536021c8eba9d15ac1a666af45be74 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r-- | doc/administration/raketasks/check.md | 6 | ||||
-rw-r--r-- | doc/development/fe_guide/vue.md | 8 | ||||
-rw-r--r-- | doc/install/index.md | 105 | ||||
-rw-r--r-- | doc/operations/incident_management/paging.md | 12 | ||||
-rw-r--r-- | doc/topics/git/lfs/index.md | 43 | ||||
-rw-r--r-- | doc/user/application_security/secret_detection/index.md | 5 |
6 files changed, 81 insertions, 98 deletions
diff --git a/doc/administration/raketasks/check.md b/doc/administration/raketasks/check.md index 5ec268ac769..8d2ca103c82 100644 --- a/doc/administration/raketasks/check.md +++ b/doc/administration/raketasks/check.md @@ -245,3 +245,9 @@ Upload.find_each do |upload| end p "#{uploads_deleted} remote objects were destroyed." ``` + +### Delete references to missing LFS objects + +If `gitlab-rake gitlab:lfs:check VERBOSE=1` detects LFS objects that exist in the database +but not on disk, [follow the procedure in the LFS documentation](../../topics/git/lfs/index.md#missing-lfs-objects) +to remove the database entries. diff --git a/doc/development/fe_guide/vue.md b/doc/development/fe_guide/vue.md index 5b902e1b16e..220a4a107aa 100644 --- a/doc/development/fe_guide/vue.md +++ b/doc/development/fe_guide/vue.md @@ -237,6 +237,9 @@ Each Vue component has a unique output. This output is always present in the ren Although each method of a Vue component can be tested individually, our goal is to test the output of the render function, which represents the state at all times. +Visit the [Vue testing guide](https://vuejs.org/v2/guide/testing.html#Unit-Testing) for help +testing the rendered output. + Here's an example of a well structured unit test for [this Vue component](#appendix---vue-component-subject-under-test): ```javascript @@ -331,11 +334,6 @@ describe('~/todos/app.vue', () => { }); ``` -### Test the component's output - -The main return value of a Vue component is the rendered output. In order to test the component we -need to test the rendered output. Visit the [Vue testing guide](https://vuejs.org/v2/guide/testing.html#Unit-Testing). - ### Child components 1. Test any directive that defines if/how child component is rendered (for example, `v-if` and `v-for`). diff --git a/doc/install/index.md b/doc/install/index.md index d7c562ac77b..1e6f0bb95c2 100644 --- a/doc/install/index.md +++ b/doc/install/index.md @@ -9,110 +9,49 @@ type: index # Installation **(FREE SELF)** -GitLab can be installed in most GNU/Linux distributions and with several +GitLab can be installed in most GNU/Linux distributions, and with several cloud providers. To get the best experience from GitLab, you must balance performance, reliability, ease of administration (backups, upgrades, and troubleshooting), and the cost of hosting. -Depending on your platform, select from the following available methods to -install GitLab: - -- [_Omnibus GitLab_](#installing-gitlab-on-linux-using-the-omnibus-gitlab-package-recommended): - The official deb/rpm packages that contain a bundle of GitLab and the - components it depends on, including PostgreSQL, Redis, and Sidekiq. -- [_GitLab Helm chart_](#installing-gitlab-on-kubernetes-via-the-gitlab-helm-charts): - The cloud native Helm chart for installing GitLab and all of its components - on Kubernetes. -- [_Docker_](#installing-gitlab-with-docker): The Omnibus GitLab packages, - Dockerized. -- [_Source_](#installing-gitlab-from-source): Install GitLab and all of its - components from scratch. -- [_Cloud provider_](#installing-gitlab-on-cloud-providers): Install directly - from platforms like AWS, Azure, and GCP. - -If you're not sure which installation method to use, we recommend you use -Omnibus GitLab. The Omnibus GitLab packages are mature, -[scalable](../administration/reference_architectures/index.md), and are used -today on GitLab.com. The Helm charts are recommended for those who are familiar -with Kubernetes. - ## Requirements Before you install GitLab, be sure to review the [system requirements](requirements.md). The system requirements include details about the minimum hardware, software, database, and additional requirements to support GitLab. -## Installing GitLab on Linux using the Omnibus GitLab package (recommended) - -The Omnibus GitLab package uses our official deb/rpm repositories, and is -recommended for most users. - -If you need additional scale or resilience, we recommend deploying -GitLab as described in our [reference architecture documentation](../administration/reference_architectures/index.md). - -[**> Install GitLab using the Omnibus GitLab package.**](https://about.gitlab.com/install/) - -### GitLab Environment Toolkit (GET) - -The [GitLab Environment Toolkit](https://gitlab.com/gitlab-org/quality/gitlab-environment-toolkit) (GET) provides a set of automation tools to easily deploy a [reference architecture](../administration/reference_architectures/index.md) on most major cloud providers. - -It is currently in beta, and is not yet recommended for production use. - -[**> Install a GitLab reference architecture using the GitLab Environment Toolkit.**](https://gitlab.com/gitlab-org/quality/gitlab-environment-toolkit#documentation) +## Choose the installation method -## Installing GitLab on Kubernetes via the GitLab Helm charts - -When installing GitLab on Kubernetes, there are some trade-offs that you -need to be aware of: - -- Administration and troubleshooting requires Kubernetes knowledge. -- It can be more expensive for smaller installations. The default installation - requires more resources than a single node Omnibus deployment, as most services - are deployed in a redundant fashion. -- There are some feature [limitations to be aware of](https://docs.gitlab.com/charts/#limitations). - -Due to these trade-offs, having Kubernetes experience is a requirement for -using this method. We recommend being familiar with Kubernetes before using it -to deploy GitLab in production. The methods for management, observability, and -some concepts are different than traditional deployments. - -[**> Install GitLab on Kubernetes using the GitLab Helm charts.**](https://docs.gitlab.com/charts/) - -## Installing GitLab with Docker - -GitLab maintains a set of official Docker images based on the Omnibus GitLab -package. - -[**> Install GitLab using the official GitLab Docker images.**](docker.md) - -## Installing GitLab from source - -If the Omnibus GitLab package isn't available for your distribution, you can -install GitLab from source. This can be useful with unsupported systems, like -\*BSD. For an overview of the directory structure, see the -[structure documentation](installation.md#gitlab-directory-structure). +Depending on your platform, select from the following available methods to +install GitLab: -[**> Install GitLab from source.**](installation.md) +| Installation method | Description | When to choose | +|----------------------------------------------------------------|-------------|----------------| +| [Linux package](https://docs.gitlab.com/omnibus/installation/) | The official deb/rpm packages (also known as Omnibus GitLab) that contains a bundle of GitLab and the components it depends on, including PostgreSQL, Redis, and Sidekiq. | This is the recommended method for getting started. The Linux packages are mature, scalable, and are used today on GitLab.com. If you need additional flexibility and resilience, we recommend deploying GitLab as described in the [reference architecture documentation](../administration/reference_architectures/index.md). | +| [Helm charts](https://docs.gitlab.com/charts/) | The cloud native Helm chart for installing GitLab and all of its components on Kubernetes. | When installing GitLab on Kubernetes, there are some trade-offs that you need to be aware of: <br/>- Administration and troubleshooting requires Kubernetes knowledge.<br/>- It can be more expensive for smaller installations. The default installation requires more resources than a single node Linux package deployment, as most services are deployed in a redundant fashion.<br/>- There are some feature [limitations to be aware of](https://docs.gitlab.com/charts/#limitations).<br/><br/> Use this method if your infrastructure is built on Kubernetes and you're familiar with how it works. The methods for management, observability, and some concepts are different than traditional deployments. | +| [Docker](https://docs.gitlab.com/omnibus/docker/) | The GitLab packages, Dockerized. | Use this method if you're familiar with Docker. | +| [Source](installation.md) | Install GitLab and all of its components from scratch. | Use this method if none of the previous methods are available for your platform. Useful for unsupported systems like \*BSD.| +| [GitLab Environment Toolkit (GET)](https://gitlab.com/gitlab-org/quality/gitlab-environment-toolkit#documentation) | The GitLab Environment toolkit provides a set of automation tools to deploy a [reference architecture](../administration/reference_architectures/index.md) on most major cloud providers. | Since GET is in beta and not yet recommended for production use, use this method if you want to test deploying GitLab in scalable environment. | -## Installing GitLab on cloud providers +## Install GitLab on cloud providers -GitLab can be installed on a variety of cloud providers by using any of -the above methods, provided the cloud provider supports it. +Regardless of the installation method, you can install GitLab on several cloud +providers, assuming the cloud provider supports it. Here are several possible installation +methods, the majority which use the Linux packages: -- [Install on AWS](aws/index.md): Install Omnibus GitLab on AWS using the community AMIs that GitLab provides. -- [Install GitLab on Google Cloud Platform](google_cloud_platform/index.md): Install Omnibus GitLab on a VM in GCP. -- [Install GitLab on Azure](azure/index.md): Install Omnibus GitLab from Azure Marketplace. -- [Install GitLab on OpenShift](https://docs.gitlab.com/charts/installation/cloud/openshift.html): Install GitLab on OpenShift by using the GitLab Helm charts. -- [Install GitLab on DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-gitlab-on-ubuntu-18-04): Install Omnibus GitLab on DigitalOcean. -- _Testing only!_ [DigitalOcean and Docker Machine](digitaloceandocker.md): - Quickly test any version of GitLab on DigitalOcean using Docker Machine. +| Cloud provider | Description | +|---------------------------------------------------------------|-------------| +| [AWS (HA)](aws/index.md) | Install GitLab on AWS using the community AMIs provided by GitLab. | +| [Google Cloud Platform (GCP)](google_cloud_platform/index.md) | Install GitLab on a VM in GCP. | +| [Azure](azure/index.md) | Install GitLab from Azure Marketplace. | +| [DigitalOcean](https://about.gitlab.com/blog/2016/04/27/getting-started-with-gitlab-and-digitalocean/) | Install GitLab on DigitalOcean. You can also [test GitLab on DigitalOcean using Docker Machine](digitaloceandocker.md). | ## Next steps Here are a few resources you might want to check out after completing the installation: -- [Upload a license](../user/admin_area/license.md) or [start a free trial](https://about.gitlab.com/free-trial/): +- [Upload a license](../user/admin_area/license.md) or [start a free trial](https://about.gitlab.com/free-trial/): Activate all GitLab Enterprise Edition functionality with a license. - [Set up runners](https://docs.gitlab.com/runner/): Set up one or more GitLab Runners, the agents that are responsible for all of the GitLab CI/CD features. diff --git a/doc/operations/incident_management/paging.md b/doc/operations/incident_management/paging.md index dd04cd63a54..4801f94d494 100644 --- a/doc/operations/incident_management/paging.md +++ b/doc/operations/incident_management/paging.md @@ -23,14 +23,12 @@ you never miss a page. ## Email notifications -Email notifications are available in projects that have been -[configured to create incidents automatically](incidents.md#create-incidents-automatically) -for triggered alerts. Project members with the **Owner** or **Maintainer** roles are -sent an email notification automatically. (This is not configurable.) To optionally -send additional email notifications to project members with the **Developer** role: +Email notifications are available in projects for triggered alerts. Project +members with the **Owner** or **Maintainer** roles have the option to receive +a single email notification for new alerts. 1. Navigate to **Settings > Operations**. 1. Expand the **Incidents** section. -1. In the **Alert Integration** tab, select the **Send a separate email notification to Developers** - check box. +1. In the **Alert Integration** tab, select the checkbox + **Send a single email notification to Owners and Maintainers for new alerts**. 1. Select **Save changes**. diff --git a/doc/topics/git/lfs/index.md b/doc/topics/git/lfs/index.md index 14bb28d2477..11c0fcc2373 100644 --- a/doc/topics/git/lfs/index.md +++ b/doc/topics/git/lfs/index.md @@ -269,3 +269,46 @@ You might choose to do this if you are using an appliance like a <!-- vale gitla GitLab can't verify LFS objects. Pushes then fail if you have GitLab LFS support enabled. To stop push failure, LFS support can be disabled in the [Project settings](../../../user/project/settings/index.md), which also disables GitLab LFS value-adds (Verifying LFS objects, UI integration for LFS). + +### Missing LFS objects + +An error about a missing LFS object may occur in either of these situations: + +- When migrating LFS objects from disk to object storage, with error messages like: + + ```plaintext + ERROR -- : Failed to transfer LFS object + 006622269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7 + with error: No such file or directory @ rb_sysopen - + /var/opt/gitlab/gitlab-rails/shared/lfs-objects/00/66/22269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7 + ``` + + (Line breaks have been added for legibility.) + +- When running the + [integrity check for LFS objects](../../../administration/raketasks/check.md#uploaded-files-integrity) + with the `VERBOSE=1` parameter. + +The database can have records for LFS objects which are not on disk. The database entry may +[prevent a new copy of the object being pushed](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/49241). +To delete these references: + +1. [Start a rails console](../../../administration/operations/rails_console.md). +1. Query the object that's reported as missing in the rails console, to return a file path: + + ```ruby + lfs_object = LfsObject.find_by(oid: '006622269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7') + lfs_object.file.path + ``` + +1. Check on disk if it exists: + + ```shell + ls -al /var/opt/gitlab/gitlab-rails/shared/lfs-objects/00/66/22269c61b41bf14a22bbe0e43be3acf86a4a446afb4250c3794ea47541a7 + ``` + +1. If the file is not present, remove the database record via the rails console: + + ```ruby + lfs_object.destroy + ``` diff --git a/doc/user/application_security/secret_detection/index.md b/doc/user/application_security/secret_detection/index.md index 9390a5def18..d3709023085 100644 --- a/doc/user/application_security/secret_detection/index.md +++ b/doc/user/application_security/secret_detection/index.md @@ -102,8 +102,7 @@ as shown in the following table: Secret Detection is performed by a [specific analyzer](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Security/Secret-Detection.gitlab-ci.yml) during the `secret-detection` job. It runs regardless of your app's programming language. -The Secret Detection analyzer includes [Gitleaks](https://github.com/zricethezav/gitleaks) and -[TruffleHog](https://github.com/dxa4481/truffleHog) checks. +The Secret Detection analyzer includes [Gitleaks](https://github.com/zricethezav/gitleaks) checks. Note that the Secret Detection analyzer ignores Password-in-URL vulnerabilities if the password begins with a dollar sign (`$`), as this likely indicates the password is an environment variable. @@ -200,7 +199,7 @@ Secret Detection can be customized by defining available CI/CD variables: > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/211387) in GitLab 13.5. You can customize the default secret detection rules provided with GitLab. -Customization allows you to exclude rules and add new rules. +Customization allows replace the default secret detection rules with rules that you define. To create a custom ruleset: |