diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/api/settings.md | 1 | ||||
-rw-r--r-- | doc/development/elasticsearch.md | 2 | ||||
-rw-r--r-- | doc/development/testing_guide/img/k9s.png | bin | 0 -> 364038 bytes | |||
-rw-r--r-- | doc/development/testing_guide/review_apps.md | 46 | ||||
-rw-r--r-- | doc/install/installation.md | 19 | ||||
-rw-r--r-- | doc/user/application_security/dependency_scanning/index.md | 2 | ||||
-rw-r--r-- | doc/workflow/time-tracking/time-tracking-example.png | bin | 14564 -> 0 bytes | |||
-rw-r--r-- | doc/workflow/time_tracking.md | 20 | ||||
-rw-r--r-- | doc/workflow/time_tracking/img/time_tracking_example_v12_2.png | bin | 0 -> 16362 bytes | |||
-rw-r--r-- | doc/workflow/time_tracking/img/time_tracking_sidebar_v8_16.png (renamed from doc/workflow/time-tracking/time-tracking-sidebar.png) | bin | 9068 -> 9068 bytes |
10 files changed, 72 insertions, 18 deletions
diff --git a/doc/api/settings.md b/doc/api/settings.md index 4ad4ebdacb6..39fc848b272 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -220,7 +220,6 @@ are listed in the descriptions of the relevant settings. | `elasticsearch_aws` | boolean | no | **(PREMIUM)** Enable the use of AWS hosted Elasticsearch | | `elasticsearch_aws_region` | string | no | **(PREMIUM)** The AWS region the elasticsearch domain is configured | | `elasticsearch_aws_secret_access_key` | string | no | **(PREMIUM)** AWS IAM secret access key | -| `elasticsearch_experimental_indexer` | boolean | no | **(PREMIUM)** Use the experimental elasticsearch indexer. More info: <https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer> | | `elasticsearch_indexing` | boolean | no | **(PREMIUM)** Enable Elasticsearch indexing | | `elasticsearch_limit_indexing` | boolean | no | **(PREMIUM)** Limit Elasticsearch to index certain namespaces and projects | | `elasticsearch_namespace_ids` | array of integers | no | **(PREMIUM)** The namespaces to index via Elasticsearch if `elasticsearch_limit_indexing` is enabled. | diff --git a/doc/development/elasticsearch.md b/doc/development/elasticsearch.md index f2412c249c1..f3ea55d3d5d 100644 --- a/doc/development/elasticsearch.md +++ b/doc/development/elasticsearch.md @@ -59,7 +59,7 @@ Additionally, if you need large repos or multiple forks for testing, please cons ## How does it work? -The Elasticsearch integration depends on an external indexer. We ship a [ruby indexer](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/bin/elastic_repo_indexer) by default but are also working on an [indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer). The user must trigger the initial indexing via a rake task, but after this is done GitLab itself will trigger reindexing when required via `after_` callbacks on create, update, and destroy that are inherited from [/ee/app/models/concerns/elastic/application_search.rb](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/models/concerns/elastic/application_search.rb). +The Elasticsearch integration depends on an external indexer. We ship an [indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer). The user must trigger the initial indexing via a rake task but, after this is done, GitLab itself will trigger reindexing when required via `after_` callbacks on create, update, and destroy that are inherited from [/ee/app/models/concerns/elastic/application_search.rb](https://gitlab.com/gitlab-org/gitlab-ee/blob/master/ee/app/models/concerns/elastic/application_search.rb). All indexing after the initial one is done via `ElasticIndexerWorker` (sidekiq jobs). diff --git a/doc/development/testing_guide/img/k9s.png b/doc/development/testing_guide/img/k9s.png Binary files differnew file mode 100644 index 00000000000..c4b222f0b64 --- /dev/null +++ b/doc/development/testing_guide/img/k9s.png diff --git a/doc/development/testing_guide/review_apps.md b/doc/development/testing_guide/review_apps.md index 13772cbe015..8698a1e4c2d 100644 --- a/doc/development/testing_guide/review_apps.md +++ b/doc/development/testing_guide/review_apps.md @@ -10,24 +10,30 @@ Review Apps are automatically deployed by each pipeline, both in ```mermaid graph TD - build-qa-image -.->|once the `prepare` stage is done| gitlab:assets:compile - review-build-cng -->|triggers a CNG-mirror pipeline and wait for it to be done| CNG-mirror - review-build-cng -.->|once the `test` stage is done| review-deploy - review-deploy -.->|once the `review` stage is done| review-qa-smoke + build-qa-image -->|once the `prepare` stage is done| gitlab:assets:compile + gitlab:assets:compile -->|once the `gitlab:assets:compile` job is done| review-build-cng + review-build-cng -.->|triggers a CNG-mirror pipeline and wait for it to be done| CNG-mirror + CNG-mirror -.->|polls until completed| review-build-cng + review-build-cng -->|once the `review-build-cng` job is done| review-deploy + review-deploy -->|once the `review-deploy` job is done| review-qa-smoke subgraph "1. gitlab-ce/ee `prepare` stage" build-qa-image end subgraph "2. gitlab-ce/ee `test` stage" - gitlab:assets:compile -->|plays dependent job once done| review-build-cng + gitlab:assets:compile end -subgraph "3. gitlab-ce/ee `review` stage" +subgraph "3. gitlab-ce/ee `review-prepare` stage" + review-build-cng + end + +subgraph "4. gitlab-ce/ee `review` stage" review-deploy["review-deploy<br><br>Helm deploys the Review App using the Cloud<br/>Native images built by the CNG-mirror pipeline.<br><br>Cloud Native images are deployed to the `review-apps-ce` or `review-apps-ee`<br>Kubernetes (GKE) cluster, in the GCP `gitlab-review-apps` project."] end -subgraph "4. gitlab-ce/ee `qa` stage" +subgraph "5. gitlab-ce/ee `qa` stage" review-qa-smoke[review-qa-smoke<br><br>gitlab-qa runs the smoke suite against the Review App.] end @@ -177,6 +183,25 @@ secure note named **gitlab-{ce,ee} Review App's root password**. `review-qa-raise-e-12chm0-migrations.1-nqwtx`. 1. Click on the `Container logs` link. +### Diagnosing unhealthy review-app releases + +If [Review App Stability](https://gitlab.com/gitlab-org/quality/team-tasks/issues/93) dips this may be a signal +that the `review-apps-ce/ee` cluster is unhealthy. Leading indicators may be healthcheck failures leading to restarts or majority failure for Review App deployments. + +The following items may help diagnose this: + +- [Instance group CPU Utilization in GCP](https://console.cloud.google.com/compute/instanceGroups/details/us-central1-a/gke-review-apps-ce-preemp-n1-standard-a4c9571c-grp?project=gitlab-review-apps&tab=monitoring&graph=GCE_CPU&duration=PT12H) - helpful to identify if nodes are problematic or the entire cluster is trending towards unhealthy +- [Instance Group size in GCP](https://console.cloud.google.com/compute/instanceGroups/details/us-central1-a/gke-review-apps-ce-preemp-n1-standard-a4c9571c-grp?project=gitlab-review-apps&tab=monitoring&graph=GCE_SIZE&duration=PT12H) - aids in identifying load spikes on the cluster. Kubernetes will add nodes up to 220 based on total resource requests. +- `kubectl top nodes --sort-by=cpu` - can identify if node spikes are common or load on specific nodes which may get rebalanced by the Kubernetes scheduler. +- `kubectl top pods --sort-by=cpu` - +- [K9s] - K9s is a powerful command line dashboard which allows you to filter by labels. This can help identify trends with apps exceeding the [review-app resource requests](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/scripts/review_apps/base-config.yaml). Kubernetes will schedule pods to nodes based on resource requests and allow for CPU usage up to the limits. + - In K9s you can sort or add filters by typing the `/` character + - `-lrelease=<review-app-slug>` - filters down to all pods for a release. This aids in determining what is having issues in a single deployment + - `-lapp=<app>` - filters down to all pods for a specific app. This aids in determining resource usage by app. + - You can scroll to a Kubernetes resource and hit `d`(describe), `s`(shell), `l`(logs) for a deeper inspection + +![K9s](img/k9s.png) + ### Troubleshoot a pending `dns-gitlab-review-app-external-dns` Deployment #### Finding the problem @@ -266,6 +291,12 @@ find a way to limit it to only us.** ## Other resources - [Review Apps integration for CE/EE (presentation)](https://docs.google.com/presentation/d/1QPLr6FO4LduROU8pQIPkX1yfGvD13GEJIBOenqoKxR8/edit?usp=sharing) +- [Stability issues](https://gitlab.com/gitlab-org/quality/team-tasks/issues/212) + +### Helpful command line tools + +- [K9s] - enables CLI dashboard across pods and enabling filtering by labels +- [Stern](https://github.com/wercker/stern) - enables cross pod log tailing based on label/field selectors [charts-1068]: https://gitlab.com/gitlab-org/charts/gitlab/issues/1068 [gitlab-pipeline]: https://gitlab.com/gitlab-org/gitlab-ce/pipelines/44362587 @@ -285,6 +316,7 @@ find a way to limit it to only us.** [gitlab-ci-yml]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/.gitlab-ci.yml [gitlab-k8s-integration]: ../../user/project/clusters/index.md [password-bug]: https://gitlab.com/gitlab-org/gitlab-ce/issues/53621 +[K9s]: https://github.com/derailed/k9s --- diff --git a/doc/install/installation.md b/doc/install/installation.md index 6039ddc45ae..cf084ca74a9 100644 --- a/doc/install/installation.md +++ b/doc/install/installation.md @@ -585,6 +585,25 @@ You can specify a different Git repository by providing it as an extra parameter sudo -u git -H bundle exec rake "gitlab:workhorse:install[/home/git/gitlab-workhorse,https://example.com/gitlab-workhorse.git]" RAILS_ENV=production ``` +### Install gitlab-elasticsearch-indexer + +GitLab-Elasticsearch-Indexer uses [GNU Make](https://www.gnu.org/software/make/). The +following command-line will install GitLab-Elasticsearch-Indexer in `/home/git/gitlab-elasticsearch-indexer` +which is the recommended location. + +```sh +sudo -u git -H bundle exec rake "gitlab:indexer:install[/home/git/gitlab-elasticsearch-indexer]" RAILS_ENV=production +``` + +You can specify a different Git repository by providing it as an extra parameter: + +```sh +sudo -u git -H bundle exec rake "gitlab:indexer:install[/home/git/gitlab-elasticsearch-indexer,https://example.com/gitlab-elasticsearch-indexer.git]" RAILS_ENV=production +``` + +The source code will first be fetched to the path specified by the first parameter. Then a binary will be built under its `bin` directory. +You will then need to update `gitlab.yml`'s `production -> elasticsearch -> indexer_path` setting to point to that binary. + ### Install GitLab Pages GitLab Pages uses [GNU Make](https://www.gnu.org/software/make/). This step is optional and only needed if you wish to host static sites from within GitLab. The following commands will install GitLab Pages in `/home/git/gitlab-pages`. For additional setup steps, consult the [administration guide](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/administration/pages/source.md) for your version of GitLab as the GitLab Pages daemon can be run several different ways. diff --git a/doc/user/application_security/dependency_scanning/index.md b/doc/user/application_security/dependency_scanning/index.md index 166a71b6fbe..5baaa92d3d8 100644 --- a/doc/user/application_security/dependency_scanning/index.md +++ b/doc/user/application_security/dependency_scanning/index.md @@ -58,7 +58,7 @@ The following languages and dependency managers are supported. | JavaScript ([npm](https://www.npmjs.com/), [yarn](https://yarnpkg.com/en/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium), [Retire.js](https://retirejs.github.io/retire.js) | | Go ([Golang](https://golang.org/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/7132 "Dependency Scanning for Go")) | not available | | PHP ([Composer](https://getcomposer.org/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium) | -| Python ([pip](https://pip.pypa.io/en/stable/)) (only `requirements.txt` supported) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium) | +| Python ([pip](https://pip.pypa.io/en/stable/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium) | | Python ([Pipfile](https://docs.pipenv.org/en/latest/basics/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/11756 "Pipfile.lock support for Dependency Scanning"))| not available | | Python ([poetry](https://poetry.eustace.io/)) | not currently ([issue](https://gitlab.com/gitlab-org/gitlab-ee/issues/7006 "Support Poetry in Dependency Scanning")) | not available | | Ruby ([gem](https://rubygems.org/)) | yes | [gemnasium](https://gitlab.com/gitlab-org/security-products/gemnasium), [bundler-audit](https://github.com/rubysec/bundler-audit) | diff --git a/doc/workflow/time-tracking/time-tracking-example.png b/doc/workflow/time-tracking/time-tracking-example.png Binary files differdeleted file mode 100644 index a96e4da7f74..00000000000 --- a/doc/workflow/time-tracking/time-tracking-example.png +++ /dev/null diff --git a/doc/workflow/time_tracking.md b/doc/workflow/time_tracking.md index 3d9f015b1fe..7404d9be210 100644 --- a/doc/workflow/time_tracking.md +++ b/doc/workflow/time_tracking.md @@ -1,3 +1,7 @@ +--- +type: reference +--- + # Time Tracking > Introduced in GitLab 8.14. @@ -7,7 +11,7 @@ requests within GitLab. ## Overview -Time Tracking lets you: +Time Tracking allows you: - Record the time spent working on an issue or a merge request. - Add an estimate of the amount of time needed to complete an issue or a merge @@ -18,7 +22,7 @@ You don't have to indicate an estimate to enter the time spent, and vice versa. Data about time tracking is shown on the issue/merge request sidebar, as shown below. -![Time tracking in the sidebar](time-tracking/time-tracking-sidebar.png) +![Time tracking in the sidebar](time_tracking/img/time_tracking_sidebar_v8_16.png) ## How to enter data @@ -30,7 +34,7 @@ in a comment in both an issue or a merge request. Below is an example of how you can use those new quick actions inside a comment. -![Time tracking example in a comment](time-tracking/time-tracking-example.png) +![Time tracking example in a comment](time_tracking/img/time_tracking_example_v12_2.png) Adding time entries (time spent or estimates) is limited to project members. @@ -65,11 +69,11 @@ To remove all the time spent at once, use `/remove_time_spent`. The following time units are available: -- months (mo) -- weeks (w) -- days (d) -- hours (h) -- minutes (m) +- Months (mo) +- Weeks (w) +- Days (d) +- Hours (h) +- Minutes (m) Default conversion rates are 1mo = 4w, 1w = 5d and 1d = 8h. diff --git a/doc/workflow/time_tracking/img/time_tracking_example_v12_2.png b/doc/workflow/time_tracking/img/time_tracking_example_v12_2.png Binary files differnew file mode 100644 index 00000000000..31d8c490ed1 --- /dev/null +++ b/doc/workflow/time_tracking/img/time_tracking_example_v12_2.png diff --git a/doc/workflow/time-tracking/time-tracking-sidebar.png b/doc/workflow/time_tracking/img/time_tracking_sidebar_v8_16.png Binary files differindex 22124afed6f..22124afed6f 100644 --- a/doc/workflow/time-tracking/time-tracking-sidebar.png +++ b/doc/workflow/time_tracking/img/time_tracking_sidebar_v8_16.png |