From 4893523b0c4e0c80d83e0ac8abb47b44601c73bb Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Wed, 4 Oct 2023 15:08:42 +1030 Subject: [PATCH 01/12] Improve Dynamic Workers documentation with clearer explanations --- .../workers/dynamic-worker-pools.md | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md b/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md index 7a503abc60..e4be485af6 100644 --- a/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md +++ b/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md @@ -7,7 +7,9 @@ description: Dynamic Worker pools are used in our cloud product to dynamically c navOrder: 50 --- -Dynamic Worker Pools are a special type of [worker pool](/docs/infrastructure/workers/worker-pools/) used by Octopus Cloud. They use [workers](/docs/infrastructure/workers) provided by Octopus, and they don't require users to configure any infrastructure. +Dynamic Worker Pools provide a quick and easy way to use [workers](/docs/infrastructure/workers) for your deployments. They are a special type of [worker pool](/docs/infrastructure/workers/worker-pools) available on [Octopus Cloud](/docs/octopus-cloud). + +Dynamic Workers are isolated virtual machines, created on-demand to run your deployments and runbook steps. They run on Azure and are created and managed by Octopus Cloud, which means you don't need to configure or maintain additional infrastructure. ## On demand @@ -24,24 +26,42 @@ Please reach out to [support@octopus.com](mailto:support@octopus.com) if you nee ## Isolated -Each worker is provisioned exclusively to a specific customer, and is completely isolated from other customers. +Each worker VM is provisioned exclusively to a specific customer, and is completely isolated from other customers. ## Dynamic Worker Images -Each dynamic worker pool can specify the worker image used. Ubuntu Linux 22.04 is the default. Windows Server Core 2019 and 2022 worker images are also available. +Each dynamic worker pool uses a specific worker image. This is a VM image which determines the operating system (and OS version) running on the worker. You can edit a dynamic worker pool to change which image is used. + +When you sign up to [Octopus Cloud](/docs/octopus-cloud) (or create a new [space](/docs/administration/spaces)), you automatically receive a worker pool for the `Ubuntu (default)` image, and a worker pool for the `Windows (default)` image. + +The full list of available worker images includes both specific operating system versions (e.g., `Ubuntu Linux 22.04`), and also generic "default" options such as `Ubuntu (default)`. Choosing the default option means that your worker will use the latest stable worker image when it is released. + +The current default images are: + +- `Ubuntu (default)` ➜ `Ubuntu Linux 22.04` +- `Windows (default)` ➜ `Windows Server Core 2019` + +:::div{.warning} +The `Windows (default)` image will change to Windows 2022 on 4 December 2023, and Windows 2019 images will be deprecated on 9 January 2024. You are advised to test your deployment processes with our Windows 2022 images. Please refer to [Windows 2019 end-of-life](/docs/infrastructure/workers/dynamic-worker-pools/windows-2019-end-of-life) for further details. +::: + +### Choosing an Image + +The default image is a good option to choose if you are: -Editing a dynamic worker pool allows you to modify the image used. +- Running a simple script that doesn't require specific tools or operating system versions +- Running a step [inside a container](/docs/projects/steps/execution-containers-for-workers) -The available worker images list specific operating system versions (e.g., `Ubuntu Linux 22.04`) but also generic "default" options such as `Ubuntu (default)`. Choosing the default option means that your worker will get the latest stable worker image released. This is a good option to choose if you're running a basic script that doesn't have any dependencies on specific tool or operating system versions. +If you're writing a script that relies on a specific version of tooling (e.g., helm), then we recommend using [execution containers for workers](/docs/projects/steps/execution-containers-for-workers) to run the script in a Docker container with the tool versions you need. -If you're writing a script that relies on a specific version of tooling (e.g., helm), then we recommend choosing a specific worker image, instead of the "default" options, to prevent worker image upgrades from impacting your deployments. +Alternatively, you can choose a specific worker image, instead of the "default" options, to prevent worker image upgrades from impacting your deployments. |Type | Pros | Cons | |-----|------|------| -| Default (eg `Ubuntu (default)`) | Automatically uses the latest image. Deployments will continue to work even when a worker image is marked as deprecated or decommissioned.| The versions of dependencies (e.g., helm) are not fixed. Deployments that rely on specific versions of dependencies or operating system specific features may break during upgrades. | +| Default (eg `Ubuntu (default)`) | Automatically uses the latest image. Deployments will continue to work even when a worker image is marked as deprecated or decommissioned.| The versions of dependencies (e.g. helm) are not fixed. Deployments that rely on specific versions of dependencies or operating system specific features may break during upgrades. | | Specific (e.g., `Ubuntu Linux 22.04`) | The version of the operating system and dependencies are fixed and can be relied upon. | When a worker image is marked as deprecated, warnings will start to appear in your deployment logs. When a worker image is decommissioned, you will need to take action to update your worker pool or deployments will fail. | -## Deprecation +### Deprecation When an image is marked as deprecated, you will see warnings in the Octopus UI, and in the deployment log. After a suitable deprecation period, deployments will start to fail if they target an image that has hit end-of-life. From 78e8622932416d92895c2c553fb819dc345490ac Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Wed, 4 Oct 2023 15:08:58 +1030 Subject: [PATCH 02/12] Warn that built-in worker is unavailable on cloud --- src/pages/docs/infrastructure/workers/built-in-worker.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/pages/docs/infrastructure/workers/built-in-worker.md b/src/pages/docs/infrastructure/workers/built-in-worker.md index b48a4b16ca..9634006b8a 100644 --- a/src/pages/docs/infrastructure/workers/built-in-worker.md +++ b/src/pages/docs/infrastructure/workers/built-in-worker.md @@ -11,6 +11,10 @@ Octopus Server comes with a built-in worker which enables you to conveniently ru This page describes how to configure the built-in worker for a variety of scenarios. +:::div{.warning} +The built-in worker is disabled on [Octopus Cloud](/docs/octopus-cloud) for security reasons. We recommend using one of the pre-configured [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools). +::: + ## Built-in Worker When the built-in Worker is executed, the Octopus Server spawns a new process for Calamari. This conveniently allows a default Octopus set up to enable features like running script steps on the server and Azure deployments. However, this convenience comes at a cost: **security**. From a2e3f7c6df0266f3e6ed51e004d8a7494f6a4547 Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Wed, 4 Oct 2023 15:09:29 +1030 Subject: [PATCH 03/12] Add cloud information to Workers documentation --- .../docs/infrastructure/workers/index.mdx | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index c4afb36055..8043415fef 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -38,13 +38,17 @@ The following steps always run inside the Octopus Server process (and do not run A worker receives instruction from the Octopus Server to execute a step, it executes the step using Calamari and returns the logs and any collected artifacts to the Octopus Server. +:::div{.hint} +Workers are assigned at the start of a deployment or runbook, not at the time the individual step executes. +::: + There are two kinds of workers you can use in Octopus: -1. [The built-in worker](#built-in-worker) (default) +1. [The built-in worker](#built-in-worker) (default for self-hosted Octopus) 1. [External workers](#external-workers) -:::div{.hint} -Workers are assigned at the start of a deployment or runbook, not at the time the individual step executes. +:::div{.success} +[Octopus Cloud](/docs/octopus-cloud) uses [Dynamic Workers](/docs/infrastructure/workers/dynamic-worker-pools) by default, which provides External Workers running on `Ubuntu` or `Windows` VMs. Dynamic Workers are managed by Octopus Cloud, and are included with your Octopus Cloud subscription. ::: ## Ignoring Workers \{#ignoring-workers} @@ -67,18 +71,28 @@ Adding a worker to the default worker pool will disable the built-in worker, and Learn about the security implications and how to configure the [built-in worker](/docs/infrastructure/workers/built-in-worker). +:::div{.warning} +The built-in worker is disabled on [Octopus Cloud](/docs/octopus-cloud) for security reasons. We recommend using one of the pre-configured [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools). +::: + ## External Workers \{#external-workers} An **External Worker** is either: - A [Windows](/docs/infrastructure/deployment-targets/tentacle/windows/) or [Linux](/docs/infrastructure/deployment-targets/tentacle/linux) Tentacle. - An [SSH machine](/docs/infrastructure/deployment-targets/linux/ssh-target) that has been registered with the Octopus Server as a worker. -The setup of a worker is the same as setting up a deployment target as a [Windows Tentacle target](/docs/infrastructure/deployment-targets/tentacle/windows/) or an [SSH target](/docs/infrastructure/deployment-targets/linux/ssh-target), except that instead of being added to an environment, a worker is added to a worker pool. +The setup of a worker is the same as setting up a deployment target as a [Windows Tentacle target](/docs/infrastructure/deployment-targets/tentacle/windows/) or an [SSH target](/docs/infrastructure/deployment-targets/linux/ssh-target), except that instead of being added to an environment, a worker is added to a [worker pool](/docs/infrastructure/workers/worker-pools/). Using external workers allows delegating work to a machine other than the Octopus Server. This can make the server more secure and allow scaling. When Octopus executes a step on an external worker, it's the external worker that executes Calamari; no user-provided script executes on the Octopus Server itself. Workers have machine policies, are health checked, and run Calamari, just like deployment targets. +:::div{.success} +[Octopus Cloud](/docs/octopus-cloud) customers can choose to use the included [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools) (enabled by default), and/or register their own external workers. + +Dynamic Workers are on-demand external workers managed by Octopus Cloud, which means you don't need to configure or maintain additional infrastructure. Dynamic Workers provide `Ubuntu` or `Windows` VMs running as pre-configured tentacles. +::: + ## Registering an External Worker \{#registering-an-external-worker} Once the Tentacle or SSH machine has been configured, workers can be added using the [Web Portal](#registering-workers-in-the-web-portal), the [Octopus Deploy REST API](/docs/octopus-rest-api/), the [Octopus.Clients library](/docs/octopus-rest-api/octopus.client) or with the Tentacle executable. Only a user with the `ConfigureServer` permission can add or edit workers. From e11853e37b465d874710a88535fd448e53873cdb Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Wed, 4 Oct 2023 15:10:06 +1030 Subject: [PATCH 04/12] Expand Worker Pools documentation to distinguish between cloud and self-hosted behaviour --- .../infrastructure/workers/worker-pools.md | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/worker-pools.md b/src/pages/docs/infrastructure/workers/worker-pools.md index e12ab6d8cc..bab3917db9 100644 --- a/src/pages/docs/infrastructure/workers/worker-pools.md +++ b/src/pages/docs/infrastructure/workers/worker-pools.md @@ -7,13 +7,15 @@ description: Worker pools are used to group workers and allow targeting steps at navOrder: 40 --- -Worker pools are groups of [workers](/docs/infrastructure/workers), when a task is assigned to a worker, the task will be executed by one of the workers in the worker pools you've configured. +Worker pools are groups of [workers](/docs/infrastructure/workers). When a task is assigned to a worker pool, the task will be executed by one of the workers in that pool. -## Default Worker Pool +You can manage your worker pools by navigating to **Infrastructure ➜ Worker Pools** in the Octopus Web Portal. + +## Multiple Pools -There is always a default worker pool, and the default Pool can't be deleted, but you can swap which pool is the default. Worker pools are global resources which can be scoped using [worker pool variables](/docs/projects/variables/worker-pool-variables). All users can see what pools are available and if there are workers in the pools. Only a user with the `ConfigureServer` permission can see the worker machines or edit workers or pools. +You can create multiple worker pools for different purposes. Worker pools are available to all projects in a [space](/docs/administration/spaces), and can be dynamically selected using [worker pool variables](/docs/projects/variables/worker-pool-variables). All users can see which pools are available and if there are workers in the pools. Only a user with the `ConfigureServer` permission can see the worker machines or edit workers or pools. -Using multiple worker pools allows you to configure the workers in your pools for the tasks they will be assigned. For instance, depending on your teams needs you might configure worker pools in the following ways: +Using multiple worker pools allows you to configure the workers in your pools for the tasks they will be assigned. For instance, depending on your teams needs you might configure worker pools in the following ways: - Pools for scripts that expect different operating systems (Linux vs. Windows). - Pools for scripts that rely on different versions of cloud CLI tools: Azure CLI, AWS CLI, Terraform CLI, Kubernetes CLI (kubectl) etc. @@ -21,7 +23,20 @@ Using multiple worker pools allows you to configure the workers in your pools f For your default pool it might be enough that the workers are Tentacles running PowerShell 5, but you might have two teams working with different version of an SDK and so provision worker pools with workers running the appropriate SDK for each team. -## Using Workers +## Default Worker Pool + +You can specify a worker pool which will be selected by default when creating new worker steps, and will be used for any worker steps that don't specify a pool. + +There is always a default worker pool for each [space](/docs/administration/spaces). The default pool can't be deleted, but you can swap which pool is the default. + +On [self-hosted Octopus](/docs/getting-started#self-hosted-octopus), an empty `Default Worker Pool` is provided. + +- Initially this pool is empty, which means the [built-in worker](/docs/infrastructure/workers/built-in-worker) will be used +- When you add workers to the default worker pool, the built-in worker will be disabled. This means any deployment processes that previously used the built-in worker on the Octopus Server, will automatically move from using the built-in worker to workers in the worker pool. + +On [Octopus Cloud](/docs/octopus-cloud), the initial default pool is a [dynamic worker pool](/docs/infrastructure/workers/dynamic-worker-pools) using the `Ubuntu (default)` image. A pool using the `Windows (default)` image is also provided. + +## How Workers are Selected When a step that requires a worker is executed, Octopus first determines what worker pool the step should use, and then selects a worker from that pool to execute the step. @@ -43,10 +58,6 @@ The step will fail for lack of a worker if: - There are no healthy workers in the pool. - Octopus selects a healthy worker from the pool, but during the deployment process can't contact the worker. -## Using the Default Pool for scripts - -When you add workers to the default worker pool the built-in worker will be disabled. This means any deployment processes that previously used the built-in worker on the Octopus Server, will automatically move from using the built-in worker to workers in the worker pool. - ## Add new Worker Pools Only users with the `ConfigureServer` permission can add or edit worker pools. From 1049966032aeef41ab89671acac0fd96d0746e2c Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Thu, 5 Oct 2023 13:20:59 +1030 Subject: [PATCH 05/12] Be less scary, more clear --- src/pages/docs/infrastructure/workers/built-in-worker.md | 2 +- src/pages/docs/infrastructure/workers/index.mdx | 6 +++--- src/pages/docs/infrastructure/workers/worker-pools.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/built-in-worker.md b/src/pages/docs/infrastructure/workers/built-in-worker.md index 9634006b8a..884d3e673d 100644 --- a/src/pages/docs/infrastructure/workers/built-in-worker.md +++ b/src/pages/docs/infrastructure/workers/built-in-worker.md @@ -12,7 +12,7 @@ Octopus Server comes with a built-in worker which enables you to conveniently ru This page describes how to configure the built-in worker for a variety of scenarios. :::div{.warning} -The built-in worker is disabled on [Octopus Cloud](/docs/octopus-cloud) for security reasons. We recommend using one of the pre-configured [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools). +The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured Tentacle workers on-demand. ::: ## Built-in Worker diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index 8043415fef..620a9fb55c 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -48,7 +48,7 @@ There are two kinds of workers you can use in Octopus: 1. [External workers](#external-workers) :::div{.success} -[Octopus Cloud](/docs/octopus-cloud) uses [Dynamic Workers](/docs/infrastructure/workers/dynamic-worker-pools) by default, which provides External Workers running on `Ubuntu` or `Windows` VMs. Dynamic Workers are managed by Octopus Cloud, and are included with your Octopus Cloud subscription. +[Octopus Cloud](/docs/octopus-cloud) uses [Dynamic Workers](/docs/infrastructure/workers/dynamic-worker-pools) by default, which provides External Workers running on Ubuntu and Windows VMs. Dynamic Workers are managed by Octopus Cloud, and are included with your Octopus Cloud subscription. ::: ## Ignoring Workers \{#ignoring-workers} @@ -72,7 +72,7 @@ Adding a worker to the default worker pool will disable the built-in worker, and Learn about the security implications and how to configure the [built-in worker](/docs/infrastructure/workers/built-in-worker). :::div{.warning} -The built-in worker is disabled on [Octopus Cloud](/docs/octopus-cloud) for security reasons. We recommend using one of the pre-configured [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools). +The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured Tentacle workers on-demand. ::: ## External Workers \{#external-workers} @@ -90,7 +90,7 @@ Workers have machine policies, are health checked, and run Calamari, just like d :::div{.success} [Octopus Cloud](/docs/octopus-cloud) customers can choose to use the included [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools) (enabled by default), and/or register their own external workers. -Dynamic Workers are on-demand external workers managed by Octopus Cloud, which means you don't need to configure or maintain additional infrastructure. Dynamic Workers provide `Ubuntu` or `Windows` VMs running as pre-configured tentacles. +Dynamic Workers are on-demand external workers managed by Octopus Cloud, which means you don't need to configure or maintain additional infrastructure. Dynamic Workers provide Ubuntu and Windows VMs running as pre-configured tentacles. ::: ## Registering an External Worker \{#registering-an-external-worker} diff --git a/src/pages/docs/infrastructure/workers/worker-pools.md b/src/pages/docs/infrastructure/workers/worker-pools.md index bab3917db9..f7ba193cf9 100644 --- a/src/pages/docs/infrastructure/workers/worker-pools.md +++ b/src/pages/docs/infrastructure/workers/worker-pools.md @@ -32,7 +32,7 @@ There is always a default worker pool for each [space](/docs/administration/spac On [self-hosted Octopus](/docs/getting-started#self-hosted-octopus), an empty `Default Worker Pool` is provided. - Initially this pool is empty, which means the [built-in worker](/docs/infrastructure/workers/built-in-worker) will be used -- When you add workers to the default worker pool, the built-in worker will be disabled. This means any deployment processes that previously used the built-in worker on the Octopus Server, will automatically move from using the built-in worker to workers in the worker pool. +- When you add workers to the default worker pool, the built-in worker will be disabled. This means any deployment processes that previously used the built-in worker on the Octopus Server will automatically start using workers in the worker pool. On [Octopus Cloud](/docs/octopus-cloud), the initial default pool is a [dynamic worker pool](/docs/infrastructure/workers/dynamic-worker-pools) using the `Ubuntu (default)` image. A pool using the `Windows (default)` image is also provided. From b7152a1c32aef38c77b3be50bd2d49cdb4921317 Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Fri, 6 Oct 2023 12:43:58 +1030 Subject: [PATCH 06/12] Show "built-in worker only on self-hosted" as hint not warning --- src/pages/docs/infrastructure/workers/built-in-worker.md | 2 +- src/pages/docs/infrastructure/workers/index.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/built-in-worker.md b/src/pages/docs/infrastructure/workers/built-in-worker.md index 884d3e673d..13e3f8bd8a 100644 --- a/src/pages/docs/infrastructure/workers/built-in-worker.md +++ b/src/pages/docs/infrastructure/workers/built-in-worker.md @@ -11,7 +11,7 @@ Octopus Server comes with a built-in worker which enables you to conveniently ru This page describes how to configure the built-in worker for a variety of scenarios. -:::div{.warning} +:::div{.hint} The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured Tentacle workers on-demand. ::: diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index 620a9fb55c..c40c173f76 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -71,7 +71,7 @@ Adding a worker to the default worker pool will disable the built-in worker, and Learn about the security implications and how to configure the [built-in worker](/docs/infrastructure/workers/built-in-worker). -:::div{.warning} +:::div{.hint} The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured Tentacle workers on-demand. ::: From 021a4c15afa7aeb49228fba78436e914d31daf20 Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Fri, 6 Oct 2023 13:06:42 +1030 Subject: [PATCH 07/12] Split dynamic workers to separate item/heading on workers page --- .../docs/infrastructure/workers/index.mdx | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index c40c173f76..81415ab61b 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -42,13 +42,14 @@ A worker receives instruction from the Octopus Server to execute a step, it exec Workers are assigned at the start of a deployment or runbook, not at the time the individual step executes. ::: -There are two kinds of workers you can use in Octopus: +There are three kinds of workers you can use in Octopus: -1. [The built-in worker](#built-in-worker) (default for self-hosted Octopus) -1. [External workers](#external-workers) +1. [The built-in worker](#built-in-worker) - available on self-hosted Octopus +1. [Dynamic workers](#dynamic-workers) - available on Octopus Cloud +1. [External workers](#external-workers) - manually configured :::div{.success} -[Octopus Cloud](/docs/octopus-cloud) uses [Dynamic Workers](/docs/infrastructure/workers/dynamic-worker-pools) by default, which provides External Workers running on Ubuntu and Windows VMs. Dynamic Workers are managed by Octopus Cloud, and are included with your Octopus Cloud subscription. +[Octopus Cloud](/docs/octopus-cloud) uses [dynamic workers](/docs/infrastructure/workers/dynamic-worker-pools) by default, which provides an on-demand worker running on an Ubuntu or Windows VM. Dynamic workers are managed by Octopus Cloud, and are included with your Octopus Cloud subscription. ::: ## Ignoring Workers \{#ignoring-workers} @@ -59,7 +60,7 @@ The choices of built-in worker, built-in worker running in a separate account, a ## Migrating to Workers \{#migrating-to-workers} -Octopus workers provide a way to move work off the built-in worker. This lets you move the work away from the Octopus Server and onto external workers without the need to update the deployment process. Learn [how to use the default worker pool to move steps off the Octopus Server](/docs/infrastructure/workers/worker-pools/#Using-the-default-pool-to-stop-running-scripts-on-the-server). +Octopus workers provide a way to move work off the built-in worker. This lets you move the work away from the Octopus Server and onto external workers without the need to update the deployment process. Learn [how to use the default worker pool to move steps off the Octopus Server](/docs/infrastructure/workers/worker-pools/#default-worker-pool). ## Built-in Worker \{#built-in-worker} @@ -72,9 +73,15 @@ Adding a worker to the default worker pool will disable the built-in worker, and Learn about the security implications and how to configure the [built-in worker](/docs/infrastructure/workers/built-in-worker). :::div{.hint} -The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured Tentacle workers on-demand. +The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [dynamic worker pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured workers on-demand. ::: +## Dynamic Workers \{#dynamic-workers} + +**Dynamic workers** are on-demand external workers managed by [Octopus Cloud](/docs/octopus-cloud), which means you don't need to configure or maintain additional infrastructure. Dynamic workers provides an Ubuntu or Windows VM running as a pre-configured tentacle worker. + +Learn more about configuring and using [dynamic worker pools](/docs/infrastructure/workers/dynamic-worker-pools) and selecting an OS image for your worker tasks. + ## External Workers \{#external-workers} An **External Worker** is either: @@ -88,9 +95,7 @@ Using external workers allows delegating work to a machine other than the Octopu Workers have machine policies, are health checked, and run Calamari, just like deployment targets. :::div{.success} -[Octopus Cloud](/docs/octopus-cloud) customers can choose to use the included [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools) (enabled by default), and/or register their own external workers. - -Dynamic Workers are on-demand external workers managed by Octopus Cloud, which means you don't need to configure or maintain additional infrastructure. Dynamic Workers provide Ubuntu and Windows VMs running as pre-configured tentacles. +[Octopus Cloud](/docs/octopus-cloud) customers can choose to use the included [dynamic worker pools](/docs/infrastructure/workers/dynamic-worker-pools) (enabled by default), and/or register their own external workers. ::: ## Registering an External Worker \{#registering-an-external-worker} From 19f65fe34899826d37984f4bee7fb7ff73a48fab Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Fri, 6 Oct 2023 13:11:43 +1030 Subject: [PATCH 08/12] Fix plural and capitalisation --- src/pages/docs/infrastructure/workers/built-in-worker.md | 2 +- src/pages/docs/infrastructure/workers/dynamic-worker-pools.md | 4 ++-- src/pages/docs/infrastructure/workers/index.mdx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/built-in-worker.md b/src/pages/docs/infrastructure/workers/built-in-worker.md index 13e3f8bd8a..aac6a8693f 100644 --- a/src/pages/docs/infrastructure/workers/built-in-worker.md +++ b/src/pages/docs/infrastructure/workers/built-in-worker.md @@ -12,7 +12,7 @@ Octopus Server comes with a built-in worker which enables you to conveniently ru This page describes how to configure the built-in worker for a variety of scenarios. :::div{.hint} -The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [Dynamic Worker Pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured Tentacle workers on-demand. +The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [dynamic worker pools](/docs/infrastructure/workers/dynamic-worker-pools), which provides a pre-configured worker on-demand. ::: ## Built-in Worker diff --git a/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md b/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md index e4be485af6..3df63c83b8 100644 --- a/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md +++ b/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md @@ -9,11 +9,11 @@ navOrder: 50 Dynamic Worker Pools provide a quick and easy way to use [workers](/docs/infrastructure/workers) for your deployments. They are a special type of [worker pool](/docs/infrastructure/workers/worker-pools) available on [Octopus Cloud](/docs/octopus-cloud). -Dynamic Workers are isolated virtual machines, created on-demand to run your deployments and runbook steps. They run on Azure and are created and managed by Octopus Cloud, which means you don't need to configure or maintain additional infrastructure. +Dynamic workers are isolated virtual machines, created on-demand to run your deployments and runbook steps. They run on Azure and are created and managed by Octopus Cloud, which means you don't need to configure or maintain additional infrastructure. ## On demand -Dynamic workers are created on demand and leased to an Octopus Cloud instance for a limited time before being destroyed. +A dynamic worker is created on demand and leased to an Octopus Cloud instance for a limited time before being destroyed. :::div{.info} Octopus Cloud will automatically destroy dynamic workers as soon as one of these conditions is met: diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index 81415ab61b..91e23532b9 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -73,7 +73,7 @@ Adding a worker to the default worker pool will disable the built-in worker, and Learn about the security implications and how to configure the [built-in worker](/docs/infrastructure/workers/built-in-worker). :::div{.hint} -The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [dynamic worker pools](/docs/infrastructure/workers/dynamic-worker-pools), which provide pre-configured workers on-demand. +The built-in worker is only available on [self-hosted Octopus](/docs/getting-started#self-hosted-octopus) instances. [Octopus Cloud](/docs/octopus-cloud) customers have access to [dynamic worker pools](/docs/infrastructure/workers/dynamic-worker-pools), which provides a pre-configured worker on-demand. ::: ## Dynamic Workers \{#dynamic-workers} From 8599977b82c27e53874600a6fca23069a9f16a16 Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Fri, 6 Oct 2023 13:24:04 +1030 Subject: [PATCH 09/12] Clarify dynamic workers description and usage --- src/pages/docs/infrastructure/workers/index.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index 91e23532b9..5a24a5eae8 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -78,7 +78,9 @@ The built-in worker is only available on [self-hosted Octopus](/docs/getting-sta ## Dynamic Workers \{#dynamic-workers} -**Dynamic workers** are on-demand external workers managed by [Octopus Cloud](/docs/octopus-cloud), which means you don't need to configure or maintain additional infrastructure. Dynamic workers provides an Ubuntu or Windows VM running as a pre-configured tentacle worker. +**Dynamic workers** are on-demand workers managed by [Octopus Cloud](/docs/octopus-cloud), which means you don't need to configure or maintain additional infrastructure. Dynamic workers provides an Ubuntu or Windows VM running as a pre-configured tentacle worker. + +Dynamic worker pools are included with all Octopus Cloud instances, and are the default option when creating new worker steps in your deployments and runbooks. Learn more about configuring and using [dynamic worker pools](/docs/infrastructure/workers/dynamic-worker-pools) and selecting an OS image for your worker tasks. From 25b264d2eb937e264e5e24c40ccd4ee1c1e77cd0 Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Fri, 17 Nov 2023 11:25:12 +1030 Subject: [PATCH 10/12] Revert default pool as we haven't cutover to Linux yet. --- src/pages/docs/infrastructure/workers/worker-pools.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/docs/infrastructure/workers/worker-pools.md b/src/pages/docs/infrastructure/workers/worker-pools.md index f7ba193cf9..2f1801bfab 100644 --- a/src/pages/docs/infrastructure/workers/worker-pools.md +++ b/src/pages/docs/infrastructure/workers/worker-pools.md @@ -34,7 +34,7 @@ On [self-hosted Octopus](/docs/getting-started#self-hosted-octopus), an empty `D - Initially this pool is empty, which means the [built-in worker](/docs/infrastructure/workers/built-in-worker) will be used - When you add workers to the default worker pool, the built-in worker will be disabled. This means any deployment processes that previously used the built-in worker on the Octopus Server will automatically start using workers in the worker pool. -On [Octopus Cloud](/docs/octopus-cloud), the initial default pool is a [dynamic worker pool](/docs/infrastructure/workers/dynamic-worker-pools) using the `Ubuntu (default)` image. A pool using the `Windows (default)` image is also provided. +On [Octopus Cloud](/docs/octopus-cloud), the initial default pool is a [dynamic worker pool](/docs/infrastructure/workers/dynamic-worker-pools) using the `Windows (default)` image. A pool using the `Ubuntu (default)` image is also provided. ## How Workers are Selected From 0cc9d30b4df70d8eee516c835d86fb348d4ffa73 Mon Sep 17 00:00:00 2001 From: Samuel Jaeschke Date: Fri, 17 Nov 2023 11:39:19 +1030 Subject: [PATCH 11/12] Update modification dates --- src/pages/docs/infrastructure/workers/built-in-worker.md | 2 +- src/pages/docs/infrastructure/workers/dynamic-worker-pools.md | 2 +- src/pages/docs/infrastructure/workers/index.mdx | 2 +- src/pages/docs/infrastructure/workers/worker-pools.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/docs/infrastructure/workers/built-in-worker.md b/src/pages/docs/infrastructure/workers/built-in-worker.md index aac6a8693f..ff88efe991 100644 --- a/src/pages/docs/infrastructure/workers/built-in-worker.md +++ b/src/pages/docs/infrastructure/workers/built-in-worker.md @@ -1,7 +1,7 @@ --- layout: src/layouts/Default.astro pubDate: 2023-01-01 -modDate: 2023-01-01 +modDate: 2023-11-17 title: Built-in Worker description: Octopus Server comes with a built-in worker which enables you to conveniently run parts of your deployment process on the Octopus Server without the need to install a Tentacle or other deployment target. This page describes how to configure the built-in worker for a variety of scenarios. navOrder: 2 diff --git a/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md b/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md index 3df63c83b8..a0b1727e3f 100644 --- a/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md +++ b/src/pages/docs/infrastructure/workers/dynamic-worker-pools.md @@ -1,7 +1,7 @@ --- layout: src/layouts/Default.astro pubDate: 2023-01-01 -modDate: 2023-10-05 +modDate: 2023-11-17 title: Dynamic Worker pools description: Dynamic Worker pools are used in our cloud product to dynamically create and assign workers to running tasks. This page describes how dynamic worker pools work. navOrder: 50 diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index 5a24a5eae8..d94b266617 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -1,7 +1,7 @@ --- layout: src/layouts/Default.astro pubDate: 2023-01-01 -modDate: 2023-01-01 +modDate: 2023-11-17 title: Workers description: External workers are machines that can execute steps that don't need to be performed on the Octopus Server or deployment targets. navOrder: 30 diff --git a/src/pages/docs/infrastructure/workers/worker-pools.md b/src/pages/docs/infrastructure/workers/worker-pools.md index 2f1801bfab..35d56b7c59 100644 --- a/src/pages/docs/infrastructure/workers/worker-pools.md +++ b/src/pages/docs/infrastructure/workers/worker-pools.md @@ -1,7 +1,7 @@ --- layout: src/layouts/Default.astro pubDate: 2023-01-01 -modDate: 2023-01-01 +modDate: 2023-11-17 title: Worker pools description: Worker pools are used to group workers and allow targeting steps at the pool of workers best equipped to execute the step. This page describes how to configure worker pools for a variety of scenarios. navOrder: 40 From a6400b8f4a3462f007970877914139086ef1629e Mon Sep 17 00:00:00 2001 From: Steve Fenton <99181436+steve-fenton-octopus@users.noreply.github.com> Date: Mon, 20 Nov 2023 09:52:55 +0000 Subject: [PATCH 12/12] Fix spellings --- dictionary-octopus.txt | 2 ++ src/pages/docs/infrastructure/workers/index.mdx | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dictionary-octopus.txt b/dictionary-octopus.txt index f449dd8782..c071b6e7a4 100644 --- a/dictionary-octopus.txt +++ b/dictionary-octopus.txt @@ -4,6 +4,7 @@ bootstrap bootstrapped bootstrapper cicd +comms cscfg cspkg cutover @@ -73,6 +74,7 @@ WCAG webfonts WEBSVR WIXUI +workerpool workertools xlarge xmark diff --git a/src/pages/docs/infrastructure/workers/index.mdx b/src/pages/docs/infrastructure/workers/index.mdx index d94b266617..01ef282317 100644 --- a/src/pages/docs/infrastructure/workers/index.mdx +++ b/src/pages/docs/infrastructure/workers/index.mdx @@ -13,7 +13,7 @@ import ConfigureSshConnectionWorker from 'src/shared-content/tentacle/configure- import ConfigureWindowsListeningWorker from 'src/shared-content/tentacle/configure-windows-listening-worker.include.md'; import ConfigureWindowsPollingWorker from 'src/shared-content/tentacle/configure-windows-polling-worker.include.md'; import InstallTentacleManager from 'src/shared-content/tentacle/install-tentacle-manager.include.md'; -import PoweShellNamedMutex from 'src/shared-content/tentacle/powershell-named-mutex.include.md'; +import PowerShellNamedMutex from 'src/shared-content/tentacle/powershell-named-mutex.include.md'; import Workers from 'src/shared-content/infrastructure/workers.include.md'; import WorkersIndividualProcessExclusively from 'src/shared-content/tentacle/workers-individual-process-exclusively.include.md'; import WorkersMultipleSimultaneousProcesses from 'src/shared-content/tentacle/workers-multiple-simultaneous-processes.include.md'; @@ -153,14 +153,14 @@ The new Polling Tentacle will automatically show up in the Workers list. Tentacle workers can also register with the server using the Tentacle executable (version 3.22.0 or later), for example: ``` -.\Tentacle.exe register-worker --instance MyInstance --server "https://example.com/" --comms-style TentaclePassive --apikey "API-CS0SW5SQJNLUBQCUBPK8LZY3KYO" --workerpool "Default Worker Pool" +.\Tentacle.exe register-worker --instance MyInstance --server "https://example.com/" --comms-style TentaclePassive --apikey "API-YOUR-KEY" --workerpool "Default Worker Pool" ``` Use `TentacleActive` instead of `TentaclePassive` to register a polling Tentacle worker. The Tentacle executable can also be used to deregister workers, for example: ``` -.\Tentacle.exe deregister-worker --instance MyInstance --server "https://example.com/" --apikey "API-CS0SW5SQJNLUBQCUBPK8LZY3KYO" +.\Tentacle.exe deregister-worker --instance MyInstance --server "https://example.com/" --apikey "API-YOUR-KEY" ``` :::div{.hint} @@ -185,7 +185,7 @@ Default pools attached to cloud targets allow co-location of workers and targets - + ### Workers in HA setups