From 3386696d710784d0fb4f59774ee726d392637c9b Mon Sep 17 00:00:00 2001 From: Thomas Anderson <127358482+zc-devs@users.noreply.github.com> Date: Mon, 3 Jul 2023 16:44:16 +0300 Subject: [PATCH] Added agent registration docs (#1921) --------- Co-authored-by: 6543 <6543@obermui.de> --- .../docs/30-administration/15-agent-config.md | 39 ++++++++++++++++-- .../30-administration/new-agent-connected.png | Bin 0 -> 5468 bytes .../30-administration/new-agent-created.png | Bin 0 -> 4492 bytes .../new-agent-registration.png | Bin 0 -> 25500 bytes 4 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 docs/docs/30-administration/new-agent-connected.png create mode 100644 docs/docs/30-administration/new-agent-created.png create mode 100644 docs/docs/30-administration/new-agent-registration.png diff --git a/docs/docs/30-administration/15-agent-config.md b/docs/docs/30-administration/15-agent-config.md index ed6526663..ca3f536b4 100644 --- a/docs/docs/30-administration/15-agent-config.md +++ b/docs/docs/30-administration/15-agent-config.md @@ -2,7 +2,7 @@ Agents are configured by the command line or environment variables. At the minimum you need the following information: -```yaml +```diff # docker-compose.yml version: '3' @@ -23,7 +23,7 @@ The following are automatically set and can be overridden: By default the maximum processes that are run per agent is 1. If required you can add `WOODPECKER_MAX_WORKFLOWS` to increase your parallel processing on a per-agent basis. -```yaml +```diff # docker-compose.yml version: '3' @@ -33,9 +33,42 @@ services: environment: - WOODPECKER_SERVER=localhost:9000 - WOODPECKER_AGENT_SECRET="your-shared-secret-goes-here" -+ - WOODPECKER_MAX_WORKFLOWS=4 ++ - WOODPECKER_MAX_WORKFLOWS=4 ``` +## Agent registration on server + +When the agent starts, it connects to the server using token from `WOODPECKER_AGENT_SECRET`. The server identifies agent and, if such agent doesn't exist, register him. +There are two types of token, so would be two ways of agent registration. + +### Using system token + +_System token_ is a token that is used system-wide, e. g. when you set the same token in `WOODPECKER_AGENT_SECRET` on both the server and the agents. + +In that case registration process would be as follows: + +1. First time Agent communicates with Server using system token; +2. Server registers Agent in DB, generates ID and sends this ID back to Agent; +3. Agent stores ID in a file configured by `WOODPECKER_AGENT_ID_FILE`. + +At the following startups Agent uses system token **and** ID. + +### Using agent token + +_Agent token_ is a token that is used by only particular agent. This unique token also configured by `WOODPECKER_AGENT_SECRET`, but only on the agent side. + +In that case you probably doesn't configure `WOODPECKER_AGENT_SECRET` on the server side. The registration process would be as follows: + +1. Administrator registers Agent manually in _Server settings - Agents - Add agent_; +![Agent creation](./new-agent-registration.png) +![Agent created](./new-agent-created.png) +2. The token generated in previous step have to be provided to Agent in `WOODPECKER_AGENT_SECRET`; +3. First time Agent communicates with Server using agent token; +4. Server identifies Agent by the token and fills additional information provided by Agent; +![Agent connected](./new-agent-connected.png) + +At following startups Agent uses own token only. + ## All agent configuration options Here is the full list of configuration options and their default variables. diff --git a/docs/docs/30-administration/new-agent-connected.png b/docs/docs/30-administration/new-agent-connected.png new file mode 100644 index 0000000000000000000000000000000000000000..9d19153d9d70900198473b93920d5a0daae34121 GIT binary patch literal 5468 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 ass5JZ(fFgYWnH&xtB$6=My;CtoBsetae`X_ literal 0 HcmV?d00001 diff --git a/docs/docs/30-administration/new-agent-created.png b/docs/docs/30-administration/new-agent-created.png new file mode 100644 index 0000000000000000000000000000000000000000..dc561d8873cf69b8770501721e17143616d4f847 GIT binary patch literal 4492 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 literal 0 HcmV?d00001