Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-12-20 12:24:38 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-12-20 12:24:38 +0300
commit898e2cc1dfa88b4ac39cb4b35011f61b37f57b51 (patch)
treec6524edb6c9a43cccf93be05c36883fde1a53ee4 /doc
parentb5571e6e22cdacc81f78eff5943d68c8ba220fbb (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r--doc/administration/gitaly/index.md7
-rw-r--r--doc/administration/monitoring/performance/gitlab_configuration.md2
-rw-r--r--doc/administration/monitoring/performance/grafana_configuration.md6
-rw-r--r--doc/administration/monitoring/performance/influxdb_configuration.md6
-rw-r--r--doc/administration/monitoring/performance/influxdb_schema.md2
-rw-r--r--doc/administration/troubleshooting/elasticsearch.md9
-rw-r--r--doc/api/graphql/reference/gitlab_schema.graphql56
-rw-r--r--doc/api/graphql/reference/gitlab_schema.json34
-rw-r--r--doc/api/graphql/reference/index.md26
-rw-r--r--doc/api/project_level_variables.md1
-rw-r--r--doc/development/elasticsearch.md14
-rw-r--r--doc/gitlab-basics/start-using-git.md2
-rw-r--r--doc/integration/elasticsearch.md12
-rw-r--r--doc/update/patch_versions.md6
-rw-r--r--doc/update/upgrading_from_ce_to_ee.md6
-rw-r--r--doc/user/admin_area/index.md1
-rw-r--r--doc/user/clusters/applications.md4
-rw-r--r--doc/user/group/clusters/index.md9
-rw-r--r--doc/user/instance/clusters/index.md14
-rw-r--r--doc/user/project/clusters/add_remove_clusters.md434
-rw-r--r--doc/user/project/clusters/eks_and_gitlab/index.md4
-rw-r--r--doc/user/project/clusters/img/add_cluster.pngbin59516 -> 0 bytes
-rw-r--r--doc/user/project/clusters/index.md20
-rw-r--r--doc/user/project/clusters/serverless/index.md2
-rw-r--r--doc/user/project/repository/git_blame.md5
-rw-r--r--doc/user/project/repository/img/file_blame_previous_commit_v12_7.pngbin0 -> 105806 bytes
26 files changed, 356 insertions, 326 deletions
diff --git a/doc/administration/gitaly/index.md b/doc/administration/gitaly/index.md
index 9218ffa4006..47ecfaec36c 100644
--- a/doc/administration/gitaly/index.md
+++ b/doc/administration/gitaly/index.md
@@ -47,10 +47,11 @@ But since 11.8 the indexer uses Gitaly for data access as well. NFS can still
be leveraged for redudancy on block level of the Git data. But only has to
be mounted on the Gitaly server.
-Starting with GitLab 11.8, it is possible to use Elasticsearch in conjunction with
+From GitLab v11.8 to v12.2, it is possible to use Elasticsearch in conjunction with
a Gitaly setup that isn't utilising NFS. In order to use Elasticsearch in this
-scenario, the [new repository indexer](../../integration/elasticsearch.md#elasticsearch-repository-indexer-beta)
-needs to be enabled in your GitLab configuration.
+scenario, the [new repository indexer](../../integration/elasticsearch.md#elasticsearch-repository-indexer)
+needs to be enabled in your GitLab configuration. [Since GitLab v12.3](https://gitlab.com/gitlab-org/gitlab/issues/6481),
+the new indexer becomes the default and no configuration is required.
NOTE: **Note:** While Gitaly can be used as a replacement for NFS, it's not recommended
to use EFS as it may impact GitLab's performance. Review the [relevant documentation](../high_availability/nfs.md#avoid-using-awss-elastic-file-system-efs)
diff --git a/doc/administration/monitoring/performance/gitlab_configuration.md b/doc/administration/monitoring/performance/gitlab_configuration.md
index 528e032417a..1bff170768a 100644
--- a/doc/administration/monitoring/performance/gitlab_configuration.md
+++ b/doc/administration/monitoring/performance/gitlab_configuration.md
@@ -32,7 +32,7 @@ have been performed.
Read more on:
-- [Introduction to GitLab Performance Monitoring](introduction.md)
+- [Introduction to GitLab Performance Monitoring](index.md)
- [InfluxDB Configuration](influxdb_configuration.md)
- [InfluxDB Schema](influxdb_schema.md)
- [Grafana Install/Configuration](grafana_configuration.md)
diff --git a/doc/administration/monitoring/performance/grafana_configuration.md b/doc/administration/monitoring/performance/grafana_configuration.md
index ccba0a55479..5f3882918a8 100644
--- a/doc/administration/monitoring/performance/grafana_configuration.md
+++ b/doc/administration/monitoring/performance/grafana_configuration.md
@@ -1,5 +1,9 @@
# Grafana Configuration
+CAUTION: **InfluxDB is deprecated in favor of Prometheus:**
+InfluxDB support is scheduled to be removed in GitLab 13.0.
+You are advised to use [Prometheus](../prometheus/index.md) instead.
+
[Grafana](https://grafana.com/) is a tool that allows you to visualize time
series metrics through graphs and dashboards. It supports several backend
data stores, including InfluxDB. GitLab writes performance data to InfluxDB
@@ -152,7 +156,7 @@ For more information and further mitigation details, please refer to our [blog p
Read more on:
-- [Introduction to GitLab Performance Monitoring](introduction.md)
+- [Introduction to GitLab Performance Monitoring](index.md)
- [GitLab Configuration](gitlab_configuration.md)
- [InfluxDB Installation/Configuration](influxdb_configuration.md)
- [InfluxDB Schema](influxdb_schema.md)
diff --git a/doc/administration/monitoring/performance/influxdb_configuration.md b/doc/administration/monitoring/performance/influxdb_configuration.md
index aaea0a5968d..49076d3f47d 100644
--- a/doc/administration/monitoring/performance/influxdb_configuration.md
+++ b/doc/administration/monitoring/performance/influxdb_configuration.md
@@ -1,7 +1,7 @@
# InfluxDB Configuration
-CAUTION: **InfluxDB is being deprecated in favor of Prometheus:**
-InfluxDB support is scheduled to be dropped in GitLab 13.0.
+CAUTION: **InfluxDB is deprecated in favor of Prometheus:**
+InfluxDB support is scheduled to be removed in GitLab 13.0.
You are advised to use [Prometheus](../prometheus/index.md) instead.
The default settings provided by [InfluxDB] are not sufficient for a high traffic
@@ -182,7 +182,7 @@ That's it! Now your GitLab instance should send data to InfluxDB.
Read more on:
-- [Introduction to GitLab Performance Monitoring](introduction.md)
+- [Introduction to GitLab Performance Monitoring](index.md)
- [GitLab Configuration](gitlab_configuration.md)
- [InfluxDB Schema](influxdb_schema.md)
- [Grafana Install/Configuration](grafana_configuration.md)
diff --git a/doc/administration/monitoring/performance/influxdb_schema.md b/doc/administration/monitoring/performance/influxdb_schema.md
index 71814deb2bc..34d35492ccf 100644
--- a/doc/administration/monitoring/performance/influxdb_schema.md
+++ b/doc/administration/monitoring/performance/influxdb_schema.md
@@ -95,7 +95,7 @@ Depending on the event type additional tags may be available as well.
Read more on:
-- [Introduction to GitLab Performance Monitoring](introduction.md)
+- [Introduction to GitLab Performance Monitoring](index.md)
- [GitLab Configuration](gitlab_configuration.md)
- [InfluxDB Configuration](influxdb_configuration.md)
- [Grafana Install/Configuration](grafana_configuration.md)
diff --git a/doc/administration/troubleshooting/elasticsearch.md b/doc/administration/troubleshooting/elasticsearch.md
index 5846514c574..560c6b2f53a 100644
--- a/doc/administration/troubleshooting/elasticsearch.md
+++ b/doc/administration/troubleshooting/elasticsearch.md
@@ -106,7 +106,7 @@ graph TD;
D2 --> |Yes| D4
D4 --> |No| D5
D4 --> |Yes| D6
- D{Is the error concerning<br>the beta indexer?}
+ D{Is the error concerning<br>the Go indexer?}
D1[It would be best<br>to speak with an<br>Elasticsearch admin.]
D2{Is the ICU development<br>package installed?}
D3>This package is required.<br>Install the package<br>and retry.]
@@ -245,12 +245,13 @@ much to "integrate" here.
If the issue is:
-- Not concerning the beta indexer, it is almost always an
+- With the Go indexer, check if the ICU development package is installed.
+ This is a required package so make sure you install it.
+ Go indexer was a beta indexer which can be optionally turned on/off, but in 12.3 it reached stable status and is now the default.
+- Not concerning the Go indexer, it is almost always an
Elasticsearch-side issue. This means you should reach out to your Elasticsearch admin
regarding the error(s) you are seeing. If you are unsure here, it never hurts to reach
out to GitLab support.
-- With the beta indexer, check if the ICU development package is installed.
- This is a required package so make sure you install it.
Beyond that, you will want to review the error. If it is:
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql
index bc3395920ab..1e25e977286 100644
--- a/doc/api/graphql/reference/gitlab_schema.graphql
+++ b/doc/api/graphql/reference/gitlab_schema.graphql
@@ -503,6 +503,9 @@ type CreateSnippetPayload {
}
type Design implements Noteable {
+ """
+ Diff refs of the design
+ """
diffRefs: DiffRefs!
"""
@@ -531,13 +534,34 @@ type Design implements Noteable {
): DiscussionConnection!
"""
- The change that happened to the design at this version
+ Type of change made to the design at the version specified by the `atVersion`
+ argument if supplied. Defaults to the latest version
"""
event: DesignVersionEvent!
+
+ """
+ Filename of the design file
+ """
filename: String!
+
+ """
+ Full path of the design file
+ """
fullPath: String!
+
+ """
+ ID of the design
+ """
id: ID!
+
+ """
+ Image of the design
+ """
image: String!
+
+ """
+ Issue associated with the design
+ """
issue: Issue!
"""
@@ -566,13 +590,17 @@ type Design implements Noteable {
): NoteConnection!
"""
- The total count of user-created notes for this design
+ Total count of user-created notes for the design
"""
notesCount: Int!
+
+ """
+ Project associated with the design
+ """
project: Project!
"""
- All versions related to this design ordered newest first
+ All versions related to the design, ordered newest first
"""
versions(
"""
@@ -599,7 +627,7 @@ type Design implements Noteable {
type DesignCollection {
"""
- All designs for this collection
+ All designs for the design collection
"""
designs(
"""
@@ -638,11 +666,19 @@ type DesignCollection {
"""
last: Int
): DesignConnection!
+
+ """
+ Issue associated with the design collection
+ """
issue: Issue!
+
+ """
+ Project associated with the design collection
+ """
project: Project!
"""
- All versions related to all designs ordered newest first
+ All versions related to all designs, ordered newest first
"""
versions(
"""
@@ -799,7 +835,7 @@ type DesignManagementUploadPayload {
type DesignVersion {
"""
- All designs that were changed in this version
+ All designs that were changed in the version
"""
designs(
"""
@@ -822,7 +858,15 @@ type DesignVersion {
"""
last: Int
): DesignConnection!
+
+ """
+ ID of the design version
+ """
id: ID!
+
+ """
+ SHA of the design version
+ """
sha: ID!
}
diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json
index 3c30d2482e8..e71fd3fc71b 100644
--- a/doc/api/graphql/reference/gitlab_schema.json
+++ b/doc/api/graphql/reference/gitlab_schema.json
@@ -9206,7 +9206,7 @@
"fields": [
{
"name": "designs",
- "description": "All designs for this collection",
+ "description": "All designs for the design collection",
"args": [
{
"name": "ids",
@@ -9309,7 +9309,7 @@
},
{
"name": "issue",
- "description": null,
+ "description": "Issue associated with the design collection",
"args": [
],
@@ -9327,7 +9327,7 @@
},
{
"name": "project",
- "description": null,
+ "description": "Project associated with the design collection",
"args": [
],
@@ -9345,7 +9345,7 @@
},
{
"name": "versions",
- "description": "All versions related to all designs ordered newest first",
+ "description": "All versions related to all designs, ordered newest first",
"args": [
{
"name": "after",
@@ -10322,7 +10322,7 @@
"fields": [
{
"name": "diffRefs",
- "description": null,
+ "description": "Diff refs of the design",
"args": [
],
@@ -10397,7 +10397,7 @@
},
{
"name": "event",
- "description": "The change that happened to the design at this version",
+ "description": "Type of change made to the design at the version specified by the `atVersion` argument if supplied. Defaults to the latest version",
"args": [
],
@@ -10415,7 +10415,7 @@
},
{
"name": "filename",
- "description": null,
+ "description": "Filename of the design file",
"args": [
],
@@ -10433,7 +10433,7 @@
},
{
"name": "fullPath",
- "description": null,
+ "description": "Full path of the design file",
"args": [
],
@@ -10451,7 +10451,7 @@
},
{
"name": "id",
- "description": null,
+ "description": "ID of the design",
"args": [
],
@@ -10469,7 +10469,7 @@
},
{
"name": "image",
- "description": null,
+ "description": "Image of the design",
"args": [
],
@@ -10487,7 +10487,7 @@
},
{
"name": "issue",
- "description": null,
+ "description": "Issue associated with the design",
"args": [
],
@@ -10562,7 +10562,7 @@
},
{
"name": "notesCount",
- "description": "The total count of user-created notes for this design",
+ "description": "Total count of user-created notes for the design",
"args": [
],
@@ -10580,7 +10580,7 @@
},
{
"name": "project",
- "description": null,
+ "description": "Project associated with the design",
"args": [
],
@@ -10598,7 +10598,7 @@
},
{
"name": "versions",
- "description": "All versions related to this design ordered newest first",
+ "description": "All versions related to the design, ordered newest first",
"args": [
{
"name": "after",
@@ -10819,7 +10819,7 @@
"fields": [
{
"name": "designs",
- "description": "All designs that were changed in this version",
+ "description": "All designs that were changed in the version",
"args": [
{
"name": "after",
@@ -10876,7 +10876,7 @@
},
{
"name": "id",
- "description": null,
+ "description": "ID of the design version",
"args": [
],
@@ -10894,7 +10894,7 @@
},
{
"name": "sha",
- "description": null,
+ "description": "SHA of the design version",
"args": [
],
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 1669e3d604c..f142cee8544 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -104,22 +104,22 @@ The API can be explored interactively using the [GraphiQL IDE](../index.md#graph
| Name | Type | Description |
| --- | ---- | ---------- |
-| `id` | ID! | |
-| `project` | Project! | |
-| `issue` | Issue! | |
-| `notesCount` | Int! | The total count of user-created notes for this design |
-| `filename` | String! | |
-| `fullPath` | String! | |
-| `event` | DesignVersionEvent! | The change that happened to the design at this version |
-| `image` | String! | |
-| `diffRefs` | DiffRefs! | |
+| `id` | ID! | ID of the design |
+| `project` | Project! | Project associated with the design |
+| `issue` | Issue! | Issue associated with the design |
+| `notesCount` | Int! | Total count of user-created notes for the design |
+| `filename` | String! | Filename of the design file |
+| `fullPath` | String! | Full path of the design file |
+| `event` | DesignVersionEvent! | Type of change made to the design at the version specified by the `atVersion` argument if supplied. Defaults to the latest version |
+| `image` | String! | Image of the design |
+| `diffRefs` | DiffRefs! | Diff refs of the design |
### DesignCollection
| Name | Type | Description |
| --- | ---- | ---------- |
-| `project` | Project! | |
-| `issue` | Issue! | |
+| `project` | Project! | Project associated with the design collection |
+| `issue` | Issue! | Issue associated with the design collection |
### DesignManagementDeletePayload
@@ -142,8 +142,8 @@ The API can be explored interactively using the [GraphiQL IDE](../index.md#graph
| Name | Type | Description |
| --- | ---- | ---------- |
-| `id` | ID! | |
-| `sha` | ID! | |
+| `id` | ID! | ID of the design version |
+| `sha` | ID! | SHA of the design version |
### DestroyNotePayload
diff --git a/doc/api/project_level_variables.md b/doc/api/project_level_variables.md
index 591911bb8ec..d4bda992f7c 100644
--- a/doc/api/project_level_variables.md
+++ b/doc/api/project_level_variables.md
@@ -86,7 +86,6 @@ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitla
"value": "new value",
"protected": false,
"variable_type": "env_var",
- "protected": false,
"masked": false,
"environment_scope": "*"
}
diff --git a/doc/development/elasticsearch.md b/doc/development/elasticsearch.md
index 1375bd6d56d..bd8a4e1c6d7 100644
--- a/doc/development/elasticsearch.md
+++ b/doc/development/elasticsearch.md
@@ -37,20 +37,6 @@ brew install elasticsearch@5.6
There is no need to install any plugins
-## New repo indexer (beta)
-
-If you're interested on working with the new beta repo indexer, all you need to do is:
-
-```sh
-git clone git@gitlab.com:gitlab-org/gitlab-elasticsearch-indexer.git
-make
-make install
-```
-
-this adds `gitlab-elasticsearch-indexer` to `$GOPATH/bin`, please make sure that is in your `$PATH`. After that GitLab will find it and you'll be able to enable it in the admin settings area.
-
-**note:** `make` will not recompile the executable unless you do `make clean` beforehand
-
## Helpful rake tasks
- `gitlab:elastic:test:index_size`: Tells you how much space the current index is using, as well as how many documents are in the index.
diff --git a/doc/gitlab-basics/start-using-git.md b/doc/gitlab-basics/start-using-git.md
index 097794d39a7..7fa84bf45bd 100644
--- a/doc/gitlab-basics/start-using-git.md
+++ b/doc/gitlab-basics/start-using-git.md
@@ -313,7 +313,7 @@ git merge master
### Synchronize changes in a forked repository with the upstream
-[Forking a repository](../user/project/repository/forking_workflow.md lets you create
+[Forking a repository](../user/project/repository/forking_workflow.md) lets you create
a copy of a repository in your namespace. Changes made to your copy of the repository
are not synchronized automatically with the original.
Your local fork (copy) contains changes made by you only, so to keep the project
diff --git a/doc/integration/elasticsearch.md b/doc/integration/elasticsearch.md
index 62b3de72a3a..7d07e8f6944 100644
--- a/doc/integration/elasticsearch.md
+++ b/doc/integration/elasticsearch.md
@@ -40,14 +40,13 @@ Once the data is added to the database or repository and [Elasticsearch is
enabled in the admin area](#enabling-elasticsearch) the search index will be
updated automatically.
-## Elasticsearch repository indexer (beta)
+## Elasticsearch repository indexer
-In order to improve Elasticsearch indexing performance, GitLab has made available a [new indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer).
-This will replace the included Ruby indexer in the future but should be considered beta software for now, so there may be some bugs.
+For indexing Git repository data, GitLab uses an [indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer).
-The Elasticsearch Go indexer is included in Omnibus for GitLab 11.8 and newer.
-
-To use the new Elasticsearch indexer included in Omnibus, check the box "Use the new repository indexer (beta)" when [enabling the Elasticsearch integration](#enabling-elasticsearch).
+The Go indexer was included in Omnibus GitLab 11.8 as an optional replacement to a
+Ruby-based indexer. [Since GitLab v12.3](https://gitlab.com/gitlab-org/gitlab/issues/6481),
+all indexing is done by the Go indexer, and the Ruby indexer is removed.
If you would like to use the Elasticsearch Go indexer with a source installation or an older version of GitLab, please follow the instructions below.
@@ -139,7 +138,6 @@ The following Elasticsearch settings are available:
| Parameter | Description |
| ----------------------------------------------------- | ----------- |
| `Elasticsearch indexing` | Enables/disables Elasticsearch indexing. You may want to enable indexing but disable search in order to give the index time to be fully completed, for example. Also, keep in mind that this option doesn't have any impact on existing data, this only enables/disables background indexer which tracks data changes. So by enabling this you will not get your existing data indexed, use special rake task for that as explained in [Adding GitLab's data to the Elasticsearch index](#adding-gitlabs-data-to-the-elasticsearch-index). |
-| `Use the new repository indexer (beta)` | Perform repository indexing using [GitLab Elasticsearch Indexer](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer). |
| `Search with Elasticsearch enabled` | Enables/disables using Elasticsearch in search. |
| `URL` | The URL to use for connecting to Elasticsearch. Use a comma-separated list to support clustering (e.g., `http://host1, https://host2:9200`). If your Elasticsearch instance is password protected, pass the `username:password` in the URL (e.g., `http://<username>:<password>@<elastic_host>:9200/`). |
| `Number of Elasticsearch shards` | Elasticsearch indexes are split into multiple shards for performance reasons. In general, larger indexes need to have more shards. Changes to this value do not take effect until the index is recreated. You can read more about tradeoffs in the [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#create-index-settings) |
diff --git a/doc/update/patch_versions.md b/doc/update/patch_versions.md
index b00fc5d90cf..5aa97d82fd1 100644
--- a/doc/update/patch_versions.md
+++ b/doc/update/patch_versions.md
@@ -94,11 +94,9 @@ sudo -u git -H git checkout v$(</home/git/gitlab/GITLAB_PAGES_VERSION)
sudo -u git -H make
```
-### 8. Install/Update `gitlab-elasticsearch-indexer` (optional) **(STARTER ONLY)**
+### 8. Install/Update `gitlab-elasticsearch-indexer` **(STARTER ONLY)**
-If you're interested in using GitLab's new [Elasticsearch repository indexer](../integration/elasticsearch.md#elasticsearch-repository-indexer-beta) (currently in beta)
-please follow the instructions on the document linked above and enable the
-indexer usage in the GitLab admin settings.
+Please follow the [install instruction](../integration/elasticsearch.md#installation).
### 9. Start application
diff --git a/doc/update/upgrading_from_ce_to_ee.md b/doc/update/upgrading_from_ce_to_ee.md
index 52a65a89cbf..d1853466e30 100644
--- a/doc/update/upgrading_from_ce_to_ee.md
+++ b/doc/update/upgrading_from_ce_to_ee.md
@@ -77,11 +77,9 @@ sudo -u git -H bundle exec rake yarn:install gitlab:assets:clean gitlab:assets:c
sudo -u git -H bundle exec rake cache:clear RAILS_ENV=production
```
-### 4. Install `gitlab-elasticsearch-indexer` (optional) **(STARTER ONLY)**
+### 4. Install `gitlab-elasticsearch-indexer` **(STARTER ONLY)**
-If you're interested in using GitLab's new [Elasticsearch repository indexer](../integration/elasticsearch.md)
-(currently in beta) please follow the instructions on the
-document linked above and enable the indexer usage in the GitLab admin settings.
+Please follow the [install instruction](../integration/elasticsearch.md#installation).
### 5. Start application
diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md
index ccf20d797aa..7d710e3b2c1 100644
--- a/doc/user/admin_area/index.md
+++ b/doc/user/admin_area/index.md
@@ -27,6 +27,7 @@ The Admin Area is made up of the following sections:
| Applications | Create system [OAuth applications](../../integration/oauth_provider.md) for integrations with other services. |
| Abuse Reports | Manage [abuse reports](abuse_reports.md) submitted by your users. |
| License **(STARTER ONLY)** | Upload, display, and remove [licenses](license.md). |
+| Kubernetes | Create and manage instance-level [Kubernetes clusters](../instance/clusters/index.md). |
| Push Rules **(STARTER)** | Configure pre-defined Git [push rules](../../push_rules/push_rules.md) for projects. |
| Geo **(PREMIUM ONLY)** | Configure and maintain [Geo nodes](geo_nodes.md). |
| Deploy Keys | Create instance-wide [SSH deploy keys](../../ssh/README.md#deploy-keys). |
diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md
index 95dbe7d3b51..a7753e3f3a4 100644
--- a/doc/user/clusters/applications.md
+++ b/doc/user/clusters/applications.md
@@ -454,6 +454,10 @@ Supported applications:
### Usage
+You can find and import all the files referenced below
+in the [example cluster applications
+project](https://gitlab.com/gitlab-org/cluster-integration/example-cluster-applications/).
+
To install applications using GitLab CI:
1. Connect the cluster to a [cluster management project](management_project.md).
diff --git a/doc/user/group/clusters/index.md b/doc/user/group/clusters/index.md
index 2b36c3bdf5b..83d1fc672df 100644
--- a/doc/user/group/clusters/index.md
+++ b/doc/user/group/clusters/index.md
@@ -53,8 +53,8 @@ differentiate the new cluster from the rest.
## GitLab-managed clusters
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22011) in GitLab 11.5.
-> Became [optional](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26565) in GitLab 11.11.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22011) in GitLab 11.5.
+> - Became [optional](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26565) in GitLab 11.11.
You can choose to allow GitLab to manage your cluster for you. If your cluster is
managed by GitLab, resources for your projects will be automatically created. See the
@@ -170,6 +170,11 @@ For important information about securely configuring GitLab Runners, see
Runners](../../project/clusters/add_remove_clusters.md#security-of-gitlab-runners)
documentation for project-level clusters.
+## More information
+
+For information on integrating GitLab and Kubernetes, see
+[Kubernetes clusters](../../project/clusters/index.md).
+
<!-- ## Troubleshooting
Include any troubleshooting steps that you can foresee. If you know beforehand what issues
diff --git a/doc/user/instance/clusters/index.md b/doc/user/instance/clusters/index.md
index 3d9a1eb219e..7b5ba14a5ae 100644
--- a/doc/user/instance/clusters/index.md
+++ b/doc/user/instance/clusters/index.md
@@ -12,11 +12,12 @@ projects.
## Cluster precedence
-GitLab will try match to clusters in the following order:
+GitLab will try [to match](../../../ci/environments.md#scoping-environments-with-specs) clusters in
+the following order:
-- Project-level clusters
-- Group-level clusters
-- Instance level
+- Project-level clusters.
+- Group-level clusters.
+- Instance-level clusters.
To be selected, the cluster must be enabled and
match the [environment selector](../../../ci/environments.md#scoping-environments-with-specs).
@@ -26,3 +27,8 @@ match the [environment selector](../../../ci/environments.md#scoping-environment
For a consolidated view of which CI [environments](../../../ci/environments.md)
are deployed to the Kubernetes cluster, see the documentation for
[cluster environments](../../clusters/environments.md).
+
+## More information
+
+For information on integrating GitLab and Kubernetes, see
+[Kubernetes clusters](../../project/clusters/index.md).
diff --git a/doc/user/project/clusters/add_remove_clusters.md b/doc/user/project/clusters/add_remove_clusters.md
index 25851fb7b9f..513c18c095f 100644
--- a/doc/user/project/clusters/add_remove_clusters.md
+++ b/doc/user/project/clusters/add_remove_clusters.md
@@ -10,6 +10,74 @@ Every new Google Cloud Platform (GCP) account receives [$300 in credit upon sign
and in partnership with Google, GitLab is able to offer an additional $200 for new GCP accounts to get started with GitLab's
Google Kubernetes Engine Integration. All you have to do is [follow this link](https://cloud.google.com/partners/partnercredit/?pcn_code=0014M00001h35gDQAQ#contact-form) and apply for credit.
+## Before you begin
+
+Before [adding a Kubernetes cluster](#add-new-cluster) using GitLab, you need:
+
+- GitLab itself. Either:
+ - A GitLab.com [account](https://about.gitlab.com/pricing/#gitlab-com).
+ - A [self-managed installation](https://about.gitlab.com/pricing/#self-managed) with GitLab version
+ 12.5 or later. This will ensure the GitLab UI can be used for cluster creation.
+- The following GitLab access:
+ - [Maintainer access to a project](../../permissions.md#project-members-permissions) for a
+ project-level cluster.
+ - [Maintainer access to a group](../../permissions.md#group-members-permissions) for a
+ group-level cluster.
+ - [Admin Area access](../../admin_area/index.md) for a self-managed instance-level
+ cluster. **(CORE ONLY)**
+
+### GKE requirements
+
+Before creating your first cluster on Google GKE with GitLab's integration, make sure the following
+requirements are met:
+
+- A [billing account](https://cloud.google.com/billing/docs/how-to/manage-billing-account)
+ set up with access.
+- The Kubernetes Engine API and related service are enabled. It should work immediately but may
+ take up to 10 minutes after you create a project. For more information see the
+ ["Before you begin" section of the Kubernetes Engine docs](https://cloud.google.com/kubernetes-engine/docs/quickstart#before-you-begin).
+
+### EKS requirements
+
+Before creating your first cluster on Amazon EKS with GitLab's integration, make sure the following
+requirements are met:
+
+- An [Amazon Web Services](https://aws.amazon.com/) account is set up and you are able to log in.
+- You have permissions to manage IAM resources.
+- If you want to use an [existing EKS cluster](#existing-eks-cluster):
+ - An Amazon EKS cluster with worker nodes properly configured.
+ - `kubectl` [installed and configured](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html#get-started-kubectl)
+ for access to the EKS cluster.
+
+#### Additional requirements for self-managed instances **(CORE ONLY)**
+
+If you are using a self-managed GitLab instance, GitLab must first be configured with a set of
+Amazon credentials. These credentials will be used to assume an Amazon IAM role provided by the user
+creating the cluster. Create an IAM user and ensure it has permissions to assume the role(s) that
+your users will use to create EKS clusters.
+
+For example, the following policy document allows assuming a role whose name starts with
+`gitlab-eks-` in account `123456789012`:
+
+```json
+{
+ "Version": "2012-10-17",
+ "Statement": {
+ "Effect": "Allow",
+ "Action": "sts:AssumeRole",
+ "Resource": "arn:aws:iam::123456789012:role/gitlab-eks-*"
+ }
+}
+```
+
+Generate an access key for the IAM user, and configure GitLab with the credentials:
+
+1. Navigate to **Admin Area > Settings > Integrations** and expand the **Amazon EKS** section.
+1. Check **Enable Amazon EKS integration**.
+1. Enter the account ID and access key credentials into the respective
+ `Account ID`, `Access key ID` and `Secret access key` fields.
+1. Click **Save changes**.
+
## Access controls
When creating a cluster in GitLab, you will be asked if you would like to create either:
@@ -116,57 +184,39 @@ New clusters can be added using GitLab for:
- Google Kubernetes Engine.
- Amazon Elastic Kubernetes Service.
-### GKE cluster
-
-GitLab supports:
-
-- Creating a new GKE cluster using the GitLab UI.
-- Providing credentials to add an [existing Kubernetes cluster](#add-existing-cluster).
-
-Starting from [GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/issues/25925), all the GKE clusters provisioned by GitLab are [VPC-native](https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips).
+### New GKE cluster
-NOTE: **Note:**
-The [Google authentication integration](../../../integration/google.md) must
-be enabled in GitLab at the instance level. If that's not the case, ask your
-GitLab administrator to enable it. On GitLab.com, this is enabled.
-
-#### GKE Requirements
+Starting from [GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/issues/25925), all the GKE clusters
+provisioned by GitLab are [VPC-native](https://cloud.google.com/kubernetes-engine/docs/how-to/alias-ips).
-Before creating your first cluster on Google Kubernetes Engine with GitLab's
-integration, make sure the following requirements are met:
-
-- A [billing account](https://cloud.google.com/billing/docs/how-to/manage-billing-account)
- is set up and you have permissions to access it.
-- The Kubernetes Engine API and related service are enabled. It should work immediately but may take up to 10 minutes after you create a project. For more information see the
- ["Before you begin" section of the Kubernetes Engine docs](https://cloud.google.com/kubernetes-engine/docs/quickstart#before-you-begin).
+#### Important notes
-Also note the following:
+Note the following:
+- The [Google authentication integration](../../../integration/google.md) must be enabled in GitLab
+ at the instance level. If that's not the case, ask your GitLab administrator to enable it. On
+ GitLab.com, this is enabled.
- Starting from [GitLab 12.1](https://gitlab.com/gitlab-org/gitlab-foss/issues/55902), all GKE clusters
created by GitLab are RBAC-enabled. Take a look at the [RBAC section](#rbac-cluster-resources) for
more information.
- Starting from [GitLab 12.5](https://gitlab.com/gitlab-org/gitlab/merge_requests/18341), the
cluster's pod address IP range will be set to /16 instead of the regular /14. /16 is a CIDR
notation.
-
-NOTE: **Note:**
-GitLab requires basic authentication enabled and a client certificate issued for the cluster in
-order to setup an [initial service account](#access-controls). Starting from [GitLab
-11.10](https://gitlab.com/gitlab-org/gitlab-foss/issues/58208), the cluster creation process will
-explicitly request that basic authentication and client certificate is enabled.
+- GitLab requires basic authentication enabled and a client certificate issued for the cluster to
+ set up an [initial service account](#access-controls). Starting from [GitLab
+ 11.10](https://gitlab.com/gitlab-org/gitlab-foss/issues/58208), the cluster creation process will
+ explicitly request that basic authentication and client certificate is enabled.
#### Creating the cluster on GKE
-If all of the above requirements are met, you can proceed to create and add a
-new Kubernetes cluster to your project:
-
-1. Navigate to your project's **Operations > Kubernetes** page.
-
- NOTE: **Note:**
- You need Maintainer [permissions](../../permissions.md) and above to access the Kubernetes page.
+To create and add a new Kubernetes cluster to your project, group, or instance:
+1. Navigate to your:
+ - Project's **Operations > Kubernetes** page, for a project-level cluster.
+ - Group's **Kubernetes** page, for a group-level cluster.
+ - **Admin Area > Kubernetes** page, for an instance-level cluster.
1. Click **Add Kubernetes cluster**.
-1. Click **Create with Google Kubernetes Engine**.
+1. Under the **Create new cluster** tab, click **Google GKE**.
1. Connect your Google account if you haven't done already by clicking the
**Sign in with Google** button.
1. Choose your cluster's settings:
@@ -198,64 +248,19 @@ separately after the cluster has been created. This means that Cloud Run
(Knative), Istio, and HTTP Load Balancing will be enabled on the cluster at
create time and cannot be [installed or uninstalled](../../clusters/applications.md) separately.
-### EKS Cluster
-
-GitLab supports:
-
-- Creating a new EKS cluster using the GitLab UI
- ([Introduced](https://gitlab.com/gitlab-org/gitlab/issues/22392) in GitLab 12.5).
-- Providing credentials to add an [existing Kubernetes cluster](#add-existing-cluster).
-
-#### EKS Requirements
-
-Before creating your first cluster on Amazon EKS with GitLab's integration,
-make sure the following requirements are met:
-
-- An [Amazon Web Services](https://aws.amazon.com/) account is set up and you are able to log in.
-- You have permissions to manage IAM resources.
-
-##### Additional requirements for self-managed instances
+### New EKS cluster
-If you are using a self-managed GitLab instance, GitLab must first
-be configured with a set of Amazon credentials. These credentials
-will be used to assume an Amazon IAM role provided by the user
-creating the cluster. Create an IAM user and ensure it has permissions
-to assume the role(s) that your users will use to create EKS clusters.
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/issues/22392) in GitLab 12.5.
-For example, the following policy document allows assuming a role whose name starts with
-`gitlab-eks-` in account `123456789012`:
-
-```json
-{
- "Version": "2012-10-17",
- "Statement": {
- "Effect": "Allow",
- "Action": "sts:AssumeRole",
- "Resource": "arn:aws:iam::123456789012:role/gitlab-eks-*"
- }
-}
-```
-
-Generate an access key for the IAM user, and configure GitLab with the credentials:
-
-1. Navigate to **Admin Area > Settings > Integrations** and expand the **Amazon EKS** section.
-1. Check **Enable Amazon EKS integration**.
-1. Enter the account ID and access key credentials into the respective
- `Account ID`, `Access key ID` and `Secret access key` fields.
-1. Click **Save changes**.
-
-#### Creating the cluster on EKS
-
-If all of the above requirements are met, you can proceed to create and add a
-new Kubernetes cluster to your project:
-
-1. Navigate to your project's **Operations > Kubernetes** page.
-
- NOTE: **Note:**
- You need Maintainer [permissions](../../permissions.md) and above to access the Kubernetes page.
+To create and add a new Kubernetes cluster to your project, group, or instance:
+1. Navigate to your:
+ - Project's **Operations > Kubernetes** page, for a project-level cluster.
+ - Group's **Kubernetes** page, for a group-level cluster.
+ - **Admin Area > Kubernetes** page, for an instance-level cluster.
1. Click **Add Kubernetes cluster**.
-1. Click **Amazon EKS**. You will be provided with an `Account ID` and `External ID` to use in the next step.
+1. Under the **Create new cluster** tab, click **Amazon EKS**. You will be provided with an
+ `Account ID` and `External ID` to use in the next step.
1. In the [IAM Management Console](https://console.aws.amazon.com/iam/home), create an IAM role:
1. From the left panel, select **Roles**.
1. Click **Create role**.
@@ -356,24 +361,23 @@ to install some [pre-defined applications](index.md#installing-applications).
If you have either of the following types of clusters already, you can add them to a project:
-- [Google Kubernetes Engine cluster](#add-existing-gke-cluster).
-- [Amazon Elastic Kubernetes Service](#add-existing-eks-cluster).
+- [Google Kubernetes Engine cluster](#existing-gke-cluster).
+- [Amazon Elastic Kubernetes Service](#existing-eks-cluster).
NOTE: **Note:**
Kubernetes integration is not supported for arm64 clusters. See the issue
[Helm Tiller fails to install on arm64 cluster](https://gitlab.com/gitlab-org/gitlab-foss/issues/64044) for details.
-### Add existing GKE cluster
-
-To add an existing Kubernetes cluster to your project:
-
-1. Navigate to your project's **Operations > Kubernetes** page.
+### Existing GKE cluster
- NOTE: **Note:**
- You need Maintainer [permissions](../../permissions.md) and above to access the Kubernetes page.
+To add an existing GKE cluster to your project, group, or instance:
+1. Navigate to your:
+ - Project's **Operations > Kubernetes** page, for a project-level cluster.
+ - Group's **Kubernetes** page, for a group-level cluster.
+ - **Admin Area > Kubernetes** page, for an instance-level cluster.
1. Click **Add Kubernetes cluster**.
-1. Click **Add an existing Kubernetes cluster** and fill in the details:
+1. Click the **Add existing cluster** tab and fill in the details:
- **Kubernetes cluster name** (required) - The name you wish to give the cluster.
- **Environment scope** (required) - The
[associated environment](index.md#setting-the-environment-scope-premium) to this cluster.
@@ -389,7 +393,7 @@ To add an existing Kubernetes cluster to your project:
```
- **CA certificate** (required) - A valid Kubernetes certificate is needed to authenticate to the cluster. We will use the certificate created by default.
- - List the secrets with `kubectl get secrets`, and one should named similar to
+ - List the secrets with `kubectl get secrets`, and one should be named similar to
`default-token-xxxxx`. Copy that token name for use below.
- Get the certificate by running this command:
@@ -508,136 +512,110 @@ To add an existing Kubernetes cluster to your project:
After a couple of minutes, your cluster will be ready to go. You can now proceed
to install some [pre-defined applications](index.md#installing-applications).
-### Add existing EKS cluster
-
-In this section, we will show how to integrate an [Amazon EKS](https://aws.amazon.com/eks/) cluster with GitLab and begin
-deploying applications.
-
-#### Requirements
-
-To integrate with with EKS, you will need:
-
-- An account on GitLab, like [GitLab.com](https://gitlab.com).
-- An Amazon EKS cluster (with worker nodes properly configured).
-- `kubectl` [installed and configured for access to the EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html#get-started-kubectl).
-
-If you don't have an Amazon EKS cluster, one can be created by following the
-[EKS getting started guide](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html).
-
-#### Configuring and connecting the EKS cluster
-
-From the left side bar, hover over **Operations > Kubernetes > Add Kubernetes cluster**,
-then click **Add an existing Kubernetes cluster**.
-
-A few details from the EKS cluster will be required to connect it to GitLab:
-
-1. **Retrieve the certificate**: A valid Kubernetes certificate is needed to
- authenticate to the EKS cluster. We will use the certificate created by default.
- Open a shell and use `kubectl` to retrieve it:
-
- - List the secrets with `kubectl get secrets`, and one should named similar to
- `default-token-xxxxx`. Copy that token name for use below.
- - Get the certificate with:
-
- ```sh
- kubectl get secret <secret name> -o jsonpath="{['data']['ca\.crt']}" | base64 --decode
- ```
-
-1. **Create admin token**: A `cluster-admin` token is required to install and
- manage Helm Tiller. GitLab establishes mutual SSL auth with Helm Tiller
- and creates limited service accounts for each application. To create the
- token we will create an admin service account as follows:
-
- 1. Create a file called `eks-admin-service-account.yaml` with contents:
-
- ```yaml
- apiVersion: v1
- kind: ServiceAccount
- metadata:
- name: eks-admin
- namespace: kube-system
- ```
-
- 1. Apply the service account to your cluster:
-
- ```bash
- kubectl apply -f eks-admin-service-account.yaml
- ```
-
- Output:
-
- ```bash
- serviceaccount "eks-admin" created
- ```
-
- 1. Create a file called `eks-admin-cluster-role-binding.yaml` with contents:
-
- ```yaml
- apiVersion: rbac.authorization.k8s.io/v1beta1
- kind: ClusterRoleBinding
- metadata:
- name: eks-admin
- roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: ClusterRole
- name: cluster-admin
- subjects:
- - kind: ServiceAccount
- name: eks-admin
- namespace: kube-system
- ```
-
- 1. Apply the cluster role binding to your cluster:
-
- ```bash
- kubectl apply -f eks-admin-cluster-role-binding.yaml
- ```
-
- Output:
-
- ```bash
- clusterrolebinding "eks-admin" created
- ```
-
- 1. Retrieve the token for the `eks-admin` service account:
-
- ```bash
- kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')
- ```
-
- Copy the `<authentication_token>` value from the output:
-
- ```yaml
- Name: eks-admin-token-b5zv4
- Namespace: kube-system
- Labels: <none>
- Annotations: kubernetes.io/service-account.name=eks-admin
+### Existing EKS cluster
+
+To add an existing EKS cluster to your project, group, or instance:
+
+1. Perform the following steps on the EKS cluster:
+ 1. Retrieve the certificate. A valid Kubernetes certificate is needed to authenticate to the
+ EKS cluster. We will use the certificate created by default.
+ Open a shell and use `kubectl` to retrieve it:
+
+ 1. List the secrets with `kubectl get secrets`, and one should named similar to
+ `default-token-xxxxx`. Copy that token name for use below.
+ 1. Get the certificate with:
+
+ ```sh
+ kubectl get secret <secret name> -o jsonpath="{['data']['ca\.crt']}" | base64 --decode
+ ```
+
+ 1. Create admin token. A `cluster-admin` token is required to install and manage Helm Tiller.
+ GitLab establishes mutual SSL authentication with Helm Tiller and creates limited service
+ accounts for each application. To create the token we will create an admin service account as
+ follows:
+
+ 1. Create a file called `eks-admin-service-account.yaml` with contents:
+
+ ```yaml
+ apiVersion: v1
+ kind: ServiceAccount
+ metadata:
+ name: eks-admin
+ namespace: kube-system
+ ```
+
+ 1. Apply the service account to your cluster:
+
+ ```shell
+ $ kubectl apply -f eks-admin-service-account.yaml
+ serviceaccount "eks-admin" created
+ ```
+
+ 1. Create a file called `eks-admin-cluster-role-binding.yaml` with contents:
+
+ ```yaml
+ apiVersion: rbac.authorization.k8s.io/v1beta1
+ kind: ClusterRoleBinding
+ metadata:
+ name: eks-admin
+ roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: cluster-admin
+ subjects:
+ - kind: ServiceAccount
+ name: eks-admin
+ namespace: kube-system
+ ```
+
+ 1. Apply the cluster role binding to your cluster:
+
+ ```shell
+ $ kubectl apply -f eks-admin-cluster-role-binding.yaml
+ clusterrolebinding "eks-admin" created
+ ```
+
+ 1. Retrieve the token for the `eks-admin` service account:
+
+ ```bash
+ kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')
+ ```
+
+ Copy the `<authentication_token>` value from the output:
+
+ ```yaml
+ Name: eks-admin-token-b5zv4
+ Namespace: kube-system
+ Labels: <none>
+ Annotations: kubernetes.io/service-account.name=eks-admin
kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8
- Type: kubernetes.io/service-account-token
-
- Data
- ====
- ca.crt: 1025 bytes
- namespace: 11 bytes
- token: <authentication_token>
- ```
-
-1. The API server endpoint is also required, so GitLab can connect to the cluster.
- This is displayed on the AWS EKS console, when viewing the EKS cluster details.
-
-You now have all the information needed to connect the EKS cluster:
-
-- Kubernetes cluster name: Provide a name for the cluster to identify it within GitLab.
-- Environment scope: Leave this as `*` for now, since we are only connecting a single cluster.
-- API URL: Paste in the API server endpoint retrieved above.
-- CA Certificate: Paste the certificate data from the earlier step, as-is.
-- Paste the admin token value.
-- Project namespace: This can be left blank to accept the default namespace, based on the project name.
-
-![Add Cluster](img/add_cluster.png)
+ Type: kubernetes.io/service-account-token
+
+ Data
+ ====
+ ca.crt: 1025 bytes
+ namespace: 11 bytes
+ token: <authentication_token>
+ ```
+
+ 1. Locate the the API server endpoint so GitLab can connect to the cluster. This is displayed on
+ the AWS EKS console, when viewing the EKS cluster details.
+1. Navigate to your:
+ - Project's **Operations > Kubernetes** page, for a project-level cluster.
+ - Group's **Kubernetes** page, for a group-level cluster.
+ - **Admin Area > Kubernetes** page, for an instance-level cluster.
+1. Click **Add Kubernetes cluster**.
+1. Click the **Add existing cluster** tab and fill in the details:
+ - **Kubernetes cluster name**: A name for the cluster to identify it within GitLab.
+ - **Environment scope**: Leave this as `*` for now, since we are only connecting a single cluster.
+ - **API URL**: The API server endpoint retrieved earlier.
+ - **CA Certificate**: The certificate data from the earlier step, as-is.
+ - **Service Token**: The admin token value.
+ - For project-level clusters, **Project namespace prefix**: This can be left blank to accept the
+ default namespace, based on the project name.
+1. Click on **Add Kubernetes cluster**. The cluster is now connected to GitLab.
-Click on **Add Kubernetes cluster**, the cluster is now connected to GitLab.
At this point, [Kubernetes deployment variables](index.md#deployment-variables) will
automatically be available during CI/CD jobs, making it easy to interact with the cluster.
diff --git a/doc/user/project/clusters/eks_and_gitlab/index.md b/doc/user/project/clusters/eks_and_gitlab/index.md
index fda8cd6340e..9bb8f6cb83c 100644
--- a/doc/user/project/clusters/eks_and_gitlab/index.md
+++ b/doc/user/project/clusters/eks_and_gitlab/index.md
@@ -1,5 +1,5 @@
---
-redirect_to: '../add_remove_clusters.md#add-existing-eks-cluster'
+redirect_to: '../add_remove_clusters.md#existing-eks-cluster'
---
-This document was moved to [another location](../add_remove_clusters.md#add-existing-eks-cluster).
+This document was moved to [another location](../add_remove_clusters.md#existing-eks-cluster).
diff --git a/doc/user/project/clusters/img/add_cluster.png b/doc/user/project/clusters/img/add_cluster.png
deleted file mode 100644
index 94ec83f1514..00000000000
--- a/doc/user/project/clusters/img/add_cluster.png
+++ /dev/null
Binary files differ
diff --git a/doc/user/project/clusters/index.md b/doc/user/project/clusters/index.md
index 6d863a8b888..895cc6c4b57 100644
--- a/doc/user/project/clusters/index.md
+++ b/doc/user/project/clusters/index.md
@@ -30,9 +30,6 @@ Using the GitLab project Kubernetes integration, you can:
- View [Pod logs](#pod-logs-ultimate). **(ULTIMATE)**
- Run serverless workloads on [Kubernetes with Knative](serverless/index.md).
-See [Adding and removing Kubernetes clusters](add_remove_clusters.md) for details on how to
-set up integrations.
-
### Deploy Boards **(PREMIUM)**
GitLab's Deploy Boards offer a consolidated view of the current health and
@@ -79,10 +76,7 @@ Kubernetes clusters can be used without Auto DevOps.
### Web terminals
-NOTE: **Note:**
-Introduced in GitLab 8.15. You must be the project owner or have `maintainer` permissions
-to use terminals. Support is limited to the first container in the
-first pod of your environment.
+> Introduced in GitLab 8.15.
When enabled, the Kubernetes service adds [web terminal](../../../ci/environments.md#web-terminals)
support to your [environments](../../../ci/environments.md). This is based on the `exec` functionality found in
@@ -97,6 +91,14 @@ pods are annotated with:
`$CI_ENVIRONMENT_SLUG` and `$CI_PROJECT_PATH_SLUG` are the values of
the CI variables.
+You must be the project owner or have `maintainer` permissions to use terminals. Support is limited
+to the first container in the first pod of your environment.
+
+## Adding and removing clusters
+
+See [Adding and removing Kubernetes clusters](add_remove_clusters.md) for details on how to
+set up integrations with Google Cloud Platform (GCP) and Amazon Elastic Kubernetes Service (EKS).
+
## Cluster configuration
After [adding a Kubernetes cluster](add_remove_clusters.md) to GitLab, read this section that covers
@@ -115,8 +117,8 @@ applications running on the cluster.
### GitLab-managed clusters
-> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22011) in GitLab 11.5.
-> Became [optional](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26565) in GitLab 11.11.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/22011) in GitLab 11.5.
+> - Became [optional](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/26565) in GitLab 11.11.
You can choose to allow GitLab to manage your cluster for you. If your cluster is
managed by GitLab, resources for your projects will be automatically created. See the
diff --git a/doc/user/project/clusters/serverless/index.md b/doc/user/project/clusters/serverless/index.md
index ae04dbab1a0..77981e5bd87 100644
--- a/doc/user/project/clusters/serverless/index.md
+++ b/doc/user/project/clusters/serverless/index.md
@@ -43,7 +43,7 @@ To run Knative on GitLab, you will need:
clone the sample [Knative Ruby App](https://gitlab.com/knative-examples/knative-ruby-app) to get
started.
1. **Kubernetes Cluster:** An RBAC-enabled Kubernetes cluster is required to deploy Knative.
- The simplest way to get started is to add a cluster using [GitLab's GKE integration](../add_remove_clusters.md#gke-cluster).
+ The simplest way to get started is to add a cluster using GitLab's [GKE integration](../add_remove_clusters.md).
The set of minimum recommended cluster specifications to run Knative is 3 nodes, 6 vCPUs, and 22.50 GB memory.
1. **Helm Tiller:** Helm is a package manager for Kubernetes and is required to install
Knative.
diff --git a/doc/user/project/repository/git_blame.md b/doc/user/project/repository/git_blame.md
index 454b3f86df9..4b645e4c4bc 100644
--- a/doc/user/project/repository/git_blame.md
+++ b/doc/user/project/repository/git_blame.md
@@ -23,6 +23,11 @@ noted information:
If you hover over a commit in the UI, you'll see a precise date and time
for that commit.
+![Blame previous commit](img/file_blame_previous_commit_v12_7.png "Blame previous commit")
+
+To see earlier revisions of a specific line, click **View blame prior to this change**
+until you've found the changes you're interested in viewing.
+
## Associated `git` command
If you're running `git` from the command line, the equivalent command is
diff --git a/doc/user/project/repository/img/file_blame_previous_commit_v12_7.png b/doc/user/project/repository/img/file_blame_previous_commit_v12_7.png
new file mode 100644
index 00000000000..3029f42c3c4
--- /dev/null
+++ b/doc/user/project/repository/img/file_blame_previous_commit_v12_7.png
Binary files differ