diff options
Diffstat (limited to 'doc/topics')
14 files changed, 64 insertions, 116 deletions
diff --git a/doc/topics/application_development_platform/index.md b/doc/topics/application_development_platform/index.md index 1560ceeed26..fac9f963a98 100644 --- a/doc/topics/application_development_platform/index.md +++ b/doc/topics/application_development_platform/index.md @@ -65,4 +65,3 @@ responsibility. The Application Development Platform integrates key performance into GitLab, automatically. The following features are included: - [Auto Monitoring](../autodevops/stages.md#auto-monitoring) -- [In-app Kubernetes Logs](../../user/project/clusters/kubernetes_pod_logs.md) diff --git a/doc/topics/autodevops/cloud_deployments/auto_devops_with_gke.md b/doc/topics/autodevops/cloud_deployments/auto_devops_with_gke.md index aceb1ed8910..b3ce2aa1683 100644 --- a/doc/topics/autodevops/cloud_deployments/auto_devops_with_gke.md +++ b/doc/topics/autodevops/cloud_deployments/auto_devops_with_gke.md @@ -20,11 +20,12 @@ Ensure your own [runners are configured](../../../ci/runners/index.md) and To deploy a project to Google Kubernetes Engine, follow the steps below: 1. [Configure your Google account](#configure-your-google-account) -1. [Create a new project from a template](#create-a-new-project-from-a-template) -1. [Create a Kubernetes cluster from GitLab](#create-a-kubernetes-cluster-from-gitlab) +1. [Create a Kubernetes cluster and deploy the agent](#create-a-kubernetes-cluster) +1. [Create a new project from a template](#create-an-application-project-from-a-template) +1. [Configure the agent](#configure-the-agent) 1. [Install Ingress](#install-ingress) -1. [Configure your base domain](#configure-your-base-domain) -1. [Enable Auto DevOps](#enable-auto-devops-optional) +1. [Configure Auto DevOps](#configure-auto-devops) +1. [Enable Auto DevOps and run the pipeline](#enable-auto-devops-and-run-the-pipeline) 1. [Deploy the application](#deploy-the-application) ## Configure your Google account @@ -46,70 +47,45 @@ GCP accounts to get started with the GitLab integration with Google Kubernetes E [Follow this link](https://cloud.google.com/partners/partnercredit/?pcn_code=0014M00001h35gDQAQ#contact-form) and apply for credit. -## Create a new project from a template +## Create a Kubernetes cluster + +To create a new cluster on Google Kubernetes Engine (GKE), use Infrastructure as Code (IaC) approach +by following steps in [Create a Google GKE cluster](../../../user/infrastructure/clusters/connect/new_gke_cluster.md) guide. +The guide requires you to create a new project that uses [Terraform](https://www.terraform.io/) to create a GKE cluster and install a GitLab agent for Kubernetes. +This project is where configuration for GitLab agent resides. + +## Create an application project from a template Use a GitLab project template to get started. As the name suggests, those projects provide a bare-bones application built on some well-known frameworks. +WARNING: +Create the application project in the group hierarchy at the same level or below the project for cluster management. Otherwise, it fails to [authorize the agent](../../../user/clusters/agent/ci_cd_workflow.md#authorize-the-agent). + 1. On the top bar in GitLab, select the plus icon (**{plus-square}**), and select **New project/repository**. -1. Go to the **Create from template** tab, where you can choose a Ruby on - Rails, Spring, or NodeJS Express project. - For this tutorial, use the Ruby on Rails template. - - ![Select project template](img/guide_project_template_v12_3.png) - +1. Select **Create from template**. +1. Select the **Ruby on Rails** template. 1. Give your project a name, optionally a description, and make it public so that you can take advantage of the features available in the [GitLab Ultimate plan](https://about.gitlab.com/pricing/). - - ![Create project](img/guide_create_project_v12_3.png) - 1. Select **Create project**. -Now that you've created a project, create the Kubernetes cluster -to deploy this project to. - -## Create a Kubernetes cluster from GitLab - -1. On your project's landing page, select the button **Add Kubernetes cluster**. - - ![Project landing page](img/guide_project_landing_page_v12_10.png) +Now you have an application project you are going to deploy to the GKE cluster. -1. On the **Kubernetes clusters** page, select the **Create a new cluster** option from the **Actions** dropdown menu. +## Configure the agent -1. On the **Connect a Kubernetes cluster** page, select **Google GKE**. +Now we need to configure the GitLab agent for Kubernetes for us to be able to use it to deploy the application project. -1. Connect with your Google account, and select **Allow** to allow access to your - Google account. (This authorization request is only displayed the first time - you connect GitLab with your Google account.) +1. Go to the project [we created to manage the cluster](#create-a-kubernetes-cluster). +1. Navigate to the [agent configuration file](../../../user/clusters/agent/install/index.md#create-an-agent-configuration-file) (`.gitlab/agents/gke-agent/config.yaml`) and edit it. +1. Configure `ci_access:projects` attribute. Use application's project path as `id`: - After authorizing access, the **Connect a Kubernetes cluster** page - is displayed. - -1. In the **Enter your Kubernetes cluster certificate details** section, provide - details about your cluster: - - - **Kubernetes cluster name** - - **Environment scope** - Leave this field unchanged. - - **Google Cloud Platform project** - Select a project. When you - [configured your Google account](#configure-your-google-account), a project - should have already been created for you. - - **Zone** - The [region/zone](https://cloud.google.com/compute/docs/regions-zones/) to - create the cluster in. - - **Number of nodes** - - **Machine type** - For more information about - [machine types](https://cloud.google.com/compute/docs/machine-types), see Google's documentation. - - **Enable Cloud Run for Anthos** - Select this checkbox to use the - [Cloud Run](../../../user/project/clusters/add_gke_clusters.md#cloud-run-for-anthos), - Istio, and HTTP Load Balancing add-ons for this cluster. - - **GitLab-managed cluster** - Select this checkbox to - [allow GitLab to manage namespace and service accounts](../../../user/project/clusters/gitlab_managed_clusters.md) for this cluster. - -1. Select **Create Kubernetes cluster**. - -After a couple of minutes, the cluster is created. You can also see its -status on your [GCP dashboard](https://console.cloud.google.com/kubernetes). +```yaml +ci_access: + projects: + - id: path/to/application-project +``` ## Install Ingress @@ -134,9 +110,9 @@ or manually with Google Cloud Shell: kubectl get service ingress-nginx-ingress-controller -n gitlab-managed-apps ``` -## Configure your base domain +## Configure Auto DevOps -Follow these steps to configure the base domain where you access your apps. +Follow these steps to configure the base domain and other settings required for Auto DevOps. 1. A few minutes after you install NGINX, the load balancer obtains an IP address, and you can get the external IP address with the following command: @@ -149,30 +125,34 @@ Follow these steps to configure the base domain where you access your apps. Copy this IP address, as you need it in the next step. -1. Go back to the cluster page on GitLab, and go to the **Details** tab. - - Add your **Base domain**. For this example, use the domain `<IP address>.nip.io`. +1. Go back to the application project. +1. On the left sidebar, select **Settings > CI/CD** and expand **Variables**. + - Add a key called `KUBE_INGRESS_BASE_DOMAIN` with the application deployment domain as the value. For this example, use the domain `<IP address>.nip.io`. + - Add a key called `KUBE_NAMESPACE` with a value of the Kubernetes namespace for your deployments to target. You can use different namespaces per environment. Configure the environment, use the environment scope. + - Add a key called `KUBE_CONTEXT` with a value like `path/to/agent/project:gke-agent`. Select the environment scope of your choice. - Select **Save changes**. - ![Cluster Base Domain](img/guide_base_domain_v12_3.png) - -## Enable Auto DevOps (optional) +## Enable Auto DevOps and run the pipeline While Auto DevOps is enabled by default, Auto DevOps can be disabled at both the instance level (for self-managed instances) and the group level. Complete these steps to enable Auto DevOps if it's disabled: -1. Go to **Settings > CI/CD > Auto DevOps**, and select **Expand**. +1. On the top bar, select **Menu > Projects** and find the application project. +1. On the left sidebar, select **Settings > CI/CD**. +1. Expand **Auto DevOps**. 1. Select **Default to Auto DevOps pipeline** to display more options. 1. In **Deployment strategy**, select your desired [continuous deployment strategy](../requirements.md#auto-devops-deployment-strategy) to deploy the application to production after the pipeline successfully runs on the default branch. 1. Select **Save changes**. +1. Edit `.gitlab-ci.yml` file to include Auto DevOps template and commit the change to `master` branch: - ![Auto DevOps settings](img/guide_enable_autodevops_v12_3.png) - -After you save your changes, GitLab creates a new pipeline. To view it, go to -**{rocket}** **CI/CD > Pipelines**. + ```yaml + include: + - template: Auto-DevOps.gitlab-ci.yml + ``` -In the next section, we explain what each job does in the pipeline. +The commit should trigger a pipeline. In the next section, we explain what each job does in the pipeline. ## Deploy the application @@ -278,8 +258,6 @@ After submitting the merge request, GitLab runs your pipeline, and all the jobs in it, as [described previously](#deploy-the-application), in addition to a few more that run only on branches other than the default branch. -![Merge request](img/guide_merge_request_v12_3.png) - After a few minutes a test fails, which means a test was 'broken' by your change. Select the failed `test` job to see more information about it: @@ -311,8 +289,6 @@ see the test passing, but also the application deployed as a [review application](../stages.md#auto-review-apps). You can visit it by selecting the **View app** **{external-link}** button to see your changes deployed. -![Review app](img/guide_merge_request_review_app_v12_3.png) - After merging the merge request, GitLab runs the pipeline on the default branch, and then deploys the application to production. diff --git a/doc/topics/autodevops/cloud_deployments/img/guide_base_domain_v12_3.png b/doc/topics/autodevops/cloud_deployments/img/guide_base_domain_v12_3.png Binary files differdeleted file mode 100644 index 7d3b6a2f905..00000000000 --- a/doc/topics/autodevops/cloud_deployments/img/guide_base_domain_v12_3.png +++ /dev/null diff --git a/doc/topics/autodevops/cloud_deployments/img/guide_create_project_v12_3.png b/doc/topics/autodevops/cloud_deployments/img/guide_create_project_v12_3.png Binary files differdeleted file mode 100644 index a22730520ef..00000000000 --- a/doc/topics/autodevops/cloud_deployments/img/guide_create_project_v12_3.png +++ /dev/null diff --git a/doc/topics/autodevops/cloud_deployments/img/guide_enable_autodevops_v12_3.png b/doc/topics/autodevops/cloud_deployments/img/guide_enable_autodevops_v12_3.png Binary files differdeleted file mode 100644 index a3bcaeb99ae..00000000000 --- a/doc/topics/autodevops/cloud_deployments/img/guide_enable_autodevops_v12_3.png +++ /dev/null diff --git a/doc/topics/autodevops/cloud_deployments/img/guide_merge_request_review_app_v12_3.png b/doc/topics/autodevops/cloud_deployments/img/guide_merge_request_review_app_v12_3.png Binary files differdeleted file mode 100644 index e94654f4e50..00000000000 --- a/doc/topics/autodevops/cloud_deployments/img/guide_merge_request_review_app_v12_3.png +++ /dev/null diff --git a/doc/topics/autodevops/cloud_deployments/img/guide_merge_request_v12_3.png b/doc/topics/autodevops/cloud_deployments/img/guide_merge_request_v12_3.png Binary files differdeleted file mode 100644 index 5565be701cd..00000000000 --- a/doc/topics/autodevops/cloud_deployments/img/guide_merge_request_v12_3.png +++ /dev/null diff --git a/doc/topics/autodevops/cloud_deployments/img/guide_project_landing_page_v12_10.png b/doc/topics/autodevops/cloud_deployments/img/guide_project_landing_page_v12_10.png Binary files differdeleted file mode 100644 index 54e7141dad2..00000000000 --- a/doc/topics/autodevops/cloud_deployments/img/guide_project_landing_page_v12_10.png +++ /dev/null diff --git a/doc/topics/autodevops/cloud_deployments/img/guide_project_template_v12_3.png b/doc/topics/autodevops/cloud_deployments/img/guide_project_template_v12_3.png Binary files differdeleted file mode 100644 index 2b8d7224747..00000000000 --- a/doc/topics/autodevops/cloud_deployments/img/guide_project_template_v12_3.png +++ /dev/null diff --git a/doc/topics/autodevops/customize.md b/doc/topics/autodevops/customize.md index dfc2828e383..d8734ab5b13 100644 --- a/doc/topics/autodevops/customize.md +++ b/doc/topics/autodevops/customize.md @@ -243,29 +243,13 @@ See [Multiple Kubernetes clusters for Auto DevOps](multiple_clusters_auto_devops ## Customizing the Kubernetes namespace -> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/27630) in GitLab 12.6. +In GitLab 14.5 and earlier, you could use `environment:kubernetes:namespace` +to specify a namespace for the environment. +However, this feature was [deprecated](https://gitlab.com/groups/gitlab-org/configure/-/epics/8), +along with certificate-based integration. -For clusters not managed by GitLab, you can customize the namespace in -`.gitlab-ci.yml` by specifying -[`environment:kubernetes:namespace`](../../ci/environments/index.md#configure-kubernetes-deployments-deprecated). -For example, the following configuration overrides the namespace used for -`production` deployments: - -```yaml -include: - - template: Auto-DevOps.gitlab-ci.yml - -production: - environment: - kubernetes: - namespace: production -``` - -When deploying to a custom namespace with Auto DevOps, the service account -provided with the cluster needs at least the `edit` role within the namespace. - -- If the service account can create namespaces, then the namespace can be created on-demand. -- Otherwise, the namespace must exist prior to deployment. +You should now use the `KUBE_NAMESPACE` environment variable and +[limit the environments it is available for](../../ci/environments/index.md#scope-environments-with-specs). ## Using components of Auto DevOps @@ -315,7 +299,7 @@ You can configure many Auto DevOps jobs to run in an [offline environment](../.. build: image: "$REGISTRY_URL/docker/auto-build-image:v0.6.0" services: - - name: "$REGISTRY_URL/greg/docker/docker:20.10.6-dind" + - name: "$REGISTRY_URL/greg/docker/docker:20.10.16-dind" command: ['--tls=false', '--host=tcp://0.0.0.0:2375'] ``` diff --git a/doc/topics/autodevops/requirements.md b/doc/topics/autodevops/requirements.md index 02485ebafff..f3ea13ad1ce 100644 --- a/doc/topics/autodevops/requirements.md +++ b/doc/topics/autodevops/requirements.md @@ -27,7 +27,7 @@ To prepare the deployment: ## Auto DevOps deployment strategy -> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/38542) in GitLab 11.0. +> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/38542) in GitLab 11.0. When using Auto DevOps to deploy your applications, choose the [continuous deployment strategy](../../ci/introduction/index.md) diff --git a/doc/topics/autodevops/stages.md b/doc/topics/autodevops/stages.md index a677787b980..8d35fd245d5 100644 --- a/doc/topics/autodevops/stages.md +++ b/doc/topics/autodevops/stages.md @@ -171,14 +171,14 @@ might want to use a [custom buildpack](customize.md#custom-buildpacks). ## Auto Code Quality -> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) from GitLab Starter to GitLab Free in 13.2. +> [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/212499) from GitLab Starter to GitLab Free in 13.2. Auto Code Quality uses the [Code Quality image](https://gitlab.com/gitlab-org/ci-cd/codequality) to run static analysis and other code checks on the current code. After creating the report, it's uploaded as an artifact which you can later download and check out. The merge request widget also displays any -[differences between the source and target branches](../../user/project/merge_requests/code_quality.md). +[differences between the source and target branches](../../ci/testing/code_quality.md). ## Auto SAST @@ -336,7 +336,7 @@ You can disable DAST: > Introduced in GitLab 10.4. -Auto [Browser Performance Testing](../../user/project/merge_requests/browser_performance_testing.md) +Auto [Browser Performance Testing](../../ci/testing/browser_performance_testing.md) measures the browser performance of a web page with the [Sitespeed.io container](https://hub.docker.com/r/sitespeedio/sitespeed.io/), creates a JSON report including the overall performance score for each page, and @@ -351,13 +351,13 @@ file named `.gitlab-urls.txt` in the root directory, one file per line. For exam ``` Any browser performance differences between the source and target branches are also -[shown in the merge request widget](../../user/project/merge_requests/browser_performance_testing.md). +[shown in the merge request widget](../../ci/testing/browser_performance_testing.md). ## Auto Load Performance Testing **(PREMIUM)** > Introduced in GitLab 13.2. -Auto [Load Performance Testing](../../user/project/merge_requests/load_performance_testing.md) +Auto [Load Performance Testing](../../ci/testing/load_performance_testing.md) measures the server performance of an application with the [k6 container](https://hub.docker.com/r/loadimpact/k6/), creates a JSON report including several key result metrics, and @@ -368,7 +368,7 @@ written that's tailored to your specific application. The test also needs to be configured so it can pick up the environment's dynamic URL via a CI/CD variable. Any load performance test result differences between the source and target branches are also -[shown in the merge request widget](../../user/project/merge_requests/load_performance_testing.md). +[shown in the merge request widget](../../user/project/merge_requests/widgets.md). ## Auto Deploy diff --git a/doc/topics/offline/quick_start_guide.md b/doc/topics/offline/quick_start_guide.md index 901a2dc750c..aa923eb6dc6 100644 --- a/doc/topics/offline/quick_start_guide.md +++ b/doc/topics/offline/quick_start_guide.md @@ -23,7 +23,7 @@ For a video walkthrough of this process, see [Offline GitLab Installation: Downl You should [manually download the GitLab package](../../update/package/index.md#upgrade-using-a-manually-downloaded-package) and relevant dependencies using a server of the same operating system type that has access to the Internet. -If your offline environment has no local network access, you must manually transport across the relevant package files through physical media, such as a USB drive or writable DVD. +If your offline environment has no local network access, you must manually transport across the relevant package files through physical media, such as a USB drive, or writable DVD. In Ubuntu, this can be performed on a server with Internet access using the following commands: @@ -70,7 +70,7 @@ sudo EXTERNAL_URL="http://my-host.internal" dpkg -i <gitlab_package_name>.deb ## Enabling SSL -Follow these steps to enable SSL for your fresh instance. Note that these steps reflect those for +Follow these steps to enable SSL for your fresh instance. These steps reflect those for [manually configuring SSL in Omnibus's NGINX configuration](https://docs.gitlab.com/omnibus/settings/nginx.html#manually-configuring-https): 1. Make the following changes to `/etc/gitlab/gitlab.rb`: @@ -100,7 +100,7 @@ Follow these steps to enable SSL for your fresh instance. Note that these steps ## Enabling the GitLab Container Registry -Follow these steps to enable the container registry. Note that these steps reflect those for +Follow these steps to enable the container registry. These steps reflect those for [configuring the container registry under an existing domain](../../administration/packages/container_registry.md#configure-container-registry-under-an-existing-gitlab-domain): 1. Make the following changes to `/etc/gitlab/gitlab.rb`: @@ -180,7 +180,7 @@ sudo docker run -d --restart always --name gitlab-runner -v /etc/gitlab-runner:/ ### Authenticating the registry against the host OS -As noted in [Docker's registry authentication documentation](https://docs.docker.com/registry/insecure/#docker-still-complains-about-the-certificate-when-using-authentication), +As noted in [Docker registry authentication documentation](https://docs.docker.com/registry/insecure/#docker-still-complains-about-the-certificate-when-using-authentication), certain versions of Docker require trusting the certificate chain at the OS level. In the case of Ubuntu, this involves using `update-ca-certificates`: diff --git a/doc/topics/use_gitlab.md b/doc/topics/use_gitlab.md deleted file mode 100644 index 6c6c5f71fc2..00000000000 --- a/doc/topics/use_gitlab.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -redirect_to: '../user/index.md' -remove_date: '2022-06-17' ---- - -This document was moved to [another location](../user/index.md). - -<!-- This redirect file can be deleted after <2022-06-17>. --> -<!-- Redirects that point to other docs in the same project expire in three months. --> -<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. --> -<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/redirects.html --> |