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
diff options
context:
space:
mode:
Diffstat (limited to 'doc/user/clusters')
-rw-r--r--doc/user/clusters/agent/index.md50
-rw-r--r--doc/user/clusters/agent/repository.md2
-rw-r--r--doc/user/clusters/agent/runner.md452
-rw-r--r--doc/user/clusters/applications.md58
-rw-r--r--doc/user/clusters/crossplane.md2
-rw-r--r--doc/user/clusters/environments.md6
-rw-r--r--doc/user/clusters/img/kubernetes-agent-ui-list_v13_8.pngbin0 -> 17270 bytes
-rw-r--r--doc/user/clusters/management_project.md2
8 files changed, 29 insertions, 543 deletions
diff --git a/doc/user/clusters/agent/index.md b/doc/user/clusters/agent/index.md
index 2c0d9b6c9ce..6f3d1e197f5 100644
--- a/doc/user/clusters/agent/index.md
+++ b/doc/user/clusters/agent/index.md
@@ -4,7 +4,7 @@ group: Configure
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# GitLab Kubernetes Agent **(PREMIUM ONLY)**
+# GitLab Kubernetes Agent **(PREMIUM SELF)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/223061) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.4.
> - It's disabled on GitLab.com. Rolling this feature out to GitLab.com is [planned](https://gitlab.com/groups/gitlab-org/-/epics/3834).
@@ -190,7 +190,7 @@ the Agent in subsequent steps. You can create an Agent record either:
For full details, read [Starting a Rails console session](../../../administration/operations/rails_console.md#starting-a-rails-console-session).
-- Through GraphQL: **(PREMIUM ONLY)**
+- Through GraphQL: **(PREMIUM SELF)**
```graphql
mutation createAgent {
@@ -439,49 +439,23 @@ The following example projects can help you get started with the Kubernetes Agen
- [Configuration repository](https://gitlab.com/gitlab-org/configure/examples/kubernetes-agent)
- This basic GitOps example deploys NGINX: [Manifest repository](https://gitlab.com/gitlab-org/configure/examples/gitops-project)
-- [Install GitLab Runner](runner.md)
### Deploying GitLab Runner with the Agent
-These instructions assume that the Agent is already set up as described in the
-[Get started with GitOps](#get-started-with-gitops-and-the-gitlab-agent):
+You can use the Kubernetes Agent to
+[deploy GitLab Runner in a Kubernetes cluster](http://docs.gitlab.com/runner/install/kubernetes-agent.html).
-1. Check the possible
- [Runner chart YAML values](https://gitlab.com/gitlab-org/charts/gitlab-runner/blob/master/values.yaml)
- on the Runner chart documentation, and create a `runner-chart-values.yaml` file
- with the configuration that fits your needs, such as:
+## Management interfaces
- ```yaml
- ## The GitLab Server URL (with protocol) that want to register the runner against
- ## ref: https://docs.gitlab.com/runner/commands/README.html#gitlab-runner-register
- ##
- gitlabUrl: https://gitlab.my.domain.com/
+Users with at least the [Developer](../../permissions.md) can access the user interface
+for the GitLab Kubernetes agent at **Operations > Kubernetes** and selecting the
+**GitLab Agent managed clusters** tab. This page lists all registered agents for
+the current project, and the configuration directory for each agent:
- ## The Registration Token for adding new Runners to the GitLab Server. This must
- ## be retrieved from your GitLab Instance.
- ## ref: https://docs.gitlab.com/ce/ci/runners/README.html
- ##
- runnerRegistrationToken: "XXXXXXYYYYYYZZZZZZ"
+![GitLab Kubernetes Agent list UI](../img/kubernetes-agent-ui-list_v13_8.png)
- ## For RBAC support:
- rbac:
- create: true
-
- ## Run all containers with the privileged flag enabled
- ## This will allow the docker:dind image to run if you need to run Docker
- ## commands. Please read the docs before turning this on:
- ## ref: https://docs.gitlab.com/runner/executors/kubernetes.html#using-dockerdind
- runners:
- privileged: true
- ```
-
-1. Create a single manifest file to install the Runner chart with your cluster agent:
-
- ```shell
- helm template --namespace gitlab gitlab-runner -f runner-chart-values.yaml gitlab/gitlab-runner > manifest.yaml
- ```
-
-1. Push your `manifest.yaml` to your manifest repository.
+Additional management interfaces are planned for the GitLab Kubernetes Agent.
+[Provide more feedback in the related epic](https://gitlab.com/groups/gitlab-org/-/epics/4739).
## Troubleshooting
diff --git a/doc/user/clusters/agent/repository.md b/doc/user/clusters/agent/repository.md
index b71bbc29ef9..60d8cd352fc 100644
--- a/doc/user/clusters/agent/repository.md
+++ b/doc/user/clusters/agent/repository.md
@@ -4,7 +4,7 @@ group: Configure
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
---
-# Kubernetes Agent configuration repository **(PREMIUM ONLY)**
+# Kubernetes Agent configuration repository **(PREMIUM SELF)**
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/259669) in [GitLab Premium](https://about.gitlab.com/pricing/) 13.7.
> - It's disabled on GitLab.com. Rolling this feature out to GitLab.com is [planned](https://gitlab.com/groups/gitlab-org/-/epics/3834).
diff --git a/doc/user/clusters/agent/runner.md b/doc/user/clusters/agent/runner.md
index 715b27f951a..bbf07d4ea84 100644
--- a/doc/user/clusters/agent/runner.md
+++ b/doc/user/clusters/agent/runner.md
@@ -1,452 +1,8 @@
---
-stage: Configure
-group: Configure
-info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
+redirect_to: 'https://docs.gitlab.com/runner/install/kubernetes-agent.html'
---
-# Install GitLab Runner with Kubernetes Agent **(PREMIUM ONLY)**
+This document was moved to [another location](https://docs.gitlab.com/runner/install/kubernetes-agent.html).
-These instructions to install the GitLab Runner assume the
-[GitLab Kubernetes Agent](index.md) is already configured.
-
-1. Review the possible [Runner chart YAML values](https://gitlab.com/gitlab-org/charts/gitlab-runner/blob/master/values.yaml) in the Runner chart documentation,
- and create a `runner-chart-values.yaml` file with the configuration that fits
- your needs, such as:
-
- ```yaml
- # The GitLab Server URL (with protocol) that want to register the runner against
- # ref: https://docs.gitlab.com/runner/commands/README.html#gitlab-runner-register
- #
- gitlabUrl: https://gitlab.my.domain.example.com/
-
- # The Registration Token for adding new Runners to the GitLab Server. This must
- # be retrieved from your GitLab Instance.
- # ref: https://docs.gitlab.com/ce/ci/runners/README.html
- #
- runnerRegistrationToken: "yrnZW46BrtBFqM7xDzE7dddd"
-
- # For RBAC support:
- rbac:
- create: true
-
- # Run all containers with the privileged flag enabled
- # This will allow the docker:dind image to run if you need to run Docker
- # commands. Please read the docs before turning this on:
- # ref: https://docs.gitlab.com/runner/executors/kubernetes.html#using-dockerdind
- runners:
- privileged: true
- ```
-
-1. Create a single manifest file to install the Runner chart with your cluster agent,
- replacing `GITLAB GITLAB-RUNNER` with your namespace:
-
- ```shell
- helm template --namespace GITLAB GITLAB-RUNNER -f runner-chart-values.yaml gitlab/gitlab-runner > runner-manifest.yaml
- ```
-
- An [example file is available](#example-runner-manifest).
-
-1. Push your `runner-manifest.yaml` to your manifest repository.
-
-## Example Runner manifest
-
-```yaml
-# This code is an example of a runner manifest looks like.
-# Create your own manifest.yaml file to meet your project's needs.
-
----
-# Source: gitlab-runner/templates/service-account.yaml
-apiVersion: v1
-kind: ServiceAccount
-metadata:
- annotations:
- name: gitlab-runner-gitlab-runner
- labels:
- app: gitlab-runner-gitlab-runner
- chart: gitlab-runner-0.21.1
- release: "gitlab-runner"
- heritage: "Helm"
----
-# Source: gitlab-runner/templates/secrets.yaml
-apiVersion: v1
-kind: Secret
-metadata:
- name: "gitlab-runner-gitlab-runner"
- labels:
- app: gitlab-runner-gitlab-runner
- chart: gitlab-runner-0.21.1
- release: "gitlab-runner"
- heritage: "Helm"
-type: Opaque
-data:
- runner-registration-token: "FAKE-TOKEN"
- runner-token: ""
----
-# Source: gitlab-runner/templates/configmap.yaml
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: gitlab-runner-gitlab-runner
- labels:
- app: gitlab-runner-gitlab-runner
- chart: gitlab-runner-0.21.1
- release: "gitlab-runner"
- heritage: "Helm"
-data:
- entrypoint: |
- #!/bin/bash
- set -e
- mkdir -p /home/gitlab-runner/.gitlab-runner/
- cp /scripts/config.toml /home/gitlab-runner/.gitlab-runner/
-
- # Register the runner
- if [[ -f /secrets/accesskey && -f /secrets/secretkey ]]; then
- export CACHE_S3_ACCESS_KEY=$(cat /secrets/accesskey)
- export CACHE_S3_SECRET_KEY=$(cat /secrets/secretkey)
- fi
-
- if [[ -f /secrets/gcs-applicaton-credentials-file ]]; then
- export GOOGLE_APPLICATION_CREDENTIALS="/secrets/gcs-applicaton-credentials-file"
- elif [[ -f /secrets/gcs-application-credentials-file ]]; then
- export GOOGLE_APPLICATION_CREDENTIALS="/secrets/gcs-application-credentials-file"
- else
- if [[ -f /secrets/gcs-access-id && -f /secrets/gcs-private-key ]]; then
- export CACHE_GCS_ACCESS_ID=$(cat /secrets/gcs-access-id)
- # echo -e used to make private key multiline (in google json auth key private key is oneline with \n)
- export CACHE_GCS_PRIVATE_KEY=$(echo -e $(cat /secrets/gcs-private-key))
- fi
- fi
-
- if [[ -f /secrets/runner-registration-token ]]; then
- export REGISTRATION_TOKEN=$(cat /secrets/runner-registration-token)
- fi
-
- if [[ -f /secrets/runner-token ]]; then
- export CI_SERVER_TOKEN=$(cat /secrets/runner-token)
- fi
-
- if ! sh /scripts/register-the-runner; then
- exit 1
- fi
-
- # Run pre-entrypoint-script
- if ! bash /scripts/pre-entrypoint-script; then
- exit 1
- fi
-
- # Start the runner
- exec /entrypoint run --user=gitlab-runner \
- --working-directory=/home/gitlab-runner
-
- config.toml: |
- concurrent = 10
- check_interval = 30
- log_level = "info"
- listen_address = ':9252'
- configure: |
- set -e
- cp /init-secrets/* /secrets
- register-the-runner: |
- #!/bin/bash
- MAX_REGISTER_ATTEMPTS=30
-
- for i in $(seq 1 "${MAX_REGISTER_ATTEMPTS}"); do
- echo "Registration attempt ${i} of ${MAX_REGISTER_ATTEMPTS}"
- /entrypoint register \
- --non-interactive
-
- retval=$?
-
- if [ ${retval} = 0 ]; then
- break
- elif [ ${i} = ${MAX_REGISTER_ATTEMPTS} ]; then
- exit 1
- fi
-
- sleep 5
- done
-
- exit 0
-
- check-live: |
- #!/bin/bash
- if /usr/bin/pgrep -f .*register-the-runner; then
- exit 0
- elif /usr/bin/pgrep gitlab.*runner; then
- exit 0
- else
- exit 1
- fi
-
- pre-entrypoint-script: |
----
-# Source: gitlab-runner/templates/role.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: "Role"
-metadata:
- name: gitlab-runner-gitlab-runner
- labels:
- app: gitlab-runner-gitlab-runner
- chart: gitlab-runner-0.21.1
- release: "gitlab-runner"
- heritage: "Helm"
-rules:
-- apiGroups: [""]
- resources: ["*"]
- verbs: ["*"]
----
-# Source: gitlab-runner/templates/role-binding.yaml
-apiVersion: rbac.authorization.k8s.io/v1
-kind: "RoleBinding"
-metadata:
- name: gitlab-runner-gitlab-runner
- labels:
- app: gitlab-runner-gitlab-runner
- chart: gitlab-runner-0.21.1
- release: "gitlab-runner"
- heritage: "Helm"
-roleRef:
- apiGroup: rbac.authorization.k8s.io
- kind: "Role"
- name: gitlab-runner-gitlab-runner
-subjects:
-- kind: ServiceAccount
- name: gitlab-runner-gitlab-runner
- namespace: "gitlab"
----
-# Source: gitlab-runner/templates/deployment.yaml
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: gitlab-runner-gitlab-runner
- labels:
- app: gitlab-runner-gitlab-runner
- chart: gitlab-runner-0.21.1
- release: "gitlab-runner"
- heritage: "Helm"
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: gitlab-runner-gitlab-runner
- template:
- metadata:
- labels:
- app: gitlab-runner-gitlab-runner
- chart: gitlab-runner-0.21.1
- release: "gitlab-runner"
- heritage: "Helm"
- annotations:
- checksum/configmap: a6623303f6fcc3a043e87ea937bb8399d2d0068a901aa9c3419ed5c7a5afa9db
- checksum/secrets: 32c7d2c16918961b7b84a005680f748e774f61c6f4e4da30650d400d781bbb30
- prometheus.io/scrape: 'true'
- prometheus.io/port: '9252'
- spec:
- securityContext:
- runAsUser: 100
- fsGroup: 65533
- terminationGracePeriodSeconds: 3600
- initContainers:
- - name: configure
- command: ['sh', '/config/configure']
- image: gitlab/gitlab-runner:alpine-v13.4.1
- imagePullPolicy: "IfNotPresent"
- env:
-
- - name: CI_SERVER_URL
- value: "https://gitlab.qa.joaocunha.eu/"
- - name: CLONE_URL
- value: ""
- - name: RUNNER_REQUEST_CONCURRENCY
- value: "1"
- - name: RUNNER_EXECUTOR
- value: "kubernetes"
- - name: REGISTER_LOCKED
- value: "true"
- - name: RUNNER_TAG_LIST
- value: ""
- - name: RUNNER_OUTPUT_LIMIT
- value: "4096"
- - name: KUBERNETES_IMAGE
- value: "ubuntu:16.04"
-
- - name: KUBERNETES_PRIVILEGED
- value: "true"
-
- - name: KUBERNETES_NAMESPACE
- value: "gitlab"
- - name: KUBERNETES_POLL_TIMEOUT
- value: "180"
- - name: KUBERNETES_CPU_LIMIT
- value: ""
- - name: KUBERNETES_CPU_LIMIT_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_MEMORY_LIMIT
- value: ""
- - name: KUBERNETES_MEMORY_LIMIT_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_CPU_REQUEST
- value: ""
- - name: KUBERNETES_CPU_REQUEST_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_MEMORY_REQUEST
- value: ""
- - name: KUBERNETES_MEMORY_REQUEST_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_SERVICE_ACCOUNT
- value: ""
- - name: KUBERNETES_SERVICE_CPU_LIMIT
- value: ""
- - name: KUBERNETES_SERVICE_MEMORY_LIMIT
- value: ""
- - name: KUBERNETES_SERVICE_CPU_REQUEST
- value: ""
- - name: KUBERNETES_SERVICE_MEMORY_REQUEST
- value: ""
- - name: KUBERNETES_HELPER_CPU_LIMIT
- value: ""
- - name: KUBERNETES_HELPER_MEMORY_LIMIT
- value: ""
- - name: KUBERNETES_HELPER_CPU_REQUEST
- value: ""
- - name: KUBERNETES_HELPER_MEMORY_REQUEST
- value: ""
- - name: KUBERNETES_HELPER_IMAGE
- value: ""
- - name: KUBERNETES_PULL_POLICY
- value: ""
- volumeMounts:
- - name: runner-secrets
- mountPath: /secrets
- readOnly: false
- - name: scripts
- mountPath: /config
- readOnly: true
- - name: init-runner-secrets
- mountPath: /init-secrets
- readOnly: true
- resources:
- {}
- serviceAccountName: gitlab-runner-gitlab-runner
- containers:
- - name: gitlab-runner-gitlab-runner
- image: gitlab/gitlab-runner:alpine-v13.4.1
- imagePullPolicy: "IfNotPresent"
- lifecycle:
- preStop:
- exec:
- command: ["/entrypoint", "unregister", "--all-runners"]
- command: ["/bin/bash", "/scripts/entrypoint"]
- env:
-
- - name: CI_SERVER_URL
- value: "https://gitlab.qa.joaocunha.eu/"
- - name: CLONE_URL
- value: ""
- - name: RUNNER_REQUEST_CONCURRENCY
- value: "1"
- - name: RUNNER_EXECUTOR
- value: "kubernetes"
- - name: REGISTER_LOCKED
- value: "true"
- - name: RUNNER_TAG_LIST
- value: ""
- - name: RUNNER_OUTPUT_LIMIT
- value: "4096"
- - name: KUBERNETES_IMAGE
- value: "ubuntu:16.04"
-
- - name: KUBERNETES_PRIVILEGED
- value: "true"
-
- - name: KUBERNETES_NAMESPACE
- value: "gitlab"
- - name: KUBERNETES_POLL_TIMEOUT
- value: "180"
- - name: KUBERNETES_CPU_LIMIT
- value: ""
- - name: KUBERNETES_CPU_LIMIT_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_MEMORY_LIMIT
- value: ""
- - name: KUBERNETES_MEMORY_LIMIT_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_CPU_REQUEST
- value: ""
- - name: KUBERNETES_CPU_REQUEST_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_MEMORY_REQUEST
- value: ""
- - name: KUBERNETES_MEMORY_REQUEST_OVERWRITE_MAX_ALLOWED
- value: ""
- - name: KUBERNETES_SERVICE_ACCOUNT
- value: ""
- - name: KUBERNETES_SERVICE_CPU_LIMIT
- value: ""
- - name: KUBERNETES_SERVICE_MEMORY_LIMIT
- value: ""
- - name: KUBERNETES_SERVICE_CPU_REQUEST
- value: ""
- - name: KUBERNETES_SERVICE_MEMORY_REQUEST
- value: ""
- - name: KUBERNETES_HELPER_CPU_LIMIT
- value: ""
- - name: KUBERNETES_HELPER_MEMORY_LIMIT
- value: ""
- - name: KUBERNETES_HELPER_CPU_REQUEST
- value: ""
- - name: KUBERNETES_HELPER_MEMORY_REQUEST
- value: ""
- - name: KUBERNETES_HELPER_IMAGE
- value: ""
- - name: KUBERNETES_PULL_POLICY
- value: ""
- livenessProbe:
- exec:
- command: ["/bin/bash", "/scripts/check-live"]
- initialDelaySeconds: 60
- timeoutSeconds: 1
- periodSeconds: 10
- successThreshold: 1
- failureThreshold: 3
- readinessProbe:
- exec:
- command: ["/usr/bin/pgrep","gitlab.*runner"]
- initialDelaySeconds: 10
- timeoutSeconds: 1
- periodSeconds: 10
- successThreshold: 1
- failureThreshold: 3
- ports:
- - name: metrics
- containerPort: 9252
- volumeMounts:
- - name: runner-secrets
- mountPath: /secrets
- - name: etc-gitlab-runner
- mountPath: /home/gitlab-runner/.gitlab-runner
- - name: scripts
- mountPath: /scripts
- resources:
- {}
- volumes:
- - name: runner-secrets
- emptyDir:
- medium: "Memory"
- - name: etc-gitlab-runner
- emptyDir:
- medium: "Memory"
- - name: init-runner-secrets
- projected:
- sources:
- - secret:
- name: "gitlab-runner-gitlab-runner"
- items:
- - key: runner-registration-token
- path: runner-registration-token
- - key: runner-token
- path: runner-token
- - name: scripts
- configMap:
- name: gitlab-runner-gitlab-runner
-```
+<!-- This redirect file can be deleted after <2022-02-01>. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page --> \ No newline at end of file
diff --git a/doc/user/clusters/applications.md b/doc/user/clusters/applications.md
index b03dfb79ae0..ad92cf9b4ed 100644
--- a/doc/user/clusters/applications.md
+++ b/doc/user/clusters/applications.md
@@ -4,7 +4,7 @@ group: Configure
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# GitLab Managed Apps
+# GitLab Managed Apps **(FREE)**
GitLab provides **GitLab Managed Apps** for various
applications which can be added directly to your configured cluster. These
@@ -20,10 +20,9 @@ have been deprecated, and are scheduled for removal in GitLab 14.0.
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/20822) in GitLab 12.6.
WARNING:
-This is an _alpha_ feature, and is subject to change at any time without
-prior notice.
+This is a _beta_ feature, and some applications might miss features to provide full integration with GitLab.
-This alternative method allows users to install GitLab-managed
+This primary method for installing applications to clusters allows users to install GitLab-managed
applications using GitLab CI/CD. It also allows customization of the
install using Helm `values.yaml` files.
@@ -418,6 +417,8 @@ You can check the recommended variables for each cluster type in the official do
- [Google GKE](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-gke/#deploy-cilium)
- [AWS EKS](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-eks/#deploy-cilium)
+Do not use `clusterType` for sandbox environments like [Minikube](https://minikube.sigs.k8s.io/docs/).
+
You can customize Cilium's Helm variables by defining the
`.gitlab/managed-apps/cilium/values.yaml` file in your cluster
management project. Refer to the
@@ -1199,53 +1200,8 @@ determine the endpoint of your Ingress or Knative application, you can
#### Determining the external endpoint manually
-If the cluster is on GKE, click the **Google Kubernetes Engine** link in the
-**Advanced settings**, or go directly to the
-[Google Kubernetes Engine dashboard](https://console.cloud.google.com/kubernetes/)
-and select the proper project and cluster. Then click **Connect** and execute
-the `gcloud` command in a local terminal or using the **Cloud Shell**.
-
-If the cluster is not on GKE, follow the specific instructions for your
-Kubernetes provider to configure `kubectl` with the right credentials.
-The output of the following examples show the external endpoint of your
-cluster. This information can then be used to set up DNS entries and forwarding
-rules that allow external access to your deployed applications.
-
-- If you installed Ingress using the **Applications**, run the following
- command:
-
- ```shell
- kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
- ```
-
-- Some Kubernetes clusters return a hostname instead, like
- [Amazon EKS](https://aws.amazon.com/eks/). For these platforms, run:
-
- ```shell
- kubectl get service --namespace=gitlab-managed-apps ingress-nginx-ingress-controller -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
- ```
-
- If EKS is used, an [Elastic Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/)
- is also created, which incurs additional AWS costs.
-
-- For Istio/Knative, the command is different:
-
- ```shell
- kubectl get svc --namespace=istio-system istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip} '
- ```
-
-- Otherwise, you can list the IP addresses of all load balancers:
-
- ```shell
- kubectl get svc --all-namespaces -o jsonpath='{range.items[?(@.status.loadBalancer.ingress)]}{.status.loadBalancer.ingress[*].ip} '
- ```
-
-You may see a trailing `%` on some Kubernetes versions. Do not include it.
-
-The Ingress is now available at this address, and routes incoming requests to
-the proper service based on the DNS name in the request. To support this, create
-a wildcard DNS CNAME record for the desired domain name. For example,
-`*.myekscluster.com` would point to the Ingress hostname obtained earlier.
+See the [Base domain section](../project/clusters/index.md#base-domain) for a
+guide on how to determine the external endpoint manually.
#### Using a static IP
diff --git a/doc/user/clusters/crossplane.md b/doc/user/clusters/crossplane.md
index c1ef798f5a8..bdf9d582b93 100644
--- a/doc/user/clusters/crossplane.md
+++ b/doc/user/clusters/crossplane.md
@@ -4,7 +4,7 @@ group: Configure
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Crossplane configuration
+# Crossplane configuration **(FREE)**
After [installing](applications.md#crossplane) Crossplane, you must configure it for use.
The process of configuring Crossplane includes:
diff --git a/doc/user/clusters/environments.md b/doc/user/clusters/environments.md
index be4ac8151e4..cb721115e76 100644
--- a/doc/user/clusters/environments.md
+++ b/doc/user/clusters/environments.md
@@ -6,8 +6,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Cluster Environments **(PREMIUM)**
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13392) for group-level clusters in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3.
-> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14809) for instance-level clusters in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/13392) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.3 for group-level clusters.
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/14809) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.4 for instance-level clusters.
Cluster environments provide a consolidated view of which CI [environments](../../ci/environments/index.md) are
deployed to the Kubernetes cluster and it:
@@ -38,7 +38,7 @@ In order to:
- Show pod usage correctly, you must
[enable Deploy Boards](../project/deploy_boards.md#enabling-deploy-boards).
-Once you have successful deployments to your group-level or instance-level cluster:
+After you have successful deployments to your group-level or instance-level cluster:
1. Navigate to your group's **Kubernetes** page.
1. Click on the **Environments** tab.
diff --git a/doc/user/clusters/img/kubernetes-agent-ui-list_v13_8.png b/doc/user/clusters/img/kubernetes-agent-ui-list_v13_8.png
new file mode 100644
index 00000000000..3f9cc41838a
--- /dev/null
+++ b/doc/user/clusters/img/kubernetes-agent-ui-list_v13_8.png
Binary files differ
diff --git a/doc/user/clusters/management_project.md b/doc/user/clusters/management_project.md
index 55f507fb318..ef1b3ce44f2 100644
--- a/doc/user/clusters/management_project.md
+++ b/doc/user/clusters/management_project.md
@@ -4,7 +4,7 @@ group: Configure
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
---
-# Cluster management project
+# Cluster management project **(FREE)**
WARNING:
This is an _alpha_ feature, and it is subject to change at any time without