summaryrefslogtreecommitdiff
path: root/doc/development/agent/identity.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/development/agent/identity.md')
-rw-r--r--doc/development/agent/identity.md107
1 files changed, 5 insertions, 102 deletions
diff --git a/doc/development/agent/identity.md b/doc/development/agent/identity.md
index 83af4318de9..67084a6d995 100644
--- a/doc/development/agent/identity.md
+++ b/doc/development/agent/identity.md
@@ -1,106 +1,9 @@
---
-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/#designated-technical-writers
+redirect_to: 'https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/blob/master/doc/identity_and_auth.md'
+remove_date: '2022-06-24'
---
-# Kubernetes Agent identity and authentication **(PREMIUM SELF)**
+This file was moved to [another location](https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/blob/master/doc/identity_and_auth.md).
-This page uses the word `agent` to describe the concept of the
-GitLab Kubernetes Agent. The program that implements the concept is called `agentk`.
-Read the
-[architecture page](https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/blob/master/doc/architecture.md)
-for more information.
-
-## Agent identity and name
-
-In a GitLab installation, each agent must have a unique, immutable name. This
-name must be unique in the project the agent is attached to, and this name must
-follow the [DNS label standard from RFC 1123](https://tools.ietf.org/html/rfc1123).
-The name must:
-
-- Contain at most 63 characters.
-- Contain only lowercase alphanumeric characters or `-`.
-- Start with an alphanumeric character.
-- End with an alphanumeric character.
-
-Kubernetes uses the
-[same naming restriction](https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names)
-for some names.
-
-The regex for names is: `/\A[a-z0-9]([-a-z0-9]*[a-z0-9])?\z/`.
-
-## Multiple agents in a cluster
-
-A Kubernetes cluster may have 0 or more agents running in it. Each agent likely
-has a different configuration. Some may enable features A and B, and some may
-enable features B and C. This flexibility enables different groups of people to
-use different features of the agent in the same cluster.
-
-For example, [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/strategic-marketing/roles-personas/#priyanka-platform-engineer)
-may want to use cluster-wide features of the agent, while
-[Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/strategic-marketing/roles-personas/#sasha-software-developer)
-uses the agent that only has access to a particular namespace.
-
-Each agent is likely running using a
-[`ServiceAccount`](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/),
-a distinct Kubernetes identity, with a distinct set of permissions attached to it.
-These permissions enable the agent administrator to follow the
-[principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege)
-and minimize the permissions each particular agent needs.
-
-## Kubernetes Agent authentication
-
-When adding a new agent, GitLab provides the user with a bearer access token. The
-agent uses this token to authenticate with GitLab. This token is a random string
-and does not encode any information in it, but it is secret and must
-be treated with care. Store it as a `Secret` in Kubernetes.
-
-Each agent can have 0 or more tokens in a GitLab database. Having several valid
-tokens helps you rotate tokens without needing to re-register an agent. Each token
-record in the database has the following fields:
-
-- Agent identity it belongs to.
-- Token value. Encrypted at rest.
-- Creation time.
-- Who created it.
-- Revocation flag to mark token as revoked.
-- Revocation time.
-- Who revoked it.
-- A text field to store any comments the administrator may want to make about the token for future self.
-
-Tokens can be managed by users with `maintainer` and higher level of
-[permissions](../../user/permissions.md).
-
-Tokens are immutable, and only the following fields can be updated:
-
-- Revocation flag. Can only be updated to `true` once, but immutable after that.
-- Revocation time. Set to the current time when revocation flag is set, but immutable after that.
-- Comments field. Can be updated any number of times, including after the token has been revoked.
-
-The agent sends its token, along with each request, to GitLab to authenticate itself.
-For each request, GitLab checks the token's validity:
-
-- Does the token exist in the database?
-- Has the token been revoked?
-
-This information may be cached for some time to reduce load on the database.
-
-## Kubernetes Agent authorization
-
-GitLab provides the following information in its response for a given Agent access token:
-
-- Agent configuration Git repository. (The agent doesn't support per-folder authorization.)
-- Agent name.
-
-## Create an agent
-
-You can create an agent by following the [user documentation](../../user/clusters/agent/index.md#create-an-agent-record-in-gitlab), or via Rails console:
-
-```ruby
-project = ::Project.find_by_full_path("path-to/your-configuration-project")
-# agent-name should be the same as specified above in the config.yaml
-agent = ::Clusters::Agent.create(name: "<agent-name>", project: project)
-token = ::Clusters::AgentToken.create(agent: agent)
-token.token # this will print out the token you need to use on the next step
-```
+<!-- This redirect file can be deleted after <2022-06-24>. -->
+<!-- Before deletion, see: https://docs.gitlab.com/ee/development/documentation/#move-or-rename-a-page -->